Unable to setup association group of MT02650 (Devolo Z-Wave radiator valve) to have it utilize a room sensor

Dear community. Only recently I noticed an issue with a Danfoss / Devolo radiator control valve ((MT02650) that I am using together with a Danfoss / Devolo room thermostat (MT2649). Both are connected through the Z-Wave binding on openHAB 4.0.4 - Release Build. I have three of the room thermostats and three of the radiator valves, all integrated using the Z-Wave binding - all suffering from the same issue:

The thermostat has an association group (2) that you should be able to use to define a room sensor that will serve as reference point for the heating control of the valve.

associationGroups

When I try to change the association group to the corresponding room sensor, the changes are not applied and the logs show the group as “unknown”:

[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Association 2 consolidated to [node_6]
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored node_id to 2 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Unknown association group 2

I searched the forum and already found some some threads that touch on similar issues so I already

  • reinitialized the device hoping it would be recognized better afterwards.
  • Further I looked up the database to know when the last changes have been made to the entries of this specific devices and it seams this was some years ago, so I expect my installation to be up to date enough.

Do you have any idea what I might be doing wrong so I can have the room sensor as measurement for the valve? In the room where I use the thermostat the included measurement is far off so help would be very much appreciated.

I can provide the surrounding portion of the log and further some links to the device in the docs:

Z-Wave-Binding XML

Markdown docs:

Z-Wave database device information:

Logs:

Logs (click to unfold)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update received
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update received
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored wakeup_node to 1 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored wakeup_node to 1 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored wakeup_interval to 300 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored wakeup_interval to 300 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update set group_1 to [controller] (ArrayList)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored node_id to 2 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Association 1 consolidated to [controller]
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update set group_2 to [node_6] (ArrayList)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Unknown association group 1
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Association 2 consolidated to [node_6]
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update ignored node_id to 2 (BigDecimal)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Unknown association group 2
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Configuration update set group_2 to [node_6] (ArrayList)
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Association 2 consolidated to [node_6]
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Unknown association group 2
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Command received zwave:device:9fe7cbac81:node2:thermostat_setpoint_heating --> 24 °C [QuantityType]
[DEBUG] [rter.ZWaveThermostatSetpointConverter] - NODE 2: Thermostat command received for 24 °C
[DEBUG] [s.ZWaveThermostatSetpointCommandClass] - NODE 2: Creating new message for command THERMOSTAT_SETPOINT_SET
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_THERMOSTAT_SETPOINT is NOT required to be secured
[DEBUG] [rter.ZWaveThermostatSetpointConverter] - NODE 2: Sending Message: org.openhab.binding.zwave.internal.protocol.transaction.ZWaveCommandClassTransactionPayload@1c26ffe
[DEBUG] [s.ZWaveThermostatSetpointCommandClass] - NODE 2: Creating new message for application command THERMOSTAT_SETPOINT_GET (Heating)
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_THERMOSTAT_SETPOINT is NOT required to be secured
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 22656 priority from Set to Immediate
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Added 22656 to queue - size 24
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 22657 priority from Get to Immediate
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Added 22657 to queue - size 25
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Polling initialised at 86400 seconds - start in 1500 milliseconds.
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Polling...
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Polling zwave:device:9fe7cbac81:node2:sensor_temperature
[DEBUG] [verter.ZWaveMultiLevelSensorConverter] - NODE 2: Generating poll message for COMMAND_CLASS_SENSOR_MULTILEVEL, endpoint 0
[DEBUG] [ass.ZWaveMultiLevelSensorCommandClass] - NODE 2: Creating new message for command SENSOR_MULTILEVEL_GET
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_SENSOR_MULTILEVEL is NOT required to be secured
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Polling zwave:device:9fe7cbac81:node2:thermostat_setpoint_heating
[DEBUG] [rter.ZWaveThermostatSetpointConverter] - NODE 2: Generating poll message for COMMAND_CLASS_THERMOSTAT_SETPOINT, endpoint 0
[DEBUG] [s.ZWaveThermostatSetpointCommandClass] - NODE 2: Creating new message for application command THERMOSTAT_SETPOINT_GET (Heating)
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_THERMOSTAT_SETPOINT is NOT required to be secured
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Polling zwave:device:9fe7cbac81:node2:battery-level
[DEBUG] [ernal.converter.ZWaveBatteryConverter] - NODE 2: Generating poll message for COMMAND_CLASS_BATTERY endpoint 0
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_BATTERY is NOT required to be secured
[DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 2: Polling zwave:device:9fe7cbac81:node2:time_offset
[DEBUG] [nternal.converter.ZWaveClockConverter] - NODE 2: Generating poll message for COMMAND_CLASS_CLOCK endpoint 0
[DEBUG] [l.commandclass.ZWaveClockCommandClass] - NODE 2: Creating new message for command CLOCK_GET
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
[DEBUG] [ing.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_CLOCK is NOT required to be secured
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 22658 priority from Get to Immediate
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Added 22658 to queue - size 26
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 22659 priority from Get to Immediate
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Transaction already in queue - removed original
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Added 22659 to queue - size 26
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 22660 priority from Get to Immediate
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Added 22660 to queue - size 27
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 22661 priority from Get to Immediate
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - NODE 2: Added 22661 to queue - size 28
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
[DEBUG] [ZWaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 20 03 80 03 29 BC 00 C5
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=32, callback=0, payload=00 20 03 80 03 29 BC 00
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=32, callback=0, payload=00 20 03 80 03 29 BC 00
[DEBUG] [rnal.protocol.ZWaveTransactionManager] - lastTransaction null

Thanks a lot in advance.

Does the node2.xml in the userdata/zwave folder show association groups? If not, possibly need to reinterview? (and wake or wait for wake for interview to happen).

Also wondering if Devolo/Danfoss temperature sensors need to be used. What kind do you have?

Thanks for the input. I thought the relevant XML file was the one from Github that I linked. I could not find the part

      <parameter name="group_2" type="text" groupName="association" multiple="true">
        <label>2: Temprature sensor</label>
        <description><![CDATA[
<br /> <h1>Overview</h1><p>A group of connections for connecting a room temperature sensor, in which it will be necessary to add a Z-Wave temperature sensor, the temperature of which the thermostat will use to control the heating device. Only one temperature sensor can be added to this group.</p>
        ]]></description>
        <multipleLimit>1</multipleLimit>
      </parameter>

From the XML on Github in my node_2.xml.

node2.xml (click to unfold)
<node>
  <homeId>0xf36c66dd</homeId>
  <nodeId>2</nodeId>
  <version>4</version>
  <manufacturer>0x2</manufacturer>
  <deviceId>0x175</deviceId>
  <deviceType>0x5</deviceType>
  <listening>false</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>500</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
    <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
    <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
    <commandClass>COMMAND_CLASS_MARK</commandClass>
    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map"/>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_THERMOSTAT</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_SETPOINT_THERMOSTAT</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
            <COMMAND__CLASS__SENSOR__MULTILEVEL>
              <version>6</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>6</versionSupported>
              <sensors>
                <entry>
                  <multilevelSensorType>TEMPERATURE</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>TEMPERATURE</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
              </sensors>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SENSOR__MULTILEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
            <COMMAND__CLASS__THERMOSTAT__SETPOINT>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <setpoints>
                <entry>
                  <setpointType>HEATING</setpointType>
                  <setpoint>
                    <setpointType>HEATING</setpointType>
                    <initialised>true</initialised>
                    <initCount>0</initCount>
                    <outer-class reference="../../../.."/>
                  </setpoint>
                </entry>
              </setpoints>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__THERMOSTAT__SETPOINT>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
            <COMMAND__CLASS__CLIMATE__CONTROL__SCHEDULE>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__CLIMATE__CONTROL__SCHEDULE>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>2</deviceManufacturer>
              <deviceType>5</deviceType>
              <deviceId>373</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
            <COMMAND__CLASS__PROTECTION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <localModes>
                <localProtection>UNPROTECTED</localProtection>
                <localProtection>PROTECTED</localProtection>
              </localModes>
              <rfModes/>
            </COMMAND__CLASS__PROTECTION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <batteryLevel>44</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CLOCK</commandClass>
            <COMMAND__CLASS__CLOCK>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__CLOCK>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
            <COMMAND__CLASS__WAKE__UP>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <targetNodeId>1</targetNodeId>
              <interval>301</interval>
              <minInterval>60</minInterval>
              <maxInterval>1800</maxInterval>
              <defaultInterval>300</defaultInterval>
              <intervalStep>60</intervalStep>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__WAKE__UP>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <libraryType>LIB_SLAVE_ROUTING</libraryType>
              <protocolVersion>3.67</protocolVersion>
              <applicationVersion>1.0</applicationVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
            <COMMAND__CLASS__MULTI__CMD>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__MULTI__CMD>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors>
    <int>1</int>
    <int>20</int>
    <int>39</int>
  </nodeNeighbors>
  <lastReceived>2024-02-13 01:58:07.694 UTC</lastReceived>
</node>
  • So is this the reason why the controller won’t set it?
  • If so: since reinitializing did not help - how to proceed?

Both sensors belong to the same “ecosystem”, are labeled Devolo and where made by Danfoss. I think I remember that I used the sensor with the valve when I was using the central unit from Devolo, but not 100% sure about that.

The DB XML is based on what the creator of that device in the ZW DB had in their userdata/zwave folder. The way the binding works “in the wild” is on inclusion (or reinitialization) the binding starts by asking for a NIF and the device responds. That is the first section of your local XML. Then the binding queries the device about the details of each command class. The problem from your file is the device did not send the CC ASSOCIATION as supported so the binding did not ask about it (and you can’t set it). Do all three device XMLs look the same (in the NIF section)?

The only other thing I could suggest is to exclude the device completely, do a factory reset and include again (It will be a new number). Unlink your items from the channels before excluding, so you can link them back after reinclusion and not create any orphan links. If that doesn’t work the devices have a problem. (I don’t know if it is possible to force the binding to look for the details of a CC, if it is not in the NIF)

Thanks a lot, that was helpful. I imagined the binding to fully go for the provided specificaiton.

Yes. Command classes look the same, as well as the associationGroups list (which is empty). I have other devices paired, where groups are present.

$ grep  -ir \<nodeInformationFrame -A 25 *.xml

network_abc__node_2.xml:  <nodeInformationFrame>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_VERSION</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_MARK</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
network_abc__node_2.xml-    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
network_abc__node_2.xml-  </nodeInformationFrame>
network_abc__node_2.xml-  <associationGroups class="concurrent-hash-map"/>

[...]

network_abc__node_14.xml:  <nodeInformationFrame>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_VERSION</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_MARK</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
network_abc__node_14.xml-    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
network_abc__node_14.xml-  </nodeInformationFrame>
network_abc__node_14.xml-  <associationGroups class="concurrent-hash-map"/>

[...]

network_abc__node_18.xml:  <nodeInformationFrame>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_THERMOSTAT_SETPOINT</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_VERSION</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_MARK</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_CLOCK</commandClass>
network_abc__node_18.xml-    <commandClass>COMMAND_CLASS_MULTI_CMD</commandClass>
network_abc__node_18.xml-  </nodeInformationFrame>
network_abc__node_18.xml-  <associationGroups class="concurrent-hash-map"/>

Strange. I will try your suggestion. Thank you so far. What leaves me puzzled is that all three devices behave in the same way. This makes me wonder if something else might be the issue.

Always possible, but if that’s the case it is nothing I’ve encountered, so don’t know what else to do. :frowning_face:

Sadly even a complete reset does not change anything.

Two follow-up questions:

  • what would happen if I changed the XML and set up the association groups manually?
  • could my devices be of an older hardware iteration or might be in need of a software update?
    • can I see hardware or firmware version in openHAB?
    • can firmware upgrades be performed using openHAB?

It might work for a while, but the XML is overwritten all the time.

Maybe, good thought.

Should be on the UI page, under the device properties drop down

No, Could use the Silabs Simplicity suite, if there is an update file available from the mfg.

Ran across an old thread and refreshed my old memory :unamused:. I think this can be solved with a ZW DB change (which I just made). You could wait for the next snapshot or try this file
mt02650_0_0.xml (4.0 KB)

with this procedure. Hopefully that solves the Association problem (still don’t know about the sensor)