From f4848ce94c024e439ca9e1fdf3bfa87b4b17a729 Mon Sep 17 00:00:00 2001 From: zhongys-c8y Date: Fri, 24 Oct 2025 16:13:17 +0200 Subject: [PATCH] Always add time into the telemetry payload --- tedge_modbus/reader/mapper.py | 14 ++++++++++++++ tedge_modbus/reader/reader.py | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tedge_modbus/reader/mapper.py b/tedge_modbus/reader/mapper.py index 06b09fd..e370a47 100644 --- a/tedge_modbus/reader/mapper.py +++ b/tedge_modbus/reader/mapper.py @@ -20,6 +20,16 @@ class MappedMessage: data: str = "" topic: str = "" + time: str = datetime.now(timezone.utc).isoformat() + + def serialize(self): + """Serialize message adding time if not present""" + if "/cmd/" in self.topic: + return self.data + out = json.loads(self.data) + if "time" not in out: + out["time"] = self.time + return json.dumps(out) def extend_data(self, other_message): """Combine Json data of two messages with the same topic""" @@ -40,6 +50,10 @@ def merge(d1: dict, d2: dict) -> dict: d2 = json.loads(other_message.data) # Merge the dictionaries merged = merge(d1, d2) + + if "time" not in merged: + merged["time"] = self.time + # Convert the merged dictionary back to a JSON string and update self.data self.data = json.dumps(merged) diff --git a/tedge_modbus/reader/reader.py b/tedge_modbus/reader/reader.py index 52ff55d..b4ac7f6 100644 --- a/tedge_modbus/reader/reader.py +++ b/tedge_modbus/reader/reader.py @@ -407,9 +407,9 @@ def send_tedge_message( self, msg: MappedMessage, retain: bool = False, qos: int = 0 ): """Send a thin-edge.io message via MQTT""" - self.logger.debug("sending message %s to topic %s", msg.data, msg.topic) + self.logger.debug("sending message %s to topic %s", msg.serialize(), msg.topic) self.tedge_client.publish( - topic=msg.topic, payload=msg.data, retain=retain, qos=qos + topic=msg.topic, payload=msg.serialize(), retain=retain, qos=qos ) def on_connect(