diff --git a/modules/base_plugins/fermenter_hysteresis/__init__.py b/modules/base_plugins/fermenter_hysteresis/__init__.py index 9c7e1b5..f3d6efe 100644 --- a/modules/base_plugins/fermenter_hysteresis/__init__.py +++ b/modules/base_plugins/fermenter_hysteresis/__init__.py @@ -13,6 +13,7 @@ class Hysteresis(FermenterController): super(FermenterController, self).stop() self.heater_off() + self.cooler_off() def run(self): while self.is_running(): @@ -23,5 +24,11 @@ class Hysteresis(FermenterController): self.heater_off() else: self.heater_off() + if self.get_temp() > self.get_target_temp() + int(self.on): + self.cooler_on() + elif self.get_temp() <= self.get_target_temp() + int(self.off): + self.cooler_off() + else: + self.cooler_off() self.sleep(1) diff --git a/modules/core/controller.py b/modules/core/controller.py index 0db42c7..bd4a052 100644 --- a/modules/core/controller.py +++ b/modules/core/controller.py @@ -125,6 +125,18 @@ class FermenterController(ControllerBase, ActorController, SensorController): if f.heater is not None: self.actor_off(int(f.heater)) + @cbpi.try_catch(None) + def cooler_on(self): + f = self.api.cache.get("fermenter").get(self.fermenter_id) + if f.cooler is not None: + self.actor_on(id=int(f.cooler)) + + @cbpi.try_catch(None) + def cooler_off(self): + f = self.api.cache.get("fermenter").get(self.fermenter_id) + if f.cooler is not None: + self.actor_off(int(f.cooler)) + @cbpi.try_catch(None) def get_temp(self, id=None):