From c5ed655399af82e85fab27c70d9f30bc81da9bcc Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Sun, 24 Nov 2024 15:56:18 +0100 Subject: [PATCH] feedback --- src/box.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/box.py b/src/box.py index 0911158..fcf4d38 100644 --- a/src/box.py +++ b/src/box.py @@ -73,6 +73,7 @@ class Box: try: # match topic to find operation to be executed + send_command = True match topic_key.split('/'): case [ primary_key, sub_key ] if primary_key == 'window': self.context.window_state[sub_key] = CONVERTERS["window_contact_input"][self.windows[sub_key]["converter"]](payload) @@ -91,9 +92,11 @@ class Box: case [ primary_key ] if primary_key == 'maintenance_mode': self.context.maintenance_mode = payload.lower() == 'true' case [ primary_key ] if primary_key == 'status': + send_command = False pass case [ primary_key ] if primary_key == 'feedback': self.context.feedback = json.loads(payload) + send_command = False case _: raise Error(f"Unexcepted topic_key: {topic_key}, {payload}") @@ -101,12 +104,14 @@ class Box: self._calculate_output_temperature() - # publish output temperature - result_message = CONVERTERS["target_temperature_output"][self.output_converter](self.context.output_temperature) - publish_topic = self.output_topic - self.mqtt_client.publish(publish_topic, result_message) - logger.info(f"[Box {self.id}] Result published on '{publish_topic}': {result_message}") + if send_command: + # publish output temperature + result_message = CONVERTERS["target_temperature_output"][self.output_converter](self.context.output_temperature) + publish_topic = self.output_topic + self.mqtt_client.publish(publish_topic, result_message) + logger.info(f"[Box {self.id}] Result published on '{publish_topic}': {result_message}") + # send context in any case context_topic = f"{self.config.CONTEXT_TOPIC_PREFIX}{self.id}" self.mqtt_client.publish(context_topic, str(self.context)) except Exception as e: