OH2 Z-Wave refactoring and testing... and SECURITY

Gotcha… I had wanted to see what people were reporting (and fixes/features committed in the builds posted to this thread), but rarely saw anything in the dev branch. Which reminds me… did you get (and have a chance to review) my email :upside_down:? I’d sent the log that should show what was going on when the binding seemed to stop functioning (from a few posts up). Or should I post as an issue?

I don’t really have any context of what was going on so it’s hard to say other than alarms are being transferred.
Sorry – allow me to provide a bit more context.

It’s good to see that the binding is receiving the alarm messages. But, it’s not passing them through as a Number to openHAB. This event in the DEBUG log was captured immediately after I manually locked the deadbolt (thumb turn).

Below is a screenshot of the item that’s not receiving ANY update whatsoever. It remains “null” no matter what happens to the door. frontDoorLock_alarm is a “number” item, defined through the paperUI.

I’m happy to provide any information necessary to help figure out what’s going on. Just let me know!

I don’t want to ask people to put logs with secure information on github or on the forum and find someone is using them to break into peoples systems

So… I should probably redact that code I posted above? :slight_smile:

Please post the XML file for the device (if there are any USER_CODEs in the file, delete them :wink: )
.

Yes - probably it’s not the best - it depends on how security conscious you are. The message is provided both in the clear and encrypted, so in theory someone could work out the key.

By downgrading the zwave binding to 2.1.0.201704232237, my locks (BE469) are again reporting alarm_number. My browser download history doesn’t show anything between this version and one from 5/18. But 4/23 is the furthest back I archived, so I do not have the subsequent build to test. Based on the info I’ve been able to dig up on my deployment history, it looks like the build I downloaded 5/18 introduced the regression. If it would help, you could send me an interim build to confirm this.

As above, please provide the XML for the device. From what I can see in the log above, notifications are not being processed at all as there were no messages logged from the command class.

Here are two, in case there’s a difference… I did a diff but there were too many things rearranged to easily make sense of it

2.1.0.201704232237 (working)

