Vision/Zipato ZD2102 door sensor always reports ON

Hi,

I’m trying to make a door sensor working with ZWave 2.0 binding.
It was working fine with Zave 1.x binding (under both OH1 & OH2).
Thanks to @chris, the ZWave 2.0 database has been updated to have my sensor recognized.
But now, I have an issue with alarm report.
When I open the door (= contact opened), my switch item i set to ON, good!

2017-11-05 15:50:08.649 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 11 03 20 01 FF 3E
2017-11-05 15:50:08.664 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-11-05 15:50:08.676 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 04 00 11 03 20 01 FF 3E
2017-11-05 15:50:08.684 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 04 00 11 03 20 01 FF 3E
2017-11-05 15:50:08.692 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 03 20 01 FF
2017-11-05 15:50:08.697 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Application Command Request (ALIVE:DONE)
2017-11-05 15:50:08.703 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 17: Starting initialisation from DONE
2017-11-05 15:50:08.708 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@709593 already registered
2017-11-05 15:50:08.713 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Incoming command class BASIC
2017-11-05 15:50:08.718 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Received Basic Request
2017-11-05 15:50:08.724 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Basic Set sent to the controller will be processed as Basic Report
2017-11-05 15:50:08.730 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Basic report, value = 0xFF
2017-11-05 15:50:08.736 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-11-05 15:50:08.742 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-11-05 15:50:08.748 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255
2017-11-05 15:50:08.755 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 33: Transaction not completed: node address inconsistent. lastSent=33, incoming=255
2017-11-05 15:50:08.766 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 10 00 04 00 11 0A 71 05 06 FF 00 FF 06 16 00 00 92
2017-11-05 15:50:08.784 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-11-05 15:50:08.796 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 10 00 04 00 11 0A 71 05 06 FF 00 FF 06 16 00 00 92
2017-11-05 15:50:08.806 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 10 00 04 00 11 0A 71 05 06 FF 00 FF 06 16 00 00 92
2017-11-05 15:50:08.816 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 0A 71 05 06 FF 00 FF 06 16 00 00
2017-11-05 15:50:08.823 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Application Command Request (ALIVE:DONE)
2017-11-05 15:50:08.828 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 17: Starting initialisation from DONE
2017-11-05 15:50:08.834 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@709593 already registered
2017-11-05 15:50:08.841 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Incoming command class ALARM
2017-11-05 15:50:08.847 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Received ALARM command V4
2017-11-05 15:50:08.852 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Process NOTIFICATION_REPORT V4
2017-11-05 15:50:08.859 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: NOTIFICATION report - 6 = 255, event=22, status=255
2017-11-05 15:50:08.866 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Alarm Type = ACCESS_CONTROL (6)
2017-11-05 15:50:08.871 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveAlarmValueEvent
2017-11-05 15:50:08.879 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2017-11-05 15:50:08.885 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
2017-11-05 15:50:08.892 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter processing NOTIFICATION
2017-11-05 15:50:08.898 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter NOTIFICATION event is 22, type OnOffType
2017-11-05 15:50:08.905 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Updating channel state zwave:device:15f0d1da9dc:node17:alarm_access to ON [OnOffType]

Controller received a BASIC report with value 0xFF, which means door was opened.

But when I close the door (=contact closed), I still get thing updated to ON:

2017-11-05 15:53:51.214 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 11 03 20 01 00 C1
2017-11-05 15:53:51.223 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-11-05 15:53:51.231 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 04 00 11 03 20 01 00 C1
2017-11-05 15:53:51.235 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 04 00 11 03 20 01 00 C1
2017-11-05 15:53:51.241 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 03 20 01 00
2017-11-05 15:53:51.245 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Application Command Request (ALIVE:DONE)
2017-11-05 15:53:51.249 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 17: Starting initialisation from DONE
2017-11-05 15:53:51.253 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@709593 already registered
2017-11-05 15:53:51.259 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Incoming command class BASIC
2017-11-05 15:53:51.265 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Received Basic Request
2017-11-05 15:53:51.270 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Basic Set sent to the controller will be processed as Basic Report
2017-11-05 15:53:51.276 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Basic report, value = 0x00
2017-11-05 15:53:51.281 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-11-05 15:53:51.287 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-11-05 15:53:51.293 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 0
2017-11-05 15:53:51.299 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 19: Transaction not completed: node address inconsistent. lastSent=19, incoming=255
2017-11-05 15:53:51.350 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 10 00 04 00 11 0A 71 05 06 00 00 FF 06 17 00 00 6C
2017-11-05 15:53:51.359 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-11-05 15:53:51.366 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 10 00 04 00 11 0A 71 05 06 00 00 FF 06 17 00 00 6C
2017-11-05 15:53:51.373 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 10 00 04 00 11 0A 71 05 06 00 00 FF 06 17 00 00 6C
2017-11-05 15:53:51.378 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 0A 71 05 06 00 00 FF 06 17 00 00
2017-11-05 15:53:51.381 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Application Command Request (ALIVE:DONE)
2017-11-05 15:53:51.385 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 17: Starting initialisation from DONE
2017-11-05 15:53:51.389 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@709593 already registered
2017-11-05 15:53:51.394 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Incoming command class ALARM
2017-11-05 15:53:51.398 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Received ALARM command V4
2017-11-05 15:53:51.402 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Process NOTIFICATION_REPORT V4
2017-11-05 15:53:51.406 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: NOTIFICATION report - 6 = 0, event=23, status=255
2017-11-05 15:53:51.410 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Alarm Type = ACCESS_CONTROL (6)
2017-11-05 15:53:51.414 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveAlarmValueEvent
2017-11-05 15:53:51.418 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2017-11-05 15:53:51.422 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
2017-11-05 15:53:51.427 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter processing NOTIFICATION
2017-11-05 15:53:51.431 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter NOTIFICATION event is 23, type OnOffType
2017-11-05 15:53:51.436 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Updating channel state zwave:device:15f0d1da9dc:node17:alarm_access to ON [OnOffType]
2017-11-05 15:53:51.444 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter processing NOTIFICATION

A BASIC report with value 0x00, which means door was closed, is sent by the module, but it looks like it is not well interpreted by zwave binding, because item is still set to ON, instead of OFF.

With Zwave 1.X binding, I has to use parameter ‘respond_to_basic=true’ in item configuration to make it works, but I can’t find how to have this behaviour with Zwave 2.x binding version.

Thanks for your help, because I have no idea how to solve this issue.

First thing I would do is using the latest binding version. That one is way too old …
Then let’s see what is happening :rofl:

I am currently using 2.2 snapshot version.
A.mistake in my text, sorry.

It looks like the database is using the default commands so I’ll update it to use the notifications.

Ok thanks. Please tell me when it will be ok.
Will I have to remove thing and xml file before updating zwave binding?

You will need to delete the thing and add it back again (don’t worry about the XML). This allows the system to read in the latest definition.

Hi @chris,

Could you please review Zipato ZD2102 changes you’ve made following this thread, so I can test them?

Thanks!

Yep - I’ll do a database update over the weekend.

Hi,

I have just make a test with the updated database:
my item is set to close when I close the door, but nothing happen when I open the door.

Here is the log when I open the door:

2017-11-21 22:28:03.542 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 11 03 20 01 FF 3E
2017-11-21 22:28:03.560 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-11-21 22:28:03.577 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 04 00 11 03 20 01 FF 3E
2017-11-21 22:28:03.585 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 04 00 11 03 20 01 FF 3E
2017-11-21 22:28:03.592 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 03 20 01 FF
2017-11-21 22:28:03.597 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Application Command Request (ALIVE:DETAILS)
2017-11-21 22:28:03.602 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Incoming command class BASIC
2017-11-21 22:28:03.608 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Received Basic Request
2017-11-21 22:28:03.612 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Basic Set sent to the controller will be processed as Basic Report
2017-11-21 22:28:03.619 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 17: Basic report, value = 0xFF
2017-11-21 22:28:03.626 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-11-21 22:28:03.633 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-11-21 22:28:03.638 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255
2017-11-21 22:28:03.644 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 35: Transaction not completed: node address inconsistent. lastSent=35, incoming=255
2017-11-21 22:28:03.729 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 10 00 04 00 11 0A 71 05 06 FF 00 FF 06 16 00 00 92
2017-11-21 22:28:03.758 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-11-21 22:28:03.776 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 10 00 04 00 11 0A 71 05 06 FF 00 FF 06 16 00 00 92
2017-11-21 22:28:03.802 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 10 00 04 00 11 0A 71 05 06 FF 00 FF 06 16 00 00 92
2017-11-21 22:28:03.821 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 0A 71 05 06 FF 00 FF 06 16 00 00
2017-11-21 22:28:03.834 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Application Command Request (ALIVE:DETAILS)
2017-11-21 22:28:03.847 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 17: Incoming command class ALARM
2017-11-21 22:28:03.853 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Received ALARM command V4
2017-11-21 22:28:03.860 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Process NOTIFICATION_REPORT V4
2017-11-21 22:28:03.867 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: NOTIFICATION report - 6 = 255, event=22, status=255
2017-11-21 22:28:03.871 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 17: Alarm Type = ACCESS_CONTROL (6)
2017-11-21 22:28:03.875 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveAlarmValueEvent
2017-11-21 22:28:03.881 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2017-11-21 22:28:03.886 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
2017-11-21 22:28:03.891 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter processing NOTIFICATION
2017-11-21 22:28:03.895 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter NOTIFICATION event is 22, type OpenClosedType
2017-11-21 22:28:03.900 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - Alarm converter processing NOTIFICATION
2017-11-21 22:28:03.904 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 35: Transaction not completed: node address inconsistent. lastSent=35, incoming=255

Thanks for your help.

Hi,

Still not able to make it work.
There is something different when binding is processing open state and close state, and I am not able to figure it out.
The difference is here:
OPEN

NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
Alarm converter processing NOTIFICATION
Alarm converter NOTIFICATION event is 22, type OpenClosedType
Alarm converter processing NOTIFICATION

CLOSE

NODE 17: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255
Alarm converter processing NOTIFICATION
Alarm converter NOTIFICATION event is 23, type OpenClosedType
Alarm converter NOTIFICATION 3
NODE 17: Updating channel state zwave:device:15f0d1da9dc:node17:sensor_door to CLOSED [OpenClosedType]
Alarm converter processing NOTIFICATION

What is “Alarm converter NOTIFICATION 3” which seems to update channel, but only happens with event=23, not 22?

I have noticed this bloc in thing XML conf file:

  <channel id="sensor_door" typeId="sensor_door">
    <label>Door sensor</label>
    <properties>
      <property name="binding:*:OpenClosedType">ALARM;type=ACCESS_CONTROL, event=23</property>
    </properties>
  </channel>

So I try to remove “event=23” in my local binding jar file, but still the same.
I have also tried to copy xml file from Vision ZD2102 (exactly the same device, but with different manufacturer id), also the same behaviour.

Is someone able to help me?
I’m quite desesperated to have my door sensor working again after migrating from OH1 :frowning:

Hmmm - it might be easier to simply use the development version from this thread -:

Most devices send event 0 to close and the current binding doesn’t really allow this to be selected. If you use the new binding it should work ok as the notification class is heavily rewritten.

Hi,

I’ve just tried with development version, but now my device is not recognized anymore (Unknown device).
Is the database shared between stable and development version?

Lionel

Ok I have to play a little with this module (trying to remove from network, wake up multiple times, etc…) and finally I get it recognized.
And the best… it is now working!!! Open/Close notification!

Thanks for your help!

Yes - it’s basically the same. Probably you just had to wait for the device to wake up (it is a battery device after all so it won’t be detected immediately…).