Zwave - Zipato WTRFID not working as documented in the user manual

  • Platform information:
    • Hardware: Raspberry Pi 3 Model B Rev 1.2
    • OS: Raspbian GNU/Linux 9 (stretch)
    • Java Runtime Environment: _from openhabian image installation
    • openHAB version: openHAB 2.5.0~M3-1 (Milestone Build)
  • Issue of the topic: Zipato WTRFID not working as documented in the user manual

Let me refer to https://github.com/openhab/org.openhab.binding.zwave/blob/master/doc/wintop/wtrfid_0_0.md#alarm-access

The Channels documentation states that: "The notification_access_control channel supports the Number item. This is a read only channel so will only be updated following state changes from the device.
Event ID 5 = Away
Event ID 6 = Home

For the Alarm (access) channel)

this channel shows only decimal values of 0 and 255.

Additionally this table is making things less clear

The following state translation is provided for this channel to the Number item type -:

Value	Label
0	Previous Events cleared
1	Manual Lock Operation
2	Manual Unlock Operation
3	RF Lock Operation
4	RF Unlock Operation
5	Keypad Lock Operation
6	Keypad Unlock Operation
7	Manual Not Fully Locked Operation
8	RF Not Fully Locked Operation
9	Auto Lock Locked Operation
10	Auto Lock Not Fully Operation
11	LockJammed
12	All user codes deleted
13	Single user code deleted
14	New user code added
15	New user code not added due to duplicate code
16	Keypad temporary disabled
17	Keypad busy
18	New Program code Entered- Unique code for lock configuration
19	Manually Enter user Access code exceeds code limit
20	Unlock by RF with invalid user code
21	Locked by RF with invalid user code
22	Window/Door is open
23	Window/Door is closed
64	Barrier performing initialization process
65	Barrier operation (Open / Close) force has been exceeded
66	Barrier motor has exceeded manufacturer's operational time limit
67	Barrier operation has exceeded physical mechanical limits
68	Barrier unable to perform requested operation due to UL requirements
69	Barrier Unattended operation has been disabled per UL requirements
70	Barrier failed to perform Requested operation, device malfunction
71	Barrier Vacation Mode
72	Barrier Safety Beam Obstacle
73	Barrier Sensor Not Detected / Supervisory Error
74	Barrier Sensor Low Battery Warning
75	Barrier detected short in WallStation wires
76	Barrier associated with non-Z-wave remote control

Because 0 should be interpreted as “Previous Events cleared”

I have read a comment from @Cris in https://github.com/openhab/org.openhab.binding.zwave/issues/1145 saying “Alarms should never use values like 5 and 6 - they should normally be On and Off (ie binary)”, and I agree with that.

What I’m trying to do?

As the device has the COMMAND_CLASS_USER_CODE_V1 I think it would be possible to trace who is activating or deactivating the alarm device.

When you use a user code configured in the device using habmin, you can see this in the logs

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:58.064 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 12 00 04 00 02 0A 71 05 00 00 00 FF 06 06 01 04 C1 00 AE 

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:58.070 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1859 to 1860

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:58.075 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 0A 71 05 00 00 00 FF 06 06 01 04 C1 00 

2019-09-19 19:38:58.079 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 0A 71 05 00 00 00 FF 06 06 01 04 C1 00 

2019-09-19 19:38:58.081 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2019-09-19 19:38:58.082 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Application Command Request (ALIVE:DONE)

2019-09-19 19:38:58.084 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false

2019-09-19 19:38:58.085 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0A 00 04 04 02 02 84 07 CF 00 B9 

2019-09-19 19:38:58.086 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Incoming command class COMMAND_CLASS_ALARM, endpoint 0

2019-09-19 19:38:58.087 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported

2019-09-19 19:38:58.089 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 2: Received COMMAND_CLASS_ALARM V2 NOTIFICATION_REPORT

2019-09-19 19:38:58.090 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=4, payload=04 02 02 84 07 CF 00 

2019-09-19 19:38:58.091 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: ALARM report - 0 = 0

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:58.093 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1860 to 1861

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:58.095 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: Alarm Type = ACCESS_CONTROL (0)

2019-09-19 19:38:58.097 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveAlarmValueEvent

2019-09-19 19:38:58.098 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_ALARM, value=0

2019-09-19 19:38:58.102 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 2: Alarm converter processing ALARM

2019-09-19 19:38:58.103 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 2: Alarm converter processing ALARM

