ZWave Wrong identification of manufacturer / model of Door / Window sensor

Tags: #<Tag:0x00007efebfc7e650> #<Tag:0x00007efebfc7e4e8> #<Tag:0x00007efebfc7e420>

Hi,

I’m try to include Kaipule IM-20 Door/Window sensor through the Z-Wave binding.
The sensor is being detected, but as TP802ZD Door/Window Sensor,
And it does not display any alarm / open events.

Any idea?

My system info:

  • Platform: Rasberry PI 3 B+
  • CPU: armv7l
  • OS: Raspbian GNU/Linux 9.4 (stretch)
  • Openhab Version: 2.3.0
  • Storage (Total): 14GB
  • Storage (Used): 4GB
  • Z-Wave Controller: Razberry Board 2016 (through Z-Wave binding and NOT Z-Way-Server)

Please post your xml file from /userdata/zwave folder for that node.

I have exactly the same issue - all my IM-20 are recognized as TP802ZD. XML attached.
network_d1cb73e9__node_3.xml (10.6 KB)

Also the burglar and alarm access channel are not triggering :frowning:


Hi Sihul

Here is the "node1.xml" file:
   
    <node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>SENSOR_NOTIFICATION</genericDeviceClass>
    <specificDeviceClass>NOTIFICATION_SENSOR</specificDeviceClass>
  </deviceClass>
  <homeId>0xe5477e84</homeId>
  <nodeId>5</nodeId>
  <version>4</version>
  <manufacturer>0x214</manufacturer>
  <deviceId>0x1</deviceId>
  <deviceType>0x2</deviceType>
  <listening>false</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>ZWAVE_PLUS_INFO</commandClass>
    <commandClass>SENSOR_BINARY</commandClass>
    <commandClass>WAKE_UP</commandClass>
    <commandClass>BATTERY</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>ALARM</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>DEVICE_RESET_LOCALLY</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>SENSOR_BINARY</commandClass>
      <binarySensorCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <isGetSupported>true</isGetSupported>
        <types>
          <binarySensorType>DOORWINDOW</binarySensorType>
          <binarySensorType>TAMPER</binarySensorType>
        </types>
      </binarySensorCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>532</deviceManufacturer>
        <deviceType>2</deviceType>
        <deviceId>1</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>2</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>BATTERY</commandClass>
      <batteryCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <batteryLevel>100</batteryLevel>
        <batteryLow>false</batteryLow>
        <isGetSupported>true</isGetSupported>
      </batteryCommandClass>
    </entry>
    <entry>
      <commandClass>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>6</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0xc06</zwPlusDeviceType>
        <zwPlusInstallerIcon>0xc06</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </entry>
    <entry>
      <commandClass>ALARM</commandClass>
      <alarmCommandClass>
        <version>4</version>
        <instances>1</instances>
        <versionSupported>4</versionSupported>
        <alarms>
          <entry>
            <alarmType>BURGLAR</alarmType>
            <alarmState>
              <alarmType>BURGLAR</alarmType>
              <reportedEvents>
                <int>3</int>
              </reportedEvents>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
          <entry>
            <alarmType>ACCESS_CONTROL</alarmType>
            <alarmState>
              <alarmType>ACCESS_CONTROL</alarmType>
              <reportedEvents>
                <int>22</int>
                <int>23</int>
              </reportedEvents>
              <outer-class reference="../../../.."/>
            </alarmState>
          </entry>
        </alarms>
        <v1Supported>true</v1Supported>
        <isGetSupported>true</isGetSupported>
      </alarmCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</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>2</int>
            <configurationParameter>
              <index>2</index>
              <size>1</size>
              <value>20</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>3</int>
            <configurationParameter>
              <index>3</index>
              <size>1</size>
              <value>12</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
        </configParameters>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ROUTING</libraryType>
        <protocolVersion>4.38</protocolVersion>
        <applicationVersion>6.38</applicationVersion>
        <hardwareVersion>255</hardwareVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>WAKE_UP</commandClass>
      <WakeUpCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <targetNodeId>1</targetNodeId>
        <interval>3600</interval>
        <minInterval>1800</minInterval>
        <maxInterval>86400</maxInterval>
        <defaultInterval>86400</defaultInterval>
        <intervalStep>180</intervalStep>
        <lastWakeup>2018-09-27 08:38:16.745 UTC</lastWakeup>
        <isGetSupported>true</isGetSupported>
      </WakeUpCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
      <associationGroupInfoCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <autoSubscribeGroups>
          <int>1</int>
        </autoSubscribeGroups>
      </associationGroupInfoCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>Lifeline</name>
        <profile1>0x0</profile1>
        <profile2>0x1</profile2>
        <commands>
          <commandClass>SENSOR_BINARY</commandClass>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
          <commandClass>BATTERY</commandClass>
          <commandClass>ALARM</commandClass>
        </commands>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <name>Sensor Basic Set</name>
        <profile1>0x71</profile1>
        <profile2>0x6</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
  </nodeNeighbors>
  <lastSent>2018-09-27 08:38:22.274 UTC</lastSent>
  <lastReceived>2018-09-27 08:38:22.390 UTC</lastReceived>