<node>
  <homeId>0x12345678</homeId>
  <nodeId>183</nodeId>
  <version>4</version>
  <manufacturer>0x3b</manufacturer>
  <deviceId>0x5044</deviceId>
  <deviceType>0x6341</deviceType>
  <listening>false</listening>
  <frequentlyListening>true</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_APPLICATION_STATUS</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
  </nodeInformationFrame>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints>
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_ENTRY_CONTROL</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_SECURE_KEYPAD_DOOR_LOCK</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses>
          <commandClass>COMMAND_CLASS_ANTITHEFT</commandClass>
          <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
          <commandClass>COMMAND_CLASS_DOOR_LOCK</commandClass>
          <commandClass>COMMAND_CLASS_ALARM</commandClass>
          <commandClass>COMMAND_CLASS_BATTERY</commandClass>
          <commandClass>COMMAND_CLASS_BASIC</commandClass>
          <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
          <commandClass>COMMAND_CLASS_USER_CODE</commandClass>
        </secureCommandClasses>
        <supportedCommandClasses>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <libraryType>LIB_SLAVE_ROUTING</libraryType>
              <protocolVersion>3.42</protocolVersion>
              <applicationVersion>113.22</applicationVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_APPLICATION_STATUS</commandClass>
            <COMMAND__CLASS__APPLICATION__STATUS>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__APPLICATION__STATUS>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <batteryLevel>65</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SECURITY</commandClass>
            <COMMAND__CLASS__SECURITY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__SECURITY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>59</deviceManufacturer>
              <deviceType>25409</deviceType>
              <deviceId>20548</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <maxGroups>1</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_USER_CODE</commandClass>
            <COMMAND__CLASS__USER__CODE>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <numberOfUsersSupported>30</numberOfUsersSupported>
              <userCodeList>
                <entry>
                  <int>1</int>
                  <userCode>
                    <state>OCCUPIED</state>
                    <code>2A 2A 2A 2A 2A 2A 2A 2A 2A 2A</code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>2</int>
                  <userCode>
                    <state>OCCUPIED</state>
                    <code>2A 2A 2A 2A 2A 2A 2A 2A 2A 2A</code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>3</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>4</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>5</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>6</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>7</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>8</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>9</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>10</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>11</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>12</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>13</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>14</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>15</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>16</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>17</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>18</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>19</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>20</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>21</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>22</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>23</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>24</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>25</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>26</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>27</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>28</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>29</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>30</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
              </userCodeList>
            </COMMAND__CLASS__USER__CODE>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
            <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
            </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <configParameters>
                <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>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>5</int>
                  <configurationParameter>
                    <index>5</index>
                    <size>1</size>
                    <value>-1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>6</int>
                  <configurationParameter>
                    <index>6</index>
                    <size>4</size>
                    <value>50331648</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>7</int>
                  <configurationParameter>
                    <index>7</index>
                    <size>1</size>
                    <value>3</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>8</int>
                  <configurationParameter>
                    <index>8</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>9</int>
                  <configurationParameter>
                    <index>9</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>10</int>
                  <configurationParameter>
                    <index>10</index>
                    <size>1</size>
                    <value>3</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>11</int>
                  <configurationParameter>
                    <index>11</index>
                    <size>1</size>
                    <value>-1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>12</int>
                  <configurationParameter>
                    <index>12</index>
                    <size>4</size>
                    <value>130</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>13</int>
                  <configurationParameter>
                    <index>13</index>
                    <size>4</size>
                    <value>833</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>14</int>
                  <configurationParameter>
                    <index>14</index>
                    <size>4</size>
                    <value>6</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>15</int>
                  <configurationParameter>
                    <index>15</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>16</int>
                  <configurationParameter>
                    <index>16</index>
                    <size>1</size>
                    <value>6</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>18</int>
                  <configurationParameter>
                    <index>18</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DOOR_LOCK</commandClass>
            <COMMAND__CLASS__DOOR__LOCK>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <lockTimeoutSet>false</lockTimeoutSet>
              <lockTimeout>0</lockTimeout>
              <lockTimeoutMinutes>254</lockTimeoutMinutes>
              <lockTimeoutSeconds>254</lockTimeoutSeconds>
              <insideHandleMode>0</insideHandleMode>
              <outsideHandleMode>0</outsideHandleMode>
            </COMMAND__CLASS__DOOR__LOCK>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ALARM</commandClass>
            <COMMAND__CLASS__ALARM>
              <version>3</version>
              <instances>1</instances>
              <versionSupported>3</versionSupported>
              <alarms>
                <entry>
                  <alarmType>SYSTEM</alarmType>
                  <alarmState>
                    <alarmType>SYSTEM</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <entry>
                  <alarmType>ACCESS_CONTROL</alarmType>
                  <alarmState>
                    <alarmType>ACCESS_CONTROL</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <entry>
                  <alarmType>BURGLAR</alarmType>
                  <alarmState>
                    <alarmType>BURGLAR</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>2</int>
    <int>25</int>
    <int>27</int>
    <int>29</int>
    <int>31</int>
    <int>32</int>
    <int>34</int>
    <int>35</int>
    <int>37</int>
    <int>38</int>
    <int>39</int>
    <int>42</int>
    <int>43</int>
    <int>44</int>
    <int>45</int>
    <int>83</int>
    <int>107</int>
    <int>108</int>
    <int>109</int>
    <int>110</int>
    <int>111</int>
    <int>113</int>
    <int>129</int>
    <int>140</int>
    <int>141</int>
    <int>150</int>
    <int>177</int>
    <int>184</int>
    <int>185</int>
    <int>187</int>
  </nodeNeighbors>
  <lastReceived>2017-06-04 09:15:45.242 UTC</lastReceived>
</node>

2.1.0.201705212230 (notifications were not working)

<node>
  <homeId>0x12345678</homeId>
  <nodeId>183</nodeId>
  <version>4</version>
  <manufacturer>0x3b</manufacturer>
  <deviceId>0x5044</deviceId>
  <deviceType>0x6341</deviceType>
  <listening>false</listening>
  <frequentlyListening>true</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_APPLICATION_STATUS</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
  </nodeInformationFrame>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints>
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_ENTRY_CONTROL</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_SECURE_KEYPAD_DOOR_LOCK</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses>
          <commandClass>COMMAND_CLASS_BASIC</commandClass>
          <commandClass>COMMAND_CLASS_ALARM</commandClass>
          <commandClass>COMMAND_CLASS_ANTITHEFT</commandClass>
          <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
          <commandClass>COMMAND_CLASS_BATTERY</commandClass>
          <commandClass>COMMAND_CLASS_USER_CODE</commandClass>
          <commandClass>COMMAND_CLASS_DOOR_LOCK</commandClass>
          <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
        </secureCommandClasses>
        <supportedCommandClasses>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <configParameters>
                <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>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>5</int>
                  <configurationParameter>
                    <index>5</index>
                    <size>1</size>
                    <value>-1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>6</int>
                  <configurationParameter>
                    <index>6</index>
                    <size>4</size>
                    <value>50331648</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>7</int>
                  <configurationParameter>
                    <index>7</index>
                    <size>1</size>
                    <value>3</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>8</int>
                  <configurationParameter>
                    <index>8</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>9</int>
                  <configurationParameter>
                    <index>9</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>10</int>
                  <configurationParameter>
                    <index>10</index>
                    <size>1</size>
                    <value>3</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>11</int>
                  <configurationParameter>
                    <index>11</index>
                    <size>1</size>
                    <value>-1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>12</int>
                  <configurationParameter>
                    <index>12</index>
                    <size>4</size>
                    <value>130</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>13</int>
                  <configurationParameter>
                    <index>13</index>
                    <size>4</size>
                    <value>833</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>14</int>
                  <configurationParameter>
                    <index>14</index>
                    <size>4</size>
                    <value>6</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>15</int>
                  <configurationParameter>
                    <index>15</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>16</int>
                  <configurationParameter>
                    <index>16</index>
                    <size>1</size>
                    <value>6</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>18</int>
                  <configurationParameter>
                    <index>18</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
            <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
            </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_USER_CODE</commandClass>
            <COMMAND__CLASS__USER__CODE>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <numberOfUsersSupported>30</numberOfUsersSupported>
              <userCodeList>
                <entry>
                  <int>1</int>
                  <userCode>
                    <state>OCCUPIED</state>
                    <code>2A 2A 2A 2A 2A 2A 2A 2A 2A 2A</code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>2</int>
                  <userCode>
                    <state>OCCUPIED</state>
                    <code>2A 2A 2A 2A 2A 2A 2A 2A 2A 2A</code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>3</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>4</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>5</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>6</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>7</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>8</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>9</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>10</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>11</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>12</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>13</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>14</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>15</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>16</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>17</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>18</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>19</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>20</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>21</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>22</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>23</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>24</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>25</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>26</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>27</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>28</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>29</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>30</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
              </userCodeList>
            </COMMAND__CLASS__USER__CODE>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SECURITY</commandClass>
            <COMMAND__CLASS__SECURITY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__SECURITY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DOOR_LOCK</commandClass>
            <COMMAND__CLASS__DOOR__LOCK>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <lockTimeoutSet>false</lockTimeoutSet>
              <lockTimeout>0</lockTimeout>
              <lockTimeoutMinutes>254</lockTimeoutMinutes>
              <lockTimeoutSeconds>254</lockTimeoutSeconds>
              <insideHandleMode>0</insideHandleMode>
              <outsideHandleMode>0</outsideHandleMode>
            </COMMAND__CLASS__DOOR__LOCK>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <maxGroups>1</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ALARM</commandClass>
            <COMMAND__CLASS__ALARM>
              <version>3</version>
              <instances>1</instances>
              <versionSupported>3</versionSupported>
              <alarms>
                <entry>
                  <alarmType>BURGLAR</alarmType>
                  <alarmState>
                    <alarmType>BURGLAR</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
                <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>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <batteryLevel>81</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_APPLICATION_STATUS</commandClass>
            <COMMAND__CLASS__APPLICATION__STATUS>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__APPLICATION__STATUS>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>59</deviceManufacturer>
              <deviceType>25409</deviceType>
              <deviceId>20548</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <libraryType>LIB_SLAVE_ROUTING</libraryType>
              <protocolVersion>3.42</protocolVersion>
              <applicationVersion>113.22</applicationVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors>
    <int>1</int>
    <int>2</int>
    <int>20</int>
    <int>24</int>
    <int>25</int>
    <int>27</int>
    <int>28</int>
    <int>34</int>
    <int>35</int>
    <int>37</int>
    <int>39</int>
    <int>42</int>
    <int>43</int>
    <int>44</int>
    <int>45</int>
    <int>88</int>
    <int>107</int>
    <int>108</int>
    <int>109</int>
    <int>110</int>
    <int>111</int>
    <int>129</int>
    <int>141</int>
    <int>177</int>
    <int>187</int>
  </nodeNeighbors>
  <lastReceived>2017-05-26 00:39:29.697 UTC</lastReceived>