2019-09-19 19:38:58.105 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - **NODE 2: Updating channel state zwave:device:controller:node2:notification_access_control to 0 [DecimalType]**

2019-09-19 19:38:58.109 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Commands processed 1.

2019-09-19 19:38:58.110 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@c3d7a9.

2019-09-19 19:38:58.113 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:58.112 [vent.ItemStateChangedEvent] - KeyPadAccess changed from 255 to 0

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:58.114 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2019-09-19 19:38:58.117 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=4, payload=04 02 02 84 07 CF 00 

2019-09-19 19:38:58.118 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2019-09-19 19:38:58.120 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Application Command Request (ALIVE:DONE)

2019-09-19 19:38:58.122 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false

2019-09-19 19:38:58.123 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Is awake with 0 messages in the queue

2019-09-19 19:38:58.125 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Start sleep timer at 1000ms

2019-09-19 19:38:58.127 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveNodeStatusEvent

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:58.143 [me.event.ThingUpdatedEvent] - Thing 'zwave:device:controller:node2' has been updated.

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:58.143 [DEBUG] [ve.internal.protocol.ZWaveController] - NODE 2: Node Status event - Node is AWAKE

2019-09-19 19:38:58.144 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Commands processed 1.

2019-09-19 19:38:58.146 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@69e4bb.

2019-09-19 19:38:58.148 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2019-09-19 19:38:58.149 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2019-09-19 19:38:58.151 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:38:58.152 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2019-09-19 19:38:58.626 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: WakeupTimerTask 0 Messages waiting, state DONE

2019-09-19 19:38:59.127 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: WakeupTimerTask 0 Messages waiting, state DONE

2019-09-19 19:38:59.128 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: No more messages, go back to sleep

2019-09-19 19:38:59.130 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 2: Creating new message for application command WAKE_UP_NO_MORE_INFORMATION

2019-09-19 19:38:59.131 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported

2019-09-19 19:38:59.133 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured

2019-09-19 19:38:59.135 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: sendTransaction org.openhab.binding.zwave.internal.protocol.transaction.ZWaveCommandClassTransactionPayload@c6a51

2019-09-19 19:38:59.139 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 634 priority from Immediate to Immediate

2019-09-19 19:38:59.142 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue

2019-09-19 19:38:59.144 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Added 634 to queue - size 1

2019-09-19 19:38:59.146 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2019-09-19 19:38:59.149 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 02 02 84 08 25 8A C6 

2019-09-19 19:38:59.152 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 2: Sending REQUEST Message = 01 09 00 13 02 02 84 08 25 8A C6 

2019-09-19 19:38:59.156 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 06

2019-09-19 19:38:59.158 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=null[0], type=ACK[2], dest=255, callback=0, payload=

2019-09-19 19:38:59.154 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - Message SENT

2019-09-19 19:38:59.160 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=null[0], type=ACK[2], dest=255, callback=0, payload=

2019-09-19 19:38:59.161 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: TID 634: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 138

2019-09-19 19:38:59.162 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:59.163 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_ack changed from 911 to 912

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:59.163 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 

2019-09-19 19:38:59.164 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg: ACK

2019-09-19 19:38:59.166 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:38:59.166 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=01 

2019-09-19 19:38:59.168 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 1 out at start. Holdoff false.

2019-09-19 19:38:59.170 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=01 

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:59.171 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1861 to 1862

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:59.172 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 634: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 138

2019-09-19 19:38:59.174 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking outstanding transactions: 1

2019-09-19 19:38:59.175 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Last transaction: TID 634: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 138

2019-09-19 19:38:59.177 [DEBUG] [ve.internal.protocol.ZWaveController] - Incoming Message: Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=01 

2019-09-19 19:38:59.179 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: sentData successfully placed on stack.

2019-09-19 19:38:59.180 [DEBUG] [nal.protocol.ZWaveTransactionManager] - TID 634: Advanced to WAIT_REQUEST

2019-09-19 19:38:59.182 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: TID 634: Transaction not completed

2019-09-19 19:38:59.183 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:38:59.185 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 1 out at start. Holdoff false.

2019-09-19 19:38:59.186 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 18 00 13 8A 00 00 02 00 BC 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 C1 

==> /var/log/openhab2/events.log <==

2019-09-19 19:38:59.191 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1862 to 1863

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:38:59.194 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=SendData[19], type=Request[0], dest=0, callback=138, payload=8A 00 00 02 00 BC 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 

2019-09-19 19:38:59.200 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=SendData[19], type=Request[0], dest=0, callback=138, payload=8A 00 00 02 00 BC 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 

