Switch status not reported for GE 26931/zw4006

  • Platform information:

    • Hardware: Raspberry Pi + Aeotec Z-Stick Gen5
    • OS: openHABianPi
    • Java Runtime Environment: default
    • openHAB version: 2.2.0-1 (Release Build)
  • Issue of the topic:

Hi Guys,

  • I recently bought a GE 26931/zw4006 Motion Switch. Operating the switch physically doesn’t result in the button state to change in Basic UI. The log just shows “zwave_serial_zstick_xxxx_serial_sof changed from 10634 to 10635” instead of showing “MotionSwitchSW changed from OFF to ON”. No rules are triggered if the switch is operated physically. Operating the switch from Basic UI works fine.

  • Similar issue is with motion detection. The log just shows zwave_serial_zstick_xxxx_serial_sof changed. The contact status is not updated in Basic UI.

  • I do have some GE 14291 (ZW4005) and motion sensors in the same setup that are working fine.

  • Items configuration related to the issue

Switch MotionSwitchSW "Motion Switch SW" <switch> (gSwitches) {channel="zwave:device:xxxx:node75:switch_binary"}
Contact MotionSwitchSB "Motion Switch SB" <motion> (gSwitches) {channel="zwave:device:xxxx:node75:sensor_binary"}
Contact MotionSwitchAB "Motion Switch AB" <motion> (gSwitches) {channel="zwave:device:xxxx:node75:alarm_burglar"}
  • Sitemap configuration related to the issue
Group item=gSwitches
  • Rules code related to the issue
rule "test" when Item MotionSwitchSW changed then
	logInfo("test1","MotionSwitchSW = "+MotionSwitchSW.state)
end
rule "test" when Item MotionSwitchSW received command then
	logInfo("test2","MotionSwitchSW = "+MotionSwitchSW.state)
end
rule "test" when Item MotionSwitchSW received update then
	logInfo("test3","MotionSwitchSW = "+MotionSwitchSW.state)
end
  • If logs where generated please post these here using code fences:

Operating the Switch from Basic UI:

2018-02-09 16:27:56.615 [ome.event.ItemCommandEvent] - Item 'MotionSwitchSW' received command ON
2018-02-09 16:27:56.636 [vent.ItemStateChangedEvent] - MotionSwitchSW changed from OFF to ON
2018-02-09 16:27:56.643 [INFO ] [eclipse.smarthome.model.script.test2] - MotionSwitchSW = ON
2018-02-09 16:27:56.678 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_ack changed from 721 to 722
2018-02-09 16:27:56.683 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1360 to 1361
2018-02-09 16:27:56.675 [INFO ] [eclipse.smarthome.model.script.test1] - MotionSwitchSW = ON
2018-02-09 16:27:56.645 [INFO ] [eclipse.smarthome.model.script.test3] - MotionSwitchSW = ON
2018-02-09 16:27:56.789 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1361 to 1362
2018-02-09 16:28:02.309 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1362 to 1363

Operating the Switch Physically:

2018-02-09 16:36:10.190 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1390 to 1391
2018-02-09 16:36:13.668 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1391 to 1392
2018-02-09 16:36:14.141 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1392 to 1393
2018-02-09 16:36:14.436 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1393 to 1394
2018-02-09 16:36:14.581 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1394 to 1395
2018-02-09 16:36:14.703 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 1395 to 1396

Please enable debug logging so you can see what is being received by the binding when you change the physical switch setting.

Thank you Chris. Below is the log with debugging enabled. Based on the log, I added another item for switch_binary1, which is correctly updated in the UI.