</node>

Unfortunately I don’t know what’s up. I suspect maybe there’s an exception or something that’s not in the log? There is no processing of the alarm command class (or at least no logging of it).

Hi there,

I am doing my very first steps with Z-Wave and decided to go for this binding on openHAB 2.1 Snapshot 917.
I have an AEON Gen5 Stick connected to the RaspPi with openhabianpi installed. The stick is working fine and the binding is active. Next I added the first Z-Wave devices, two sensative Strips, as Things and got this to work.

But now I get stuck as I don’t know how to get the Item I created to report the open/closed status.

In my simple world a simple contact Item should be usable even without any further configuration directly in PaperUI and show the open/closed state there already.
But when I move the magnet, no open or closed state change is shown nor do I see anything like that in the Logfiles.
I only see debug logs but no other logs (log level is set to debug) showing OPEN or CLOSED state changes.

I hope anyone can guide me in the right direction on how to check that everything is set-up correctly or where I might still have an issue to be resolved. The following log shows when the magnet gets attached to the strip (and I guess it is node 2 I was playing around with but not sure) and then removed from the strip. It is even hard to see which node you are currently interacting with.

The log shows several nodes, although I only have the strips added to openHAB as node2 and node3, but maybe, because I also used the AEON stick itself with its “Button” and added the strips there as well, they are now “doubled” (before doing the stick stuff I only had node 2 and 3 showing up).

So any help would be appreciated. Z-Wave does not seem to be so easy as I thought before.

