[SOLVED] ZWave - New sensor (ZW187) possibly not fully implemented

I’m just starting to dabble in Zwave devices, and I’ve successfully connected several different devices to my openhab (native install, linux, recent upgrade to 2.5.4-snapshot). There’s quite a lot I still don’t understand, so it’s hard for me to tell whether the problems I have with an aeotec recessed door sensor 7 (ZW187) are me or the binding. Here’s what I do know after my testing, self-education, and forum searching:

  1. ZW187 was added to the (very awesome!) zwave database only recently but the binding has updated since then and recognizes the device. The device is s2 compliant but my controller is not (Aeotec Gen 5) and I’ve included it in my network via Habmin’s interface. I take the fact that it is recognized by openhab as evidence that the device is properly and fully added to my network.

  2. Battery level channel does work.

  3. None of the other channels receive any data from the device (Binary sensor, Alarm (system, access, power)).

Number Sensor_MF_K_MudroomDoorBat "Mudroom Door [%.1f%%]" <batterylevel> (ZW_Battery) {channel="zwave:device:5368c88b:node18:battery-level"}
Switch Sensor_MF_K_MudroomDoorSB "Mudroom Door [%s]" <door> {channel="zwave:device:5368c88b:node18:sensor_binary"}
Switch Sensor_MF_K_MudroomDoorAS "Mudroom Door [%s]" <door> {channel="zwave:device:5368c88b:node18:alarm_system"}
Switch Sensor_MF_K_MudroomDoorAA "Mudroom Door [%s]" <door> {channel="zwave:device:5368c88b:node18:alarm_access"}
Switch Sensor_MF_K_MudroomDoorAP "Mudroom Door [%s]" <door> {channel="zwave:device:5368c88b:node18:alarm_power"}

Here’s what I suspect (not yet knowledgeable enough to be sure): Alarm command class is not the correct database configuration. On triggering the sensor, the debug log reports that the alarm system and alarm access channels are not implemented.

2020-04-07 21:45:39.867 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 18: Application Command Request (ALIVE:DONE)
2020-04-07 21:45:39.868 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 18: resetResendCount initComplete=true isDead=false
2020-04-07 21:45:39.869 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 18: Incoming command class COMMAND_CLASS_ALARM, endpoint 0
2020-04-07 21:45:39.869 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 18: SECURITY NOT required on COMMAND_CLASS_ALARM
2020-04-07 21:45:39.870 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 18: Received COMMAND_CLASS_ALARM V8 NOTIFICATION_REPORT
2020-04-07 21:45:39.871 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 18: NOTIFICATION report - 0 = 0, event=22, status=255, plen=0
2020-04-07 21:45:39.871 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 18: Alarm Type = ACCESS_CONTROL (0)
2020-04-07 21:45:39.873 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 18: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2020-04-07 21:45:39.874 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 18: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_ALARM, value=255
2020-04-07 21:45:39.874 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter processing NOTIFICATION
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter NOTIFICATION event is 22, type OnOffType
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter NOTIFICATION event is 22, channel alarm_system is not implemented.
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter processing NOTIFICATION
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter NOTIFICATION event is 22, type OnOffType
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter NOTIFICATION event is 22, channel alarm_access is not implemented.
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter processing NOTIFICATION
2020-04-07 21:45:39.875 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 18: Alarm converter NOTIFICATION event is 22, type OnOffType
2020-04-07 21:45:39.876 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 18: Commands processed 1.
2020-04-07 21:45:39.876 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 18: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@418c34d0.
2020-04-07 21:45:39.876 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-04-07 21:45:39.876 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

Here’s what I don’t know/understand:

  1. Why is this device configured with the alarm command class? The alarm command class does show up in the xml auto-generated by the binding on inclusion
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
    <commandClass>COMMAND_CLASS_TRANSPORT_SERVICE</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>COMMAND_CLASS_INDICATOR</commandClass>
    <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
    <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY_2</commandClass>
    <commandClass>COMMAND_CLASS_ALARM</commandClass>
    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
    <commandClass>COMMAND_CLASS_SUPERVISION</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
    <commandClass>COMMAND_CLASS_APPLICATION_STATUS</commandClass>
  </nodeInformationFrame>

but alarm is not listed (as far as I can tell) as a supported command class in the documentation pdf listed for this device on the database page. Is my failure to get a proper alarm channel connected to this device something I’m doing or an error in the database implementation?

  1. Even if the alarm command class is not functioning properly, why don’t I see any activity, debug or otherwise, from the binary sensor channel?

Hi,

Since this is a battery operated device, just wait for the device to completely initialize and do a network heal to help fix routes. This might help.

I do not believe that initialization is the problem. I have successfully added several battery devices to my network already and (I think) I understand the process of inclusion + wake-up.

The device has been included in my network for many days. It has been triggered dozens of times as I’ve been testing and troubleshooting. I have set it to wake-up on several occasions. My network heals automatically every night. A secondary controller software (OpenZwave Control Panel) does not give any indication that the device is not fully initialized, in fact ozwcp correctly receives SensoryBinary notifications and properly shows the state of the device.

