diff --git a/src/box.py b/src/box.py index 7d1bb98..e9e4ab3 100644 --- a/src/box.py +++ b/src/box.py @@ -1,7 +1,7 @@ from loguru import logger import json from converters import CONVERTERS -from dataclasses import dataclass, field +from dataclasses import dataclass, field, asdict @dataclass(init=True, kw_only=True) class Context: @@ -13,6 +13,9 @@ class Context: mode: str = field(default='off') output_temperature: str = field(default='0') + def __str__(self): + return json.dumps(asdict(self)) + class Box: def __init__(self, box_id, box_config, config): logger.info(f"[Box {box_id}] Instantiating") @@ -99,6 +102,6 @@ class Box: logger.info(f"[Box {self.id}] Result published on '{publish_topic}': {result_message}") context_topic = f"{self.config.CONTEXT_TOPIC_PREFIX}{self.id}" - self.mqtt_client.publish(context_topic, repr(self.context)) + self.mqtt_client.publish(context_topic, str(self.context)) except Exception as e: logger.error(f"[Box {self.id}] Error processing '{topic_key}': {e}")