From 949ce9326d05b468b8ea27dc63d67e93a9015663 Mon Sep 17 00:00:00 2001 From: Carl Allen Date: Sun, 11 Jun 2017 16:17:15 -0500 Subject: [PATCH 1/5] Fermenter Hysteresis with cooling --- modules/base_plugins/fermenter_hysteresis/__init__.py | 6 ++++++ modules/core/controller.py | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/modules/base_plugins/fermenter_hysteresis/__init__.py b/modules/base_plugins/fermenter_hysteresis/__init__.py index 9c7e1b5..16cec75 100644 --- a/modules/base_plugins/fermenter_hysteresis/__init__.py +++ b/modules/base_plugins/fermenter_hysteresis/__init__.py @@ -23,5 +23,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..c574050 100644 --- a/modules/core/controller.py +++ b/modules/core/controller.py @@ -125,6 +125,16 @@ class FermenterController(ControllerBase, ActorController, SensorController): if f.heater is not None: self.actor_off(int(f.heater)) + 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)) + + def cooler_off(self): + f = self.api.cache.get("fermenter").get(self.fermenter_id) + if self.cooler is not None: + self.actor_off(int(f.cooler)) + @cbpi.try_catch(None) def get_temp(self, id=None): From 77a0102e2df30b8938cf26d5f09ec6c9ed37981f Mon Sep 17 00:00:00 2001 From: Carl Allen Date: Sun, 11 Jun 2017 16:21:41 -0500 Subject: [PATCH 2/5] add try_catch for cooler methods in fermentercontroller --- modules/core/controller.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/core/controller.py b/modules/core/controller.py index c574050..9749a99 100644 --- a/modules/core/controller.py +++ b/modules/core/controller.py @@ -125,11 +125,13 @@ 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 self.cooler is not None: From 443c314aa1ea31dd7fd9cd3e4e86030630492270 Mon Sep 17 00:00:00 2001 From: Carl Allen Date: Sun, 11 Jun 2017 17:14:10 -0500 Subject: [PATCH 3/5] turn off cooler when stoppig --- modules/base_plugins/fermenter_hysteresis/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/base_plugins/fermenter_hysteresis/__init__.py b/modules/base_plugins/fermenter_hysteresis/__init__.py index 16cec75..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(): From a2bbcf90ba60f5e1687fb4759e96412276166b2f Mon Sep 17 00:00:00 2001 From: Carl Allen Date: Sun, 11 Jun 2017 18:07:26 -0500 Subject: [PATCH 4/5] f.cooler for cooler_off --- modules/core/controller.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/core/controller.py b/modules/core/controller.py index 9749a99..3bb8529 100644 --- a/modules/core/controller.py +++ b/modules/core/controller.py @@ -133,8 +133,9 @@ class FermenterController(ControllerBase, ActorController, SensorController): @cbpi.try_catch(None) def cooler_off(self): + f = self.api.cache.get("fermenter").get(self.fermenter_id) - if self.cooler is not None: + if f.cooler is not None: self.actor_off(int(f.cooler)) @cbpi.try_catch(None) From f5561c2da832cdd6a4c7fbbe0aef7b9982a2be39 Mon Sep 17 00:00:00 2001 From: Carl Allen Date: Sun, 11 Jun 2017 22:24:38 -0500 Subject: [PATCH 5/5] remove xtra space in cooler_off --- modules/core/controller.py | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/core/controller.py b/modules/core/controller.py index 3bb8529..bd4a052 100644 --- a/modules/core/controller.py +++ b/modules/core/controller.py @@ -133,7 +133,6 @@ class FermenterController(ControllerBase, ActorController, SensorController): @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))