That said, I am willing to further explore the possibility that the device initialization is the issue, but waiting more is not going to fix anything. So, how might I go about actively examining the success or failure of the initialization state?

Other than the logs, that is one reason I like HABmin. this device has not been fully discovered. I would disconnect, reconnect, and then wake up several times.

image

OK, that’s interesting, Habmin does show the REQUEST_NIF for this device. However, I have another battery sensor (not the same model) that Habmin also reports the REQUEST_NIF for that has worked flawlessly since its first inclusion with all channels responding appropriately (which is why I didn’t mention the REQUEST_NIF in the first post as I had not found it to be in anyway diagnostic and didn’t realize it might be relevant).

In addition, I have done reinclusion process several times. I only have 7 devices on my zwave network, but as you can see from the logs I posted this is already node 18 mostly because of the number of times I have gone through the exclusion-inclusion (via Habmin)-multiple wake-up cycle with this device (a few of those missing nodes were my August Pro which took a couple of tries as well).

I will try the cycle again when I get a chance and report back. But, is it possible that Habmin doesn’t find the device to be fully initialized because it’s trying to utilize a command class that isn’t support (according to the device documentation)? Might that explain why Habmin disagrees with the OpenZwave Control Panel (ozwcp) which finds the device to be fully initialized. Also, that doesn’t explain why ozwcp properly receives the binary sensor input and openhab doesn’t even register it.

The REQUEST_NIF says the binding has requested, but not received, a “Node Information Frame” from the device. If it was previously fully discovered I think the binding uses the information it cached in the xml file for that node.

That’s helpful information, and, indeed, seems related to some of the issues. The REQUEST_NIF went away on its own when I did a system restart for a completely unrelated issue and now the sensory binary channel does seem to respond. Now it’s not clear why that particular restart fixed that issue because 1) my whole OH system restarts every night at 3 am automatically and that has never fixed the issue before and 2) the other device that was previously listed as REQUEST_NIF still is and continues to function just fine in that state (in fact, it has been triggered numerous times already today both before and after the the restart as it is on a high-use door).

However, even with the REQUEST_NIF gone and Habmin completely satisfied with the device inclusion I continue to see the “not implemented” errors on the alarm channels. So there still appears to be a configuration issue with this device in the binding database.

That can wreak havoc with battery operated Z-Wave devices. Why do that??
Could you post the xml file generated by OH please? It is in the zwave directory of the userdata folder.

It’s slowly developed over several years as a response to OH instability issues in other bindings (as I said the zwave is only a recent attempt, but I’ve been working with wifi devices in OH for quite some time). I don’t know if it is still necessary with the 2.5.4-snapshot, but it was necessary at least as recently as 2.5.0. It does mean that I have to have all my relevant z-wave channels setup with persistence to avoid a lot of null sensors in the morning, but otherwise I’ve not noticed any issues with my other zwave battery devices (5 out of the 7 on my network are on battery). What sort of havoc might I expect, is it just battery life issues?

Here’s the full xml file:

<node>
  <homeId>0xf6420cba</homeId>
  <nodeId>18</nodeId>
  <version>4</version>
  <manufacturer>0x371</manufacturer>
  <deviceId>0xbb</deviceId>
  <deviceType>0x102</deviceType>
  <listening>false</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
    <commandClass>COMMAND_CLASS_TRANSPORT_SERVICE</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>COMMAND_CLASS_INDICATOR</commandClass>
    <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
    <commandClass>COMMAND_CLASS_BATTERY</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
    <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY_2</commandClass>
    <commandClass>COMMAND_CLASS_ALARM</commandClass>
    <commandClass>COMMAND_CLASS_WAKE_UP</commandClass>
    <commandClass>COMMAND_CLASS_SUPERVISION</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
    <commandClass>COMMAND_CLASS_APPLICATION_STATUS</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map">
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <maxNodes>0</maxNodes>
        <name>Lifeline</name>
        <profile1>0x0</profile1>
        <profile2>0x1</profile2>
        <associations>
          <associationMember>
            <node>1</node>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <maxNodes>0</maxNodes>
        <name>On/Off control (Access)</name>
        <profile1>0x71</profile1>
        <profile2>0x6</profile2>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SENSOR_NOTIFICATION</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_NOTIFICATION_SENSOR</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <maxGroups>2</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
            <COMMAND__CLASS__POWERLEVEL>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <powerLevel>0</powerLevel>
              <powerTimeout>0</powerTimeout>
            </COMMAND__CLASS__POWERLEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
            <COMMAND__CLASS__ZWAVEPLUS__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <zwPlusVersion>2</zwPlusVersion>
              <zwPlusRole>ROLE_TYPE_SLAVE_SLEEPING_REPORTING</zwPlusRole>
              <zwPlusNodeType>NODE_TYPE_ZWAVEPLUS_NODE</zwPlusNodeType>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ZWAVEPLUS__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SECURITY</commandClass>
            <COMMAND__CLASS__SECURITY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__SECURITY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
            <COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <maxGroups>2</maxGroups>
            </COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
            <COMMAND__CLASS__ASSOCIATION__GRP__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <autoSubscribeGroups>
                <int>1</int>
              </autoSubscribeGroups>
            </COMMAND__CLASS__ASSOCIATION__GRP__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_BINARY</commandClass>
            <COMMAND__CLASS__SENSOR__BINARY>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <isGetSupported>true</isGetSupported>
              <types>
                <binarySensorType>DOORWINDOW</binarySensorType>
              </types>
            </COMMAND__CLASS__SENSOR__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>881</deviceManufacturer>
              <deviceType>258</deviceType>
              <deviceId>187</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </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>3600</interval>
              <minInterval>240</minInterval>
              <maxInterval>16777200</maxInterval>
              <defaultInterval>3600</defaultInterval>
              <intervalStep>240</intervalStep>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__WAKE__UP>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_INDICATOR</commandClass>
            <COMMAND__CLASS__INDICATOR>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <isGetSupported>true</isGetSupported>
              <supportedIndicatorsInitialised>true</supportedIndicatorsInitialised>
              <supportedIndicators>
                <ZWaveIndicator>
                  <type>NODE_IDENTIFY</type>
                </ZWaveIndicator>
              </supportedIndicators>
            </COMMAND__CLASS__INDICATOR>
          </entry>
          <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_APPLICATION_STATUS</commandClass>
            <COMMAND__CLASS__APPLICATION__STATUS>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__APPLICATION__STATUS>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <libraryType>LIB_SLAVE_ENHANCED</libraryType>
              <protocolVersion>7.12</protocolVersion>
              <applicationVersion>1.4</applicationVersion>
              <hardwareVersion>187</hardwareVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <batteryLevel>100</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
            <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>5</versionSupported>
            </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
            <COMMAND__CLASS__DEVICE__RESET__LOCALLY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__DEVICE__RESET__LOCALLY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>4</versionSupported>
              <configParameters>
                <entry>
                  <int>1</int>
                  <configurationParameter>
                    <index>1</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>81</int>
                  <configurationParameter>
                    <index>81</index>
                    <size>1</size>
                    <value>3</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>2</int>
                  <configurationParameter>
                    <index>2</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>3</int>
                  <configurationParameter>
                    <index>3</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>4</int>
                  <configurationParameter>
                    <index>4</index>
                    <size>2</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>5</int>
                  <configurationParameter>
                    <index>5</index>
                    <size>1</size>
                    <value>15</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>101</int>
                  <configurationParameter>
                    <index>101</index>
                    <size>2</size>
                    <value>70</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>90</int>
                  <configurationParameter>
                    <index>90</index>
                    <size>1</size>
                    <value>30</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ALARM</commandClass>
            <COMMAND__CLASS__ALARM>
              <version>8</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>8</versionSupported>
              <alarms>
                <entry>
                  <alarmType>ACCESS_CONTROL</alarmType>
                  <alarmState>
                    <alarmType>ACCESS_CONTROL</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <entry>
                  <alarmType>SYSTEM</alarmType>
                  <alarmState>
                    <alarmType>SYSTEM</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <entry>
                  <alarmType>POWER_MANAGEMENT</alarmType>
                  <alarmState>
                    <alarmType>POWER_MANAGEMENT</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
              </alarms>
              <v1Supported>true</v1Supported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ALARM>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors>
    <int>1</int>
    <int>9</int>
    <int>13</int>
    <int>17</int>
  </nodeNeighbors>
  <lastReceived>2020-04-09 16:45:37.7 UTC</lastReceived>
</node>

I see some of the sensor reports for that device are disabled by default. Have you tried changing any of the configuration parameters?

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/1226

I tried numerous tests and wake-ups with the Binary Sensor Report parameter (parameter #1) in both its states to no avail over several days. The last time I changed that one, however, was several days ago. Although it appears (I had to check since I’ve tried so many other things since then) that I left it in the Enable state, so if that is correlated with the fact that the binary sensor channel started working just a few hours ago, it is a very strange and indirect correlation.

I did not spend any significant time working with the other parameters as I judged (perhaps ignorantly) that they didn’t have any bearing on the issues at hand with the alarm and binary sensor channels.

Perhaps I can rephrase the alarm class question to be even more clear. As the snippet in the original post and the full xml file show, the database is configured for an alarm command class but doesn’t have a notification command class listed. In the device specification pdf there is no alarm command class listed but there is instead a notification command class that contains the same sub-types (term?) as the alarm class defines in the xml (access, system, and power). I don’t know enough to know if these two command class names are sufficiently synonymous that this discrepancy is irrelevant or if this is the reason that I see the alarm channel errors in the log after the notification command is triggered.

If these are synonymous then the reason I’m not getting any information on those channels is almost certainly still part of my setup/learning curve. But if these are not functionally equivalent then the binding is looking for the wrong command class, but I don’t know why it would have gotten this information if the structure of the xml is pulled, as I suspect, directly from the initialization of the device.

I’ve updated the database to remove these alarms, so this error will not occur. I’ve added the door sensor alarm channel.

1 Like

Thanks @chris and @Bruce_Osborne I’ve learned a lot.