2019-09-19 19:38:59.202 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 634: [WAIT_REQUEST] priority=Immediate, requiresResponse=true, callback: 138

2019-09-19 19:38:59.205 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking outstanding transactions: 1

2019-09-19 19:38:59.208 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Last transaction: TID 634: [WAIT_REQUEST] priority=Immediate, requiresResponse=true, callback: 138

2019-09-19 19:38:59.210 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking TID 634: (Callback 138)

2019-09-19 19:38:59.213 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Callback match!

2019-09-19 19:38:59.215 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Correlated to TID 634: callback 138

2019-09-19 19:38:59.219 [DEBUG] [ve.internal.protocol.ZWaveController] - Incoming Message: Message: class=SendData[19], type=Request[0], dest=0, callback=138, payload=8A 00 00 02 00 BC 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 

2019-09-19 19:38:59.221 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: SendData Request. CallBack ID = 138, Status = Transmission complete and ACK received(0)

2019-09-19 19:38:59.223 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false

2019-09-19 19:38:59.225 [DEBUG] [e.internal.protocol.ZWaveTransaction] - TID 634: Transaction COMPLETED

2019-09-19 19:38:59.227 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Response processed after 67ms

2019-09-19 19:38:59.229 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: TID 634: Transaction completed

2019-09-19 19:38:59.231 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: notifyTransactionResponse TID:634 DONE

2019-09-19 19:38:59.233 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent

2019-09-19 19:38:59.235 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:38:59.238 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2019-09-19 19:38:59.237 [DEBUG] [nal.protocol.ZWaveTransactionManager] - TID 634: Transaction event listener: DONE: DONE -> 

2019-09-19 19:38:59.241 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Went to sleep COMPLETE

It is updating the notification_user_control channel state with the decimal value 0 corresponding to a “Home -> registered user code ->Enter” key secuence.

For the “Away->registered user code->Enter” key secuence, the notification_user_control channel state gets a 255.

Now in the case you key “Away->“1111” wich is an unregistered user code->Enter”, the logs shows this:


==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:34.432 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 16 00 04 00 02 0E 63 03 00 00 31 31 31 31 00 00 00 00 00 00 BB 00 3A 

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:34.433 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1863 to 1864

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:34.440 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 0E 63 03 00 00 31 31 31 31 00 00 00 00 00 00 BB 00 

2019-09-19 19:41:34.443 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 0E 63 03 00 00 31 31 31 31 00 00 00 00 00 00 BB 00 

2019-09-19 19:41:34.445 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2019-09-19 19:41:34.446 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Application Command Request (ALIVE:DONE)

2019-09-19 19:41:34.448 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false

2019-09-19 19:41:34.450 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Incoming command class COMMAND_CLASS_USER_CODE, endpoint 0

2019-09-19 19:41:34.452 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0A 00 04 04 02 02 84 07 CA 00 BC 

2019-09-19 19:41:34.452 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported

2019-09-19 19:41:34.454 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 2: Received COMMAND_CLASS_USER_CODE V1 USER_CODE_REPORT

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:34.456 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1864 to 1865

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:34.457 [DEBUG] [mmandclass.ZWaveUserCodeCommandClass] - NODE 2: USER_CODE_REPORT 0 is AVAILABLE

2019-09-19 19:41:34.457 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=4, payload=04 02 02 84 07 CA 00 

2019-09-19 19:41:34.460 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveUserCodeValueEvent

2019-09-19 19:41:34.462 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_USER_CODE, value=31 31 31 31 00 00 00 00 00 00

2019-09-19 19:41:34.466 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Config updated

2019-09-19 19:41:34.483 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Commands processed 1.

2019-09-19 19:41:34.485 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@19d60f8.

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:34.485 [me.event.ThingUpdatedEvent] - Thing 'zwave:device:controller:node2' has been updated.

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:34.486 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:34.486 [vent.ConfigStatusInfoEvent] - ConfigStatusInfo [configStatusMessages=[]]

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:34.488 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2019-09-19 19:41:34.491 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=4, payload=04 02 02 84 07 CA 00 

2019-09-19 19:41:34.493 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null

2019-09-19 19:41:34.495 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Application Command Request (ALIVE:DONE)

2019-09-19 19:41:34.497 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false

2019-09-19 19:41:34.500 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Is awake with 0 messages in the queue

2019-09-19 19:41:34.501 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Start sleep timer at 1000ms

2019-09-19 19:41:34.503 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveNodeStatusEvent

2019-09-19 19:41:34.512 [DEBUG] [ve.internal.protocol.ZWaveController] - NODE 2: Node Status event - Node is AWAKE

2019-09-19 19:41:34.513 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Commands processed 1.

2019-09-19 19:41:34.513 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@1c38c7d.

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:34.513 [me.event.ThingUpdatedEvent] - Thing 'zwave:device:controller:node2' has been updated.

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:34.514 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2019-09-19 19:41:34.516 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0

2019-09-19 19:41:34.517 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:41:34.518 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2019-09-19 19:41:35.003 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: WakeupTimerTask 0 Messages waiting, state DONE

2019-09-19 19:41:35.503 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: WakeupTimerTask 0 Messages waiting, state DONE

2019-09-19 19:41:35.504 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: No more messages, go back to sleep

2019-09-19 19:41:35.506 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 2: Creating new message for application command WAKE_UP_NO_MORE_INFORMATION

2019-09-19 19:41:35.507 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported

2019-09-19 19:41:35.509 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured

2019-09-19 19:41:35.510 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: sendTransaction org.openhab.binding.zwave.internal.protocol.transaction.ZWaveCommandClassTransactionPayload@e09825

2019-09-19 19:41:35.514 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Bump transaction 635 priority from Immediate to Immediate

2019-09-19 19:41:35.516 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Adding to device queue

2019-09-19 19:41:35.518 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Added 635 to queue - size 1

2019-09-19 19:41:35.520 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2019-09-19 19:41:35.523 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 02 02 84 08 25 8B C7 

2019-09-19 19:41:35.526 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 2: Sending REQUEST Message = 01 09 00 13 02 02 84 08 25 8B C7 

2019-09-19 19:41:35.528 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - Message SENT

2019-09-19 19:41:35.530 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: TID 635: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 139

2019-09-19 19:41:35.531 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 06

2019-09-19 19:41:35.533 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=null[0], type=ACK[2], dest=255, callback=0, payload=

2019-09-19 19:41:35.535 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=null[0], type=ACK[2], dest=255, callback=0, payload=

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:35.535 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_ack changed from 912 to 913

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:35.537 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 635: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 139

2019-09-19 19:41:35.539 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg: ACK

2019-09-19 19:41:35.542 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:41:35.544 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 1 out at start. Holdoff false.

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:35.545 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1865 to 1866

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:35.546 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 

2019-09-19 19:41:35.549 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=01 

2019-09-19 19:41:35.551 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=01 

2019-09-19 19:41:35.553 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 635: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 139

2019-09-19 19:41:35.555 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking outstanding transactions: 1

2019-09-19 19:41:35.557 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Last transaction: TID 635: [WAIT_RESPONSE] priority=Immediate, requiresResponse=true, callback: 139

2019-09-19 19:41:35.559 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 18 00 13 8B 00 00 02 00 B3 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 CF 

2019-09-19 19:41:35.559 [DEBUG] [ve.internal.protocol.ZWaveController] - Incoming Message: Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=01 

2019-09-19 19:41:35.561 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: sentData successfully placed on stack.

==> /var/log/openhab2/events.log <==

2019-09-19 19:41:35.562 [vent.ItemStateChangedEvent] - zwave_serial_zstick_controller_serial_sof changed from 1866 to 1867

==> /var/log/openhab2/openhab.log <==

2019-09-19 19:41:35.564 [DEBUG] [nal.protocol.ZWaveTransactionManager] - TID 635: Advanced to WAIT_REQUEST

2019-09-19 19:41:35.566 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: TID 635: Transaction not completed

2019-09-19 19:41:35.568 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:41:35.570 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=SendData[19], type=Request[0], dest=0, callback=139, payload=8B 00 00 02 00 B3 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 

2019-09-19 19:41:35.570 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 1 out at start. Holdoff false.

2019-09-19 19:41:35.574 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=SendData[19], type=Request[0], dest=0, callback=139, payload=8B 00 00 02 00 B3 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 

2019-09-19 19:41:35.575 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 635: [WAIT_REQUEST] priority=Immediate, requiresResponse=true, callback: 139

2019-09-19 19:41:35.577 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking outstanding transactions: 1

2019-09-19 19:41:35.579 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Last transaction: TID 635: [WAIT_REQUEST] priority=Immediate, requiresResponse=true, callback: 139

2019-09-19 19:41:35.580 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking TID 635: (Callback 139)

2019-09-19 19:41:35.582 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Callback match!

