MQTT / Homie: Thing containing invalid configuration

  • Platform information:
    • OS: Windows 10
    • OpenHAB version: 3.3.0

Most of my home automation is run through a Beckhoff PLC. Communication between OpenHAB and the PLC is done through MQTT.

When still on OpenHAB 2.5 everything was configured through .things and .item files. Later on I switched to OpenHAB 3.1 and made my PLC ‘Homie’ compliant for some new stuff (heating) that was added. Today I upgraded to OpenHAB 3.3 and am trying to get rid of all my legacy .things and .items files, and move everything to ‘homie compliant configuration’. However my ‘homie thing’ fails to load:

[WARN ] [.core.thing.binding.BaseThingHandler] - Attempt to update thing 'mqtt:homie300:01eb25de8d:plc' with a thing containing invalid configuration 'Configuration[{key=deviceid; type=String; value=plc}, {key=removetopics; type=Boolean; value=false}, {key=basetopic; type=String; value=homie}]', blocked. This is most likely a bug.

Personally I don’t see anything wrong with the configuration. And lots of it was working before. I’ve enabled debugging up to TRACE level but not getting any valuable input on what might be wrong:

2022-07-14 16:23:33.931 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'mqtt:homie300:01eb25de8d:plc' to inbox.
2022-07-14 16:23:42.657 [DEBUG] [core.thing.internal.ThingManagerImpl] - Thing 'mqtt:homie300:01eb25de8d:plc' is tracked by ThingManager.
2022-07-14 16:23:42.659 [DEBUG] [core.thing.internal.ThingManagerImpl] - Calling 'MqttThingHandlerFactory.registerHandler()' for thing 'mqtt:homie300:01eb25de8d:plc'.
2022-07-14 16:23:42.662 [DEBUG] [core.thing.internal.ThingManagerImpl] - Calling initialize handler for thing 'mqtt:homie300:01eb25de8d:plc' at 'org.openhab.binding.mqtt.homie.internal.handler.HomieThingHandler@2abb067a'.
2022-07-14 16:23:42.687 [DEBUG] [e.internal.handler.HomieThingHandler] - About to initialize Homie device plc
2022-07-14 16:23:42.694 [DEBUG] [e.internal.handler.HomieThingHandler] - About to start Homie device plc
2022-07-14 16:23:43.431 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:badkamer_2Dlicht#status to topic: homie/plc/badkamer-licht/status
2022-07-14 16:23:43.432 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:badkamer_2Dverwarming#heating to topic: homie/plc/badkamer-verwarming/heating
2022-07-14 16:23:43.434 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:badkamer_2Dverwarming#target_2Dtemperature to topic: homie/plc/badkamer-verwarming/target-temperature
2022-07-14 16:23:43.435 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'badkamer_verwarming_targettemperature -> mqtt:homie300:01eb25de8d:plc:badkamer_2Dverwarming#target_2Dtemperature', using NoOpProfile
2022-07-14 16:23:43.436 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:bureau_2Dlicht#status to topic: homie/plc/bureau-licht/status
2022-07-14 16:23:43.439 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'bureau_licht_status -> mqtt:homie300:01eb25de8d:plc:bureau_2Dlicht#status', using NoOpProfile
2022-07-14 16:23:43.441 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:badkamer_2Dspiegel_2Dlicht#status to topic: homie/plc/badkamer-spiegel-licht/status
2022-07-14 16:23:43.441 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:bureau_2Dverwarming#status to topic: homie/plc/bureau-verwarming/status
2022-07-14 16:23:43.442 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:badkamer_2Dverwarming#status to topic: homie/plc/badkamer-verwarming/status
2022-07-14 16:23:43.442 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:bureau_2Dverwarming#temperature to topic: homie/plc/bureau-verwarming/temperature
2022-07-14 16:23:43.443 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:badkamer_2Dverwarming#temperature to topic: homie/plc/badkamer-verwarming/temperature
2022-07-14 16:23:43.444 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'bathroom_verwarming_temperature -> mqtt:homie300:01eb25de8d:plc:badkamer_2Dverwarming#temperature', using NoOpProfile
2022-07-14 16:23:43.445 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:bureau_2Dverwarming#heating to topic: homie/plc/bureau-verwarming/heating
2022-07-14 16:23:43.446 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:bureau_2Dverwarming#target_2Dtemperature to topic: homie/plc/bureau-verwarming/target-temperature
2022-07-14 16:23:43.449 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'bureau_verwarming_targettemperature -> mqtt:homie300:01eb25de8d:plc:bureau_2Dverwarming#target_2Dtemperature', using NoOpProfile
2022-07-14 16:23:43.450 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:dressing_2Dlicht#status to topic: homie/plc/dressing-licht/status
2022-07-14 16:23:43.451 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:hal_2Dboven_2Dlicht#status to topic: homie/plc/hal-boven-licht/status
2022-07-14 16:23:43.451 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:kamer_2Dellie_2Dlicht#status to topic: homie/plc/kamer-ellie-licht/status
2022-07-14 16:23:43.452 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:kamer_2Dstijn_2Dlicht#status to topic: homie/plc/kamer-stijn-licht/status
2022-07-14 16:23:43.453 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:keuken_2Dlicht#status to topic: homie/plc/keuken-licht/status
2022-07-14 16:23:43.454 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:living_2Dverwarming#status to topic: homie/plc/living-verwarming/status
2022-07-14 16:23:43.457 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:living_2Dverwarming#temperature to topic: homie/plc/living-verwarming/temperature
2022-07-14 16:23:43.458 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'living_verwarming_temperature -> mqtt:homie300:01eb25de8d:plc:living_2Dverwarming#temperature', using NoOpProfile
2022-07-14 16:23:43.459 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:toilet_2Dlicht#status to topic: homie/plc/toilet-licht/status
2022-07-14 16:23:43.459 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:voordeur_2Dlicht#status to topic: homie/plc/voordeur-licht/status
2022-07-14 16:23:43.461 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'Bureau_verwarming_temperature -> mqtt:homie300:01eb25de8d:plc:bureau_2Dverwarming#temperature', using NoOpProfile
2022-07-14 16:23:43.462 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:garage_2Dlicht#status to topic: homie/plc/garage-licht/status
2022-07-14 16:23:43.464 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:hal_2Dlicht#status to topic: homie/plc/hal-licht/status
2022-07-14 16:23:43.465 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:kamer_2Djulie_2Dlicht#status to topic: homie/plc/kamer-julie-licht/status
2022-07-14 16:23:43.466 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:kelder_2Dlicht#status to topic: homie/plc/kelder-licht/status
2022-07-14 16:23:43.467 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:living_2Dverwarming#heating to topic: homie/plc/living-verwarming/heating
2022-07-14 16:23:43.468 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:living_2Dverwarming#target_2Dtemperature to topic: homie/plc/living-verwarming/target-temperature
2022-07-14 16:23:43.469 [TRACE] [.thing.internal.CommunicationManager] - No Profile found for link 'living_verwarming_targettemperature -> mqtt:homie300:01eb25de8d:plc:living_2Dverwarming#target_2Dtemperature', using NoOpProfile
2022-07-14 16:23:43.470 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:stookkot_2Dlicht#status to topic: homie/plc/stookkot-licht/status
2022-07-14 16:23:43.473 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:tuin_2Dlicht#status to topic: homie/plc/tuin-licht/status
2022-07-14 16:23:43.474 [DEBUG] [ab.binding.mqtt.generic.ChannelState] - Subscribed channel mqtt:homie300:01eb25de8d:plc:zolder_2Dlicht#status to topic: homie/plc/zolder-licht/status
2022-07-14 16:23:43.675 [DEBUG] [e.internal.handler.HomieThingHandler] - Homie device plc fully attached (start)
2022-07-14 16:23:43.922 [WARN ] [.core.thing.binding.BaseThingHandler] - Attempt to update thing 'mqtt:homie300:01eb25de8d:plc' with a thing containing invalid configuration 'Configuration[{key=deviceid; type=String; value=plc}, {key=removetopics; type=Boolean; value=false}, {key=basetopic; type=String; value=homie}]', blocked. This is most likely a bug.
2022-07-14 16:23:43.928 [DEBUG] [e.internal.handler.HomieThingHandler] - Homie device plc fully attached (accept)

Basically the new stuff (for now) is just some lights with a status and status/set topic. Any suggestions/course of actions on what I can do find out what is wrong?

Example from my topics in MQTT Explorer:

This feels like you are attempting to update a Thing created under an older version. If binding authors change the Thing design, existing Things do not get updated with new parameters. You must delete them and make a new one. (If you re-use the same UID it will re-link up to “old” Items etc.)

Tried removing the thing and re-adding it from the auto discovery. But it still fails. I’ve also disabled the new items and just go with the old which used to work, but again no luck. It could be something at the core of my ‘homie compliance PLC code’, because i had to do some changes. But I don’t see what could be wrong. Better logging about why the configuration is considered invalid is what I need. Going by the logs I have it is looping through all the stuff it’s supposed to find.

Disabled all my old things, items and sitemap files.
Disabled all my ‘homie nodes’ in my PLC except 1.
Created my MQTT broker through the interface (used to be in the things file)
Created a new ‘Homie thing’ through autodiscovery
Still the same error
Cleared userdata/cache and userdata/tmp folder
Still the same error

afbeelding

EDIT: Tried a complete blank 3.3.0 installation but still having the same error

Went back to a copy of my 3.1 version and its working again. I guess something broke in 3.2 or 3.3.