openhab> log:clear
openhab> log:tail org.openhab.binding.zwave
21:24:11.415 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 10 00 04 00 04 0A 71 05 00 00 00 FF 06 16 00 00 7E 
21:24:11.421 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Response SENT 6
21:24:11.424 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage inputMessage: class=ApplicationCommandHandler[0x04], type=Request[0x00], dest=4, callback=0, payload=00 04 0A 71 05 00 00 00 FF 06 16 00 00 
21:24:11.428 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage past lockMessage: class=ApplicationCommandHandler[0x04], type=Request[0x00], dest=4, callback=0, payload=00 04 0A 71 05 00 00 00 FF 06 16 00 00 
21:24:11.432 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], dest=4, callback=0, payload=00 04 0A 71 05 00 00 00 FF 06 16 00 00 
21:24:11.433 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
21:24:11.434 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Application Command Request (ALIVE:REQUEST_NIF)
21:24:11.435 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Incoming command class COMMAND_CLASS_ALARM, endpoint 0
21:24:11.436 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY not supported
21:24:11.437 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 4: Received COMMAND_CLASS_ALARM V0 NOTIFICATION_REPORT
21:24:11.438 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 4: NOTIFICATION report - 0 = 0, event=22, status=255, plen=0
21:24:11.439 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 4: Alarm Type = ACCESS_CONTROL (0)
21:24:11.439 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveAlarmValueEvent
21:24:11.440 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Commands processed 1.
21:24:11.441 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@7c25e1.
21:24:11.442 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
21:24:11.443 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
21:24:11.443 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
21:24:11.444 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start
21:24:11.445 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: listening == false, frequentlyListening == false, awake == false
21:24:11.445 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 5: Node not awake!
21:24:11.450 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 3: listening == false, frequentlyListening == false, awake == false
21:24:11.450 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 3: Node not awake!
21:24:11.453 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: listening == false, frequentlyListening == false, awake == false
21:24:11.454 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Node not awake!
21:24:11.455 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: listening == false, frequentlyListening == false, awake == false
21:24:11.455 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Node not awake!
21:24:11.456 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction from controllerQueue
21:24:11.456 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage nothing
21:24:16.446 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 10 00 04 00 04 0A 71 05 00 00 00 FF 06 17 00 00 7F 
21:24:16.449 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Response SENT 6
21:24:16.450 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage inputMessage: class=ApplicationCommandHandler[0x04], type=Request[0x00], dest=4, callback=0, payload=00 04 0A 71 05 00 00 00 FF 06 17 00 00 
21:24:16.451 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage past lockMessage: class=ApplicationCommandHandler[0x04], type=Request[0x00], dest=4, callback=0, payload=00 04 0A 71 05 00 00 00 FF 06 17 00 00 
21:24:16.452 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], dest=4, callback=0, payload=00 04 0A 71 05 00 00 00 FF 06 17 00 00 
21:24:16.452 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
21:24:16.453 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Application Command Request (ALIVE:REQUEST_NIF)
21:24:16.453 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Incoming command class COMMAND_CLASS_ALARM, endpoint 0
21:24:16.453 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY not supported
21:24:16.454 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 4: Received COMMAND_CLASS_ALARM V0 NOTIFICATION_REPORT
21:24:16.454 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 4: NOTIFICATION report - 0 = 0, event=23, status=255, plen=0
21:24:16.454 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 4: Alarm Type = ACCESS_CONTROL (0)
21:24:16.455 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveAlarmValueEvent
21:24:16.455 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Commands processed 1.
21:24:16.456 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@11f72d8.
21:24:16.456 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
21:24:16.456 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
21:24:16.457 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
21:24:16.457 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start
21:24:16.457 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: listening == false, frequentlyListening == false, awake == false
21:24:16.457 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 5: Node not awake!
21:24:16.458 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 3: listening == false, frequentlyListening == false, awake == false
21:24:16.458 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 3: Node not awake!
21:24:16.458 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: listening == false, frequentlyListening == false, awake == false
21:24:16.458 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Node not awake!
21:24:16.459 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: listening == false, frequentlyListening == false, awake == false
21:24:16.459 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Node not awake!
21:24:16.459 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction from controllerQueue
21:24:16.459 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage nothing

Thx in advance,

Uwe

Chris, I too am noticing ever since a update to this binding my 4in1 motion sensor is not triggering on motion detected alarms which it used to. The log file shows no mention of it but instead shows the activity as it tries to talk to the “dead” node and then failing (because the node is sleeping again) it marks it failed. It never processes the event that triggered the notification.

https://pastebin.com/64fUcMM0

I set up a new openhab instance on the snapshot branch today and I got everything but my Leviton VRE06-1LZ z-wave dimmer seems to be working fine so far. The Leviton shows up as “Z-Wave Node 30 (001D:0E01:0209:0.5)”, and the log shows the following:

2017-06-04 15:32:20.272 [WARN ] [tocol.commandclass.ZWaveCommandClass] - NODE 30: Unknown command class 0x91
2017-06-04 15:32:21.361 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 30: Device discovery could not resolve to a thingType! 001D:0E01:0209::0.5

Unfortunately, it does not seem to create an xml file like all the other zwave devices, but here is the properties showing on the Thing:

zwave_class_basic ROUTING_SLAVE
zwave_class_generic MULTILEVEL_SWITCH
zwave_frequent false
zwave_neighbours 2,3,4,6,8,9,12,13,14,15,16,17,18,19,20,22,23,24,25,26,29,33,36
zwave_version 0.5
zwave_listening true
zwave_deviceid 521
zwave_nodeid 30
zwave_routing true
zwave_beaming false
zwave_class_specific SCENE_SWITCH_MULTILEVEL
zwave_manufacturer 29
zwave_devicetype 3585

Any thoughts? I’m running binding version 2.1.0.201706022154 for what it’s worth

Before I downgraded, I flipped a lock a few times while logging. The following error would show up in the Karaf console with each lock/unlock. This error had been showing up a lot for me, so there may be other triggers, but at least we have a way to recreate it. I did not see any error in the log itself, but did see Received COMMAND_CLASS_ALARM V3 NOTIFICATION_REPORT (I have emailed you the log file… check for node 183). This was using 2.1.0.201705281057.