2019-09-19 19:41:35.584 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Correlated to TID 635: callback 139

2019-09-19 19:41:35.587 [DEBUG] [ve.internal.protocol.ZWaveController] - Incoming Message: Message: class=SendData[19], type=Request[0], dest=0, callback=139, payload=8B 00 00 02 00 B3 7F 7F 7F 7F 00 01 03 00 00 00 00 02 01 00 00 

2019-09-19 19:41:35.589 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: SendData Request. CallBack ID = 139, Status = Transmission complete and ACK received(0)

2019-09-19 19:41:35.591 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false

2019-09-19 19:41:35.593 [DEBUG] [e.internal.protocol.ZWaveTransaction] - TID 635: Transaction COMPLETED

2019-09-19 19:41:35.594 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Response processed after 65ms

2019-09-19 19:41:35.596 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: TID 635: Transaction completed

2019-09-19 19:41:35.598 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: notifyTransactionResponse TID:635 DONE

2019-09-19 19:41:35.613 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent

2019-09-19 19:41:35.615 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty

2019-09-19 19:41:35.614 [DEBUG] [nal.protocol.ZWaveTransactionManager] - TID 635: Transaction event listener: DONE: DONE -> 

2019-09-19 19:41:35.616 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

2019-09-19 19:41:35.618 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Went to sleep COMPLETE

The first received message shows the sequence “31 31 31 31 00 00 00 00 00 00” which contains the code keyed in by the user.

The Command Class user code has no channel associated, so is unaccesible from rules.

I try but didn’t find how to create a new channel to acces the code from a rule.

How can it be done?

Thanks.

Not sure why you reference Githib. Here is the latest official database entry for that device, along with the documentation we currently possess.

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

Sometimes newer firmware adds new features so we need to make new entries. We need updated documentaton and OH XML file to do that though,

I refer to that documentation because it explains the same as the PDF from Zipato referenced by

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

but in text rather than a graphic. I thought it would be easier to understand.

Anyway Zipato states in the documentation mentioned by you that an ALARM_REPORT_V2 will be generated with (ZW Alarm Event 0x06, User ID) when using a registered user code with the home sequence and the binding is returning a 0 on that channel.

@chris you are our expert in the details of Z-Wave… :wink:

I’m not sure that I understand what you are reporting? Are you saying that it doesn’t do this?

What I understand in the documentation is that it generates an ALARM_REPORT_V2 report. As you said an alarm should be on or off.

But as I said before, Zipato states that that an ALARM_REPORT_V2 will be generated with (ZW Alarm Event 0x06, User ID) when using a registered user code.

My expectation is to have the information cited (Event and user ID) in some way to use it in a rule when the ALARM REPORT is generated.

I cannot understand how this should be interpreted, as an alarm command class in my understanding should be binary.

As owner of the Zipato device I see that if I cannot have the information about the button pressed (Home - Event 0x06 or Away - Event 0x05) and the user ID, the device cannot be used in the way suggested by the documentation.

Sorry - I still don’t understand. Does the device send this report? I think you’re saying that it’s not sending anything and you’re expecting the ALARM_REPORT command to be received? Is that correct? Can you provide the debug log?

The device is sending the ALARM_REPORT. I can see it in the log.

The log is provided in the first message of this thread. Of the two logs is the first one.

What I can see is that the binding set the state of the notification_user_control channel to 0.

What I am missing, and I don’t know enough about the protocol is: if as stated in the product documentation the Event code and the User_ID are provided as part of the message that triggers the ALARM_REPORT_V2 command class. If this is sent by the device, how can it be catched to use this information (Event code and User_ID) in a rule.

Thanks for your patience.

Hi @Cris, I havee been examining the first message that the Zipato device send each time it is operated.

I have tried a number of Home / Away conbinations with a number of different user ID’s. This is an example from the log:

2019-09-20 20:17:37.540 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 12 00 04 00 02 0A 71 05 00 FF 00 FF 06 **05** 01 **04** C4 00 57

I dont have documentation about the message structure but after trying different operations and analysing a reasonable number of messages, I think that the information I am looking for is there.

Always the ZW Alarm Event mentioned in the documentation appears with the correct value in byte 15 counting from left and the user ID in byte 17.

In the example above the ZW alarm Event is 0x05 (Away) and the user ID is 0x04.

The device is sending the alarm report
The controller is receiving it correctly
If I am not wrong what I want to know is if the binding can make available the ZW Alarm Event (byte 15) and the user ID (byte 17) as items to be processed in rules.