From 63ba172b11e4ab420e562d4d374926b8712c7447 Mon Sep 17 00:00:00 2001 From: "wilbers.lucas" Date: Thu, 19 Mar 2026 11:51:04 +0100 Subject: [PATCH 1/2] Catch edgecase, don't try to register "main" as a child device --- tedge_modbus/reader/reader.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/tedge_modbus/reader/reader.py b/tedge_modbus/reader/reader.py index d4b0253..c28b85e 100644 --- a/tedge_modbus/reader/reader.py +++ b/tedge_modbus/reader/reader.py @@ -622,16 +622,19 @@ def register_service(self): def register_child_devices(self, devices): """Register the child devices with thin-edge.io""" for device in devices: - self.logger.debug("Child device registration for device %s", device["name"]) - topic = f"te/device/{device['name']}//" - payload = { - "@type": "child-device", - "name": device["name"], - "type": "modbus-device", - } - self.send_tedge_message( - MappedMessage(json.dumps(payload), topic), retain=True, qos=1 - ) + if device["name"] != "main": + self.logger.debug( + "Child device registration for device %s", device["name"] + ) + topic = f"te/device/{device['name']}//" + payload = { + "@type": "child-device", + "name": device["name"], + "type": "modbus-device", + } + self.send_tedge_message( + MappedMessage(json.dumps(payload), topic), retain=True, qos=1 + ) cmd_payload = "{}" for cmd in ["modbus_SetRegister", "modbus_SetCoil"]: cmd_topic = topic + f"/cmd/{cmd}" From f4f767faeb149ae410accb1f000e6bdabaab5a15 Mon Sep 17 00:00:00 2001 From: "wilbers.lucas" Date: Thu, 19 Mar 2026 13:05:53 +0100 Subject: [PATCH 2/2] Bugfix, assign topic for all device names --- tedge_modbus/reader/reader.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tedge_modbus/reader/reader.py b/tedge_modbus/reader/reader.py index c28b85e..f1dca8c 100644 --- a/tedge_modbus/reader/reader.py +++ b/tedge_modbus/reader/reader.py @@ -622,11 +622,11 @@ def register_service(self): def register_child_devices(self, devices): """Register the child devices with thin-edge.io""" for device in devices: + topic = f"te/device/{device['name']}//" if device["name"] != "main": self.logger.debug( "Child device registration for device %s", device["name"] ) - topic = f"te/device/{device['name']}//" payload = { "@type": "child-device", "name": device["name"], @@ -635,6 +635,8 @@ def register_child_devices(self, devices): self.send_tedge_message( MappedMessage(json.dumps(payload), topic), retain=True, qos=1 ) + + self.logger.debug("Set command registration for device %s", device["name"]) cmd_payload = "{}" for cmd in ["modbus_SetRegister", "modbus_SetCoil"]: cmd_topic = topic + f"/cmd/{cmd}"