java.lang.reflect.InvocationTargetException
        at sun.reflect.GeneratedMethodAccessor297.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveCommandClass.handleApplicationCommandRequest(ZWaveCommandClass.java:245)
        at org.openhab.binding.zwave.internal.protocol.ZWaveNode.processCommand(ZWaveNode.java:1284)
        at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$ZWaveReceiveThread.run(ZWaveTransactionManager.java:413)
Caused by: java.lang.NullPointerException
        at org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveAlarmCommandClass.handleNotificationReport(ZWaveAlarmCommandClass.java:140)
        ... 6 more

Almost immediately after downgrading, the binding crashed as previously reported. Since then, this is the only error that has come up in the console.

Exception in thread "Thread-182880" java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
        at java.util.HashMap$ValueIterator.next(HashMap.java:1466)
        at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doDynamicStages(ZWaveNodeInitStageAdvancer.java:936)
        at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$10(ZWaveNodeInitStageAdvancer.java:932)
        at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:202)

Hopefully some of this info is useful for you to find the cause of the issue! In looking through Github, none of the commits look like they could be related to the problem. I’ll get a dev env setup for OH2.

Please post the XML file for the device (if there are any USER_CODEs in the file, delete them :wink: )

Here’s the xml file from my lock. Sorry for the delay, I was away during the weekend.

<node>
  <homeId>0xec74bd6d</homeId>
  <nodeId>6</nodeId>
  <version>4</version>
  <manufacturer>0x90</manufacturer>
  <deviceId>0x1</deviceId>
  <deviceType>0x1</deviceType>
  <listening>false</listening>
  <frequentlyListening>true</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_SECURITY</commandClass>
  </nodeInformationFrame>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints>
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_ENTRY_CONTROL</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_SECURE_KEYPAD_DOOR_LOCK</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses>
          <commandClass>COMMAND_CLASS_BASIC</commandClass>
          <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
          <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
          <commandClass>COMMAND_CLASS_DOOR_LOCK</commandClass>
          <commandClass>COMMAND_CLASS_USER_CODE</commandClass>
          <commandClass>COMMAND_CLASS_BATTERY</commandClass>
          <commandClass>COMMAND_CLASS_ANTITHEFT</commandClass>
          <commandClass>COMMAND_CLASS_VERSION</commandClass>
          <commandClass>COMMAND_CLASS_TIME_PARAMETERS</commandClass>
          <commandClass>COMMAND_CLASS_ALARM</commandClass>
          <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
          <commandClass>COMMAND_CLASS_SECURITY</commandClass>
          <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
          <commandClass>COMMAND_CLASS_SCHEDULE_ENTRY_LOCK</commandClass>
          <commandClass>COMMAND_CLASS_DOOR_LOCK_LOGGING</commandClass>
        </secureCommandClasses>
        <supportedCommandClasses>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <configParameters>
                <entry>
                  <int>40</int>
                  <configurationParameter>
                    <index>40</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>true</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>31</int>
                  <configurationParameter>
                    <index>31</index>
                    <size>1</size>
                    <value>5</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
            <COMMAND__CLASS__PROTECTION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <localModes/>
              <rfModes/>
            </COMMAND__CLASS__PROTECTION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DOOR_LOCK</commandClass>
            <COMMAND__CLASS__DOOR__LOCK>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <lockTimeoutSet>false</lockTimeoutSet>
              <lockTimeout>0</lockTimeout>
              <lockTimeoutMinutes>254</lockTimeoutMinutes>
              <lockTimeoutSeconds>254</lockTimeoutSeconds>
              <insideHandleMode>0</insideHandleMode>
              <outsideHandleMode>0</outsideHandleMode>
            </COMMAND__CLASS__DOOR__LOCK>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_USER_CODE</commandClass>
            <COMMAND__CLASS__USER__CODE>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <numberOfUsersSupported>30</numberOfUsersSupported>
              <userCodeList>
                <entry>
                  <int>1</int>
                  <userCode>
                    <state>OCCUPIED</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>2</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>3</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>4</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>5</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>6</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>7</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>8</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>9</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>10</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>11</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>12</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>13</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>14</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>15</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>16</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>17</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>18</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>19</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>20</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>21</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>22</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>23</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>24</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>25</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>26</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>27</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>28</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>29</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
                <entry>
                  <int>30</int>
                  <userCode>
                    <state>AVAILABLE</state>
                    <code></code>
                    <outer-class reference="../../../.."/>
                  </userCode>
                </entry>
              </userCodeList>
            </COMMAND__CLASS__USER__CODE>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BATTERY</commandClass>
            <COMMAND__CLASS__BATTERY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <batteryLevel>70</batteryLevel>
              <batteryLow>false</batteryLow>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BATTERY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <libraryType>LIB_SLAVE_ROUTING</libraryType>
              <protocolVersion>3.67</protocolVersion>
              <applicationVersion>3.37</applicationVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_TIME_PARAMETERS</commandClass>
            <COMMAND__CLASS__TIME__PARAMETERS>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__TIME__PARAMETERS>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ALARM</commandClass>
            <COMMAND__CLASS__ALARM>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <alarms>
                <entry>
                  <alarmType>GENERAL</alarmType>
                  <alarmState>
                    <alarmType>GENERAL</alarmType>
                    <reportedEvents/>
                    <outer-class reference="../../../.."/>
                  </alarmState>
                </entry>
              </alarms>
              <v1Supported>false</v1Supported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ALARM>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>144</deviceManufacturer>
              <deviceType>1</deviceType>
              <deviceId>1</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SECURITY</commandClass>
            <COMMAND__CLASS__SECURITY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__SECURITY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <maxGroups>1</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SCHEDULE_ENTRY_LOCK</commandClass>
            <COMMAND__CLASS__SCHEDULE__ENTRY__LOCK>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
            </COMMAND__CLASS__SCHEDULE__ENTRY__LOCK>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DOOR_LOCK_LOGGING</commandClass>
            <COMMAND__CLASS__DOOR__LOCK__LOGGING>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <supportedMessages>10</supportedMessages>
            </COMMAND__CLASS__DOOR__LOCK__LOGGING>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors>
    <int>1</int>
    <int>2</int>
    <int>3</int>
    <int>4</int>
    <int>8</int>
  </nodeNeighbors>
  <lastReceived>2017-06-02 04:19:15.300 UTC</lastReceived>
