diff --git a/cbpi/__init__.py b/cbpi/__init__.py index 7313a54..88b3fd2 100644 --- a/cbpi/__init__.py +++ b/cbpi/__init__.py @@ -1,3 +1,3 @@ -__version__ = "4.3.2.a7" +__version__ = "4.3.2.a8" __codename__ = "Winter Storm" diff --git a/cbpi/controller/fermentation_controller.py b/cbpi/controller/fermentation_controller.py index 9dbc6ba..942786a 100644 --- a/cbpi/controller/fermentation_controller.py +++ b/cbpi/controller/fermentation_controller.py @@ -524,6 +524,11 @@ class FermentationController: except Exception as e: self.logger.error(e) + + def remove_key(self,d, key): + r = dict(d) + del r[key] + return r def push_update(self, key="fermenterupdate"): @@ -531,7 +536,8 @@ class FermentationController: self.cbpi.ws.send(dict(topic=key, data=list(map(lambda item: item.to_dict(), self.data)))) for item in self.data: - self.cbpi.push_update("cbpi/{}/{}".format(self.update_key,item.id), item.to_dict()) + fermenters=self.remove_key(item.to_dict(),"steps") + self.cbpi.push_update("cbpi/{}/{}".format(self.update_key,item.id), fermenters) pass else: fermentersteps=self.get_fermenter_steps() @@ -542,6 +548,9 @@ class FermentationController: for step in fermenter['steps']: if step['status'] == 'A': self.cbpi.push_update("cbpi/{}/{}/{}".format(key,fermenter['id'],step['id']), step) + else: + self.cbpi.push_update("cbpi/{}/{}/{}".format(key,fermenter['id'],step['id']), "") + async def call_action(self, id, action, parameter) -> None: logging.info("FermenterStep Controller - call Action {} {}".format(id, action)) diff --git a/cbpi/controller/satellite_controller.py b/cbpi/controller/satellite_controller.py index 7877666..7b8e545 100644 --- a/cbpi/controller/satellite_controller.py +++ b/cbpi/controller/satellite_controller.py @@ -34,6 +34,11 @@ class SatelliteController: ] self.tasks = set() + + def remove_key(self,d, key): + r = dict(d) + del r[key] + return r async def init(self): @@ -132,7 +137,8 @@ class SatelliteController: try: self.fermenter=self.fermentercontroller.get_state() for item in self.fermenter['data']: - self.cbpi.push_update("cbpi/{}/{}".format("fermenterupdate",item['id']), item) + item_new=self.remove_key(item,"steps") + self.cbpi.push_update("cbpi/{}/{}".format("fermenterupdate",item['id']), item_new) except Exception as e: self.logger.warning("Failed to send fermenterupdate via mqtt: {}".format(e)) diff --git a/cbpi/extension/mqtt_util/__init__.py b/cbpi/extension/mqtt_util/__init__.py index 3cce4c4..54e6102 100644 --- a/cbpi/extension/mqtt_util/__init__.py +++ b/cbpi/extension/mqtt_util/__init__.py @@ -37,6 +37,11 @@ class MQTTUtil(CBPiExtension): self.push_update() await asyncio.sleep(self.mqttupdate) + def remove_key(self,d, key): + r = dict(d) + del r[key] + return r + def push_update(self): # try: # self.actor=self.actorcontroller.get_state() @@ -61,8 +66,9 @@ class MQTTUtil(CBPiExtension): pass try: self.fermenter=self.fermentationcontroller.get_state() - for item in self.fermenter['data']: - self.cbpi.push_update("cbpi/{}/{}".format("fermenterupdate",item['id']), item) + for item in self.fermenter['data']: + item_new=self.remove_key(item,"steps") + self.cbpi.push_update("cbpi/{}/{}".format("fermenterupdate",item['id']), item_new) except Exception as e: logging.error(e) pass