2018-02-12 09:48:11.548 [ome.event.ItemCommandEvent] - Item 'MotionSwitchSW' received command ON
2018-02-12 09:48:11.563 [vent.ItemStateChangedEvent] - MotionSwitchSW changed from OFF to ON
==> /var/log/openhab2/openhab.log <==
2018-02-12 09:48:11.572 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 75: Command received zwave:device:xxxx:node75:switch_binary --> ON
2018-02-12 09:48:11.578 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 75: Creating new message for application command SWITCH_BINARY_SET
2018-02-12 09:48:11.583 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
2018-02-12 09:48:11.583 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue={}
2018-02-12 09:48:11.588 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0A 00 13 4B 03 25 01 FF 25 6C 3C 
2018-02-12 09:48:11.586 [INFO ] [eclipse.smarthome.model.script.test2] - MotionSwitchSW = ON
2018-02-12 09:48:11.594 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 75: Sending REQUEST Message = 01 0A 00 13 4B 03 25 01 FF 25 6C 3C 
2018-02-12 09:48:11.595 [INFO ] [eclipse.smarthome.model.script.test3] - MotionSwitchSW = ON
==> /var/log/openhab2/events.log <==
2018-02-12 09:48:11.612 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_ack changed from 6756 to 6757
==> /var/log/openhab2/openhab.log <==
2018-02-12 09:48:11.612 [INFO ] [eclipse.smarthome.model.script.test1] - MotionSwitchSW = ON
2018-02-12 09:48:11.622 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 
==> /var/log/openhab2/events.log <==
2018-02-12 09:48:11.626 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 18859 to 18860
==> /var/log/openhab2/openhab.log <==
2018-02-12 09:48:11.631 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2018-02-12 09:48:11.635 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 13 01 E8 
2018-02-12 09:48:11.638 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 13 01 E8 
2018-02-12 09:48:11.640 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 07 00 13 6C 00 00 03 84 
2018-02-12 09:48:11.646 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Response[0x01], priority=High, dest=255, callback=0, payload=01 
==> /var/log/openhab2/events.log <==
2018-02-12 09:48:11.643 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 18860 to 18861
==> /var/log/openhab2/openhab.log <==
2018-02-12 09:48:11.650 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 75: Sent Data successfully placed on stack.
2018-02-12 09:48:11.654 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2018-02-12 09:48:11.660 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 6C 00 00 03 00 00 8A 
2018-02-12 09:48:11.664 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 13 6C 00 00 03 00 00 8A 
2018-02-12 09:48:11.668 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=6C 00 00 03 
2018-02-12 09:48:11.671 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 75: SendData Request. CallBack ID = 108, Status = Transmission complete and ACK received(0)
2018-02-12 09:48:11.674 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 75: Starting initialisation from DONE
2018-02-12 09:48:11.676 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@432945 already registered
2018-02-12 09:48:11.682 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Set, dest=75, callback=108, payload=4B 03 25 01 FF 
2018-02-12 09:48:11.684 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=6C 00 00 03 
2018-02-12 09:48:11.686 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=SendData, callback id=108, expected=SendData, cancelled=false        transaction complete!
2018-02-12 09:48:11.688 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2018-02-12 09:48:11.689 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 75: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent
2018-02-12 09:48:11.691 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 75: Response processed after 94ms/4703ms.
==> /var/log/openhab2/events.log <==
2018-02-12 09:48:17.289 [vent.ItemStateChangedEvent] - zwave_serial_zstick_xxxx_serial_sof changed from 18861 to 18862
==> /var/log/openhab2/openhab.log <==
2018-02-12 09:48:17.282 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0D 00 04 00 4B 07 60 0D 01 00 25 03 00 F0 
2018-02-12 09:48:17.304 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2018-02-12 09:48:17.309 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0D 00 04 00 4B 07 60 0D 01 00 25 03 00 F0 
2018-02-12 09:48:17.315 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 0D 00 04 00 4B 07 60 0D 01 00 25 03 00 F0 
2018-02-12 09:48:17.320 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 4B 07 60 0D 01 00 25 03 00 
2018-02-12 09:48:17.324 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 75: Application Command Request (ALIVE:DONE)
2018-02-12 09:48:17.328 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 75: Starting initialisation from DONE
2018-02-12 09:48:17.332 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@432945 already registered
2018-02-12 09:48:17.336 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 75: Incoming command class MULTI_INSTANCE
2018-02-12 09:48:17.340 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 75: Received MULTI_INSTANCE command V2
2018-02-12 09:48:17.343 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 75: Requested Command Class = SWITCH_BINARY (0x25)
2018-02-12 09:48:17.347 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 75: Endpoint = 1, calling handleApplicationCommandRequest.
2018-02-12 09:48:17.352 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - Received Switch Binary Request for Node ID = 75
2018-02-12 09:48:17.355 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 75: Switch Binary report, value = 0
2018-02-12 09:48:17.359 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2018-02-12 09:48:17.363 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 75: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2018-02-12 09:48:17.367 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 75: Got a value event from Z-Wave network, endpoint = 1, command class = SWITCH_BINARY, value = 0
2018-02-12 09:48:17.370 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 75: Updating channel state zwave:device:xxxx:node75:switch_binary1 to OFF [OnOffType]
2018-02-12 09:48:17.375 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Set, dest=75, callback=108, payload=4B 03 25 01 FF 
2018-02-12 09:48:17.381 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 4B 07 60 0D 01 00 25 03 00 
2018-02-12 09:48:17.383 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=108, expected=SendData, cancelled=false      MISMATCH

So I assume that this solves all your problems?

I’ve not looked at the configuration for the device, but it’s common for ZWave devices to have multiple ways to control a device - eg through the root device (also known as endpoint 0) and through the other endpoints. I wonder if that’s the situation here as it looks like your original item is using the root endpoint.

Thanks. That does solve everything.

1 Like