From 4ba46b83313022be42f3878f3f6d5de73c2207fa Mon Sep 17 00:00:00 2001 From: Kelvin Ly Date: Thu, 21 Sep 2023 22:08:32 -0400 Subject: [PATCH] Stagger humidifier toggles to avoid browning out the USB adapter --- shroom_controller.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/shroom_controller.py b/shroom_controller.py index b661aef..e5d6f41 100644 --- a/shroom_controller.py +++ b/shroom_controller.py @@ -18,6 +18,7 @@ try: except KeyError: is_mock = False +print("controller start") process = None def start_process(): global process @@ -189,6 +190,7 @@ class Controller: self.target_lower = 85 self.target_upper = 90 self.feedforward_coeff = 50 + self.last_toggle = 0 self._manual_mode = False self.manual_on = False @@ -207,6 +209,11 @@ class Controller: self._manual_mode = on send_update({"status": {"manual_mode": on}}) + def toggle_checked(self, humidifier, s): + if time.time() - self.last_toggle > 0.8: + humidifier.toggle(s) + self.last_toggle = time.time() + def update(self, humidifier, humidifier2, humidity): if self.first_sample: self.humidifier_history[:] = humidity @@ -225,20 +232,24 @@ class Controller: if self.manual_mode: if humidifier.off and self.manual_on: - humidifier.toggle(s) + self.toggle_checked(humidifier, s) elif humidifier.on and not self.manual_on: - humidifier.toggle(s) + self.toggle_checked(humidifier, s) + if humidifier2.off and self.manual_on: + self.toggle_checked(humidifier2, s) + elif humidifier2.on and not self.manual_on: + self.toggle_checked(humidifier2, s) else: if comp_humidity < self.target_lower: if humidifier.off: - humidifier.toggle(s) + self.toggle_checked(humidifier, s) if humidifier2.off: - humidifier2.toggle(s) + self.toggle_checked(humidifier2, s) elif comp_humidity > self.target_upper: if humidifier.on: - humidifier.toggle(s) + self.toggle_checked(humidifier, s) if humidifier2.on: - humidifier2.toggle(s) + self.toggle_checked(humidifier2, s) humidifier = Humidifier() humidifier2 = HumidifierV2()