June 25Jun 25 After moving last year, I'm finally getting my mqtt based sensors back online. Unfortunately, I've found that they no longer appear to be compatible with recent MQTT plugin changes.PG3x Version 3.4.16Frontend Version: 3.4.16IoX Version: 6.0.5MQTT Plugin Version: 0.50.0 / Free [Production]- configured to the eisy mqtt broker, and using a devfile for my devices (see attached mqtt_dev.yml)I currently have two mqtt node types: raw and temp. For the simple raw sensor, the mqtt packet value is a plain integer. The plugin issues the following error in the logs:2026-06-24 20:30:00.100 paho-mqtt-client- udi_interface INFO Controller:_on_message: Received message from homeassistant/uptime: 123044 2026-06-24 20:30:00.100 paho-mqtt-client- udi_interface ERROR Controller:_on_message: Failed to process message from homeassistant/uptime: argument of type 'int' is not iterableFor the 1wire temp sensors, the mqtt message is a DS18B20 json packet:{"DS18B20":{"Temperature":"80.26"}}The errors in the logs look like the following:2026-06-24 20:37:44.217 paho-mqtt-client- udi_interface INFO Controller:_on_message: Received message from sensor/1wire/28fe30701b13013f: {"DS18B20":{"Temperature":"79.70"}} 2026-06-24 20:37:44.217 paho-mqtt-client- udi_interface ERROR Controller:_route_message_to_device: Failed to route message to device: MQds.updateInfo() takes 3 positional arguments but 4 were givenLooking through the current plugin code, it appears that the problem for raw nodes is due to the integer being accepted as valid json by '_parse_json_payload' in the Controller class's '_on_message' routine. This is correct behavior, unfortunately, '_process_json_message' looks for a "StatusSNS" key in the json object, which doesn't exist for the integer value.I have a fix for this working in a personal copy of plugin that wraps most of '_process_json_message' in a try..catch block. When that fails, it does the same things as '_process_plain_text_message'. I might be able to create a PR for this fix - thought thinking about it further, the '_parse_json_payload' probably should just return None when the json cannot be loaded into a dictionary.For the DS18B20 temp messages, the problem seems to be a disconnect between the Controller calls to 'node.updateInfo(payload, topic, sensor)' - none of the node definitions have an 'updateInfo' that takes the final 'sensor' argument. My "fix" here is to remove the sensor in the calls, but that seems to go against the current direction of the plugin.Thanks for any assistance. mqtt_dev.yml
June 26Jun 26 You are right, and I had fixed it in v0.50.3 but hadn't pushed it yet. You are the first one to comment so I didn't think the issue was breaking, but obviously is in your situation.In the beta (non-production) store there is a v0.50.3 that you can install directly over top of your current version. Give it a go and let me know how it works for you.
June 26Jun 26 Author Thank you @sjenkins - much appreciated. So far so good with v0.50.3. The raw and temp mqtt nodes are now working as expected.-Sam
Friday at 01:49 PM5 days ok thanks for the feedbck, I will publish v0.50.3 as beta, and will give it a week or so for general comments. Let me know if you find anything.
Create an account or sign in to comment