25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.0KB

  1. from modules import cbpi
  2. from modules.core.controller import KettleController, FermenterController
  3. from modules.core.props import Property
  4. @cbpi.fermentation_controller
  5. class Hysteresis(FermenterController):
  6. on = Property.Number("Offset On", True, 0)
  7. off = Property.Number("Offset Off", True, 0)
  8. def stop(self):
  9. super(FermenterController, self).stop()
  10. self.heater_off()
  11. def run(self):
  12. while self.is_running():
  13. print "Temp %s" % self.get_temp()
  14. if self.get_temp() < self.get_target_temp() - int(self.on):
  15. self.heater_on(100)
  16. elif self.get_temp() >= self.get_target_temp() - int(self.off):
  17. self.heater_off()
  18. else:
  19. self.heater_off()
  20. if self.get_temp() > self.get_target_temp() + int(self.on):
  21. self.cooler_on()
  22. elif self.get_temp() <= self.get_target_temp() + int(self.off):
  23. self.cooler_off()
  24. else:
  25. self.cooler_off()
  26. self.sleep(1)