From 679d7171349becc27bf02133ff157811084e5e23 Mon Sep 17 00:00:00 2001 From: TheYOSH Date: Tue, 28 May 2024 21:43:25 +0200 Subject: [PATCH] Final fix current power update through websocket --- terrariumEngine.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/terrariumEngine.py b/terrariumEngine.py index 71f514b86..01b5a7994 100644 --- a/terrariumEngine.py +++ b/terrariumEngine.py @@ -980,6 +980,8 @@ def callback_relay(self, relay, state): relay.update(state) relay_data = relay.to_dict() + orm.commit() + # Update enclosure states to reflect the new relay states if self.__engine["thread"] is not None and self.__engine["thread"].is_alive() and hasattr(self, "enclosures"): self._update_enclosures(True) @@ -1908,16 +1910,6 @@ def get_power_usage_water_flow(self, force=False, totals=True): }, } - with orm.db_session(): - for relay in Relay.select( - lambda r: r.id in self.relays.keys() and not r.id in self.settings["exclude_ids"] - ): - data["power"]["current"] += relay.current_wattage - data["power"]["max"] += relay.wattage - - data["flow"]["current"] += relay.current_flow - data["flow"]["max"] += relay.flow - if totals: total = self.total_power_and_water_usage(force) @@ -1932,6 +1924,16 @@ def get_power_usage_water_flow(self, force=False, totals=True): # Total water costs is in L data["flow"]["costs"] = data["flow"]["total"] * self.settings["water_price"] + with orm.db_session(): + for relay in Relay.select( + lambda r: r.id in self.relays.keys() and not r.id in self.settings["exclude_ids"] + ): + data["power"]["current"] += relay.current_wattage + data["power"]["max"] += relay.wattage + + data["flow"]["current"] += relay.current_flow + data["flow"]["max"] += relay.flow + return data def total_power_and_water_usage(self, force=False, background=False, thread_return=None):