</node>

This is because the channel types are not set correctly - they should be set to sensor_door and alarm_tamper - I’ve just updated the database so it should flow into the binding in the next day or so.

Hi Chris,

Can you please notify us when you update the db?
Mean while, if I edit locally the node xml, will it fix the problem?

Tx, Meir.

I will try, but it’s likely to be tomorrow in any case.

No - editing the XML will not make any difference as channel information is not stored there. In theory you could edit the json database, but unless you know what you’re doing, it’s not so simple and I would probably recommend waiting as you could screw up your system by editing those files.

I’m not an expert, so I’ll wait for the database to be updated.
Does my local OpenHab sync automatically with the DB?
Actually, I dont know what actions, if any, I have to take to fix the problem once the DB is updated.

Thanks,
Meir.

No - you will need to update the binding to the latest snapshot version.

Update the binding to the latest snapshot - if you’re using the snapshot runtime, then this is as easy as uninstalling the current binding using PaperUI, wait 30 seconds, then install it again.

Then, you will need to delete the things that have been updated, and add them again. You do not need to exclude and re-include them. This just makes sure that your configuration picks up the latest database definitions.

I’m using the stable release.

Uninstall the stable binding, download the snapshot zwave jar from cloudbees, drop it into your addons folder, delete all things, readd all things.
You may need to clear cache and tmp and restart openHAB to make it work.

I did that, but on the Paper UI/add ons/Binding page I see the ols binding-zwave - 2.3.0 and not the 2.4.0 that I have downloaded.

Few thins to note:

  • My addons directory is /usr/share/openhab2/addons
  • On that directory there was only two files: openhab-addons-2.3.0.kar and README
  • I added to that directory the org.openhab.binding.zwave-2.4.0-SNAPSHOT.jar file
  • I did the cache cleaning (including the tmp dir) and stop/start the openhab2.service

Tx, Meir

You won’t see any bindings in PaperUI which are manually installed through your addons folder.
Check via karaf which binding is active.

I checked.
The new binding is installed but not active.
How do I make it active and how do I set its serial port to /dev/ttyAMA0?

First make sure you properly uninstalled the stable binding.
Then perform a bundle:start XXX where XXX is the number from your installed, but not active snapshot binding.

You may need to also install the serial transport dependency:

Add your controller as Thing and then set the correct port in the properties of that Thing.

Thank you very much.
I did as you told and indeed it is active now.
btw, I started learing using the karaf console and it is great. I’m extending my openhab knowledge all the time.

There is (hopefully) one problem.
I added the z-wave controller to my ‘Things’’, but when configuring it, the “serial port” field is missing - so I can’t set it to /dev/ttyAMA0.

Thanks again,
Meir.

This is how this Z-Wave controller config looks:
image

The “port” field is missing

Normally, this is what you will see if the binding is not running - is the controller online? If not, what is the state? Are you sure the binding is running (I know you said it is, but, just checking… :wink: )?

You are right
I did bundle:start 186 (my zwave id) and went to Paper UI, Clicked Add thing and saw the Z-Wave Contrtoller Thing.

But now I ran again the following command and it is “Installed” and not “Active”

bundle:list | grep ZWave

186 │ Installed │ 80 │ 2.4.0.201809291432 │ ZWave Binding

I nran also the thins list:
smarthome:things list

.
.
.
zwave:serial_zstick:ed57d759 (Type=Thing, Status=UNINITIALIZED, Label=Razberry Board 2016 Z-Wave Controller, Bridge=null)
.
.
.

Normally a bundle won’t start if it’s missing dependencies. I think the only dependency that is likely to be missing is the serial driver.

Try typing feature:install openhab-transport-serial in karaf and see if it starts.