</node>

Yes, thanks - the exception looks like it will be useful and I’ll take a look at this tonight.

Hi Chris, what is meant by “secure inclusion” and how would I go about performing this within 15secs after the main inclusion?

There’s nothing to do - the software will do it automatically so long as the device supports security, and it’s enabled in the controllers configuration. The point is that once you’ve included a device, you can’t then enable security and the device will only allow itself to be switched into secure mode if it’s done within the 15 to 20 seconds after the inclusion.

You might need to read the manual of the device as that may have something specific you need to do - certainly locks tend to have a process that asks you to type in a PIN as part of the inclusion, but otherwise the software will automatically manage the inclusion.

The Type:ID for your device is different than what’s in the database. The database has:

References (Type:Id)	0E01:0334

If you don’t have edit access to the database, I can make this update.

Ah, ok. I don’t currently have edit access so if you can do it when you get time I would appreciate it.

I made the edit, so it just needs to get pulled into the next build of the dev branch.

I now decided to start from scratch and it is very frustrating.
Fresh openhabian OH2 stable. Latest JAR for Zwave from Chris. Simple manual adding of AeonTec Gen5 stick via HABmin.

Then I discovered my sensative strips and had them initialize via manual wake up procedures. They showed up and I was quite happy. I configered Contact thigs for them (however using sensor_binary and not the sensor_door command) and next they really showed open/close in BasicUI. I then added other strips and was very optimistic that all is resolved now, but …

Once I installed them in the doors - they still communicate with openHAB (so communication is ok what can be seen in the logs) I now don’t receive open/close status on the item anymore.
The magnet properly triggers the strips, the LED confirms. Log shows communication but no open/close status anymore.

What is wrong?
Can I clean up everything and start initialisation from scratch without complete re-install of openHAB?
If so, how?

I am really somehow grounded with my first zWave steps :frowning:

Uwe