How do I make a rule for double-tap on GE 46201?

  • Platform information:
    • Hardware: Intel Atom bookshelf PC
    • OS: Fedora 30
    • Java Runtime Environment: openjdk 1.8.0_242
    • openHAB version: 2.5.9 Release Build

I recently bought a GE 46201 switch (v. 5.53 firmware) and successfully added it to my system. Normal functions are working as expected, but I’d really like to create a rule that does other things when the switch is double-tapped. I tried to write rules to catch commands or state changes, but nothing seemed to work. Worse, double-taps seemed to update the state of the switch in openhab without actually making the light itself go on or off. That is, a double-tap on the on switch had no physical effect, but the openhab item associated with the switch changed state to ON.

I can see in the debug log that some piece of openhab is recognizing the double taps, logging [Single Press 2 times], but I don’t know how to catch that. Here’s what I see in the logs when I press On, Off, double-On, double-Off, with about 5 seconds between each. Anyone have any suggestions? Thanks.

2020-10-09 11:18:03.676 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 1A 00 49 84 10 14 04 10 01 5E 25 85 59 86 72 55 5A 73 5B 9F 6C 70 2C 2B 22 7A 91 
2020-10-09 11:18:03.678 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationUpdate[73], type=Request[0], dest=16, callback=132, payload=84 10 14 04 10 01 5E 25 85 59 86 72 55 5A 73 5B 9F 6C 70 2C 2B 22 7A 
2020-10-09 11:18:03.679 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationUpdate[73], type=Request[0], dest=16, callback=132, payload=84 10 14 04 10 01 5E 25 85 59 86 72 55 5A 73 5B 9F 6C 70 2C 2B 22 7A 
2020-10-09 11:18:03.679 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:03.679 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking outstanding transactions: 0
2020-10-09 11:18:03.680 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Last transaction: null
2020-10-09 11:18:03.680 [DEBUG] [ve.internal.protocol.ZWaveController] - Incoming Message: Message: class=ApplicationUpdate[73], type=Request[0], dest=16, callback=132, payload=84 10 14 04 10 01 5E 25 85 59 86 72 55 5A 73 5B 9F 6C 70 2C 2B 22 7A 
2020-10-09 11:18:03.680 [DEBUG] [essage.ApplicationUpdateMessageClass] - NODE 16: Application update request. Node information received. Transaction null
2020-10-09 11:18:03.680 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:03.681 [DEBUG] [essage.ApplicationUpdateMessageClass] - NODE 16: Application update - no transaction.
2020-10-09 11:18:03.681 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:03.682 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-10-09 11:18:05.655 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 10 03 25 03 FF 38 
2020-10-09 11:18:05.656 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 03 25 03 FF 
2020-10-09 11:18:05.658 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 03 25 03 FF 
2020-10-09 11:18:05.658 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:05.659 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Application Command Request (ALIVE:DONE)
2020-10-09 11:18:05.659 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:05.659 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: Incoming command class COMMAND_CLASS_SWITCH_BINARY, endpoint 0
2020-10-09 11:18:05.659 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: SECURITY not supported
2020-10-09 11:18:05.659 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_SWITCH_BINARY V1 SWITCH_BINARY_REPORT
2020-10-09 11:18:05.660 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 16: Switch Binary report, value = 255
2020-10-09 11:18:05.660 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2020-10-09 11:18:05.660 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_SWITCH_BINARY, value=255
2020-10-09 11:18:05.660 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Updating channel state zwave:device:4a5c3110:node16:switch_binary to ON [OnOffType]
2020-10-09 11:18:05.661 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Commands processed 1.
2020-10-09 11:18:05.661 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@8217da3.
2020-10-09 11:18:05.661 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:05.661 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:05.662 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:05.662 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-10-09 11:18:05.704 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 10 05 5B 03 7B 80 01 47 
2020-10-09 11:18:05.705 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7B 80 01 
2020-10-09 11:18:05.706 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7B 80 01 
2020-10-09 11:18:05.706 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:05.706 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Application Command Request (ALIVE:DONE)
2020-10-09 11:18:05.706 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:05.707 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0
2020-10-09 11:18:05.707 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: SECURITY not supported
2020-10-09 11:18:05.707 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:05.707 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 1 at key 0 [Single Press]
2020-10-09 11:18:05.707 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2020-10-09 11:18:05.708 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=1.0
2020-10-09 11:18:05.708 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Commands processed 1.
2020-10-09 11:18:05.708 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@533702bf.
2020-10-09 11:18:05.708 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:05.709 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:05.709 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:05.709 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-10-09 11:18:10.154 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 10 03 25 03 00 C7 
2020-10-09 11:18:10.156 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 03 25 03 00 
2020-10-09 11:18:10.158 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 03 25 03 00 
2020-10-09 11:18:10.159 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:10.160 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Application Command Request (ALIVE:DONE)
2020-10-09 11:18:10.161 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:10.161 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: Incoming command class COMMAND_CLASS_SWITCH_BINARY, endpoint 0
2020-10-09 11:18:10.162 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: SECURITY not supported
2020-10-09 11:18:10.163 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_SWITCH_BINARY V1 SWITCH_BINARY_REPORT
2020-10-09 11:18:10.163 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 16: Switch Binary report, value = 0
2020-10-09 11:18:10.163 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2020-10-09 11:18:10.165 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_SWITCH_BINARY, value=0
2020-10-09 11:18:10.165 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Updating channel state zwave:device:4a5c3110:node16:switch_binary to OFF [OnOffType]
2020-10-09 11:18:10.166 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Commands processed 1.
2020-10-09 11:18:10.174 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@3fcca78f.
2020-10-09 11:18:10.175 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:10.176 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:10.176 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:10.176 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-10-09 11:18:10.202 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 10 05 5B 03 7C 80 02 43 
2020-10-09 11:18:10.203 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7C 80 02 
2020-10-09 11:18:10.204 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7C 80 02 
2020-10-09 11:18:10.205 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:10.206 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Application Command Request (ALIVE:DONE)
2020-10-09 11:18:10.207 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:10.208 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0
2020-10-09 11:18:10.209 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: SECURITY not supported
2020-10-09 11:18:10.210 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:10.210 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 2 at key 0 [Single Press]
2020-10-09 11:18:10.212 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2020-10-09 11:18:10.213 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=2.0
2020-10-09 11:18:10.217 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Commands processed 1.
2020-10-09 11:18:10.218 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@76aacd4d.
2020-10-09 11:18:10.218 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:10.219 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:10.219 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:10.219 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-10-09 11:18:12.597 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 10 05 5B 03 7D 83 01 42 
2020-10-09 11:18:12.598 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7D 83 01 
2020-10-09 11:18:12.599 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7D 83 01 
2020-10-09 11:18:12.599 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:12.600 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Application Command Request (ALIVE:DONE)
2020-10-09 11:18:12.600 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:12.600 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0
2020-10-09 11:18:12.600 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: SECURITY not supported
2020-10-09 11:18:12.601 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:12.601 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 1 at key 3 [Single Press 2 times]
2020-10-09 11:18:12.601 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2020-10-09 11:18:12.602 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=1.3
2020-10-09 11:18:12.602 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Commands processed 1.
2020-10-09 11:18:12.603 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@75e56a5e.
2020-10-09 11:18:12.603 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:12.603 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:12.603 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:12.603 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-10-09 11:18:18.158 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0B 00 04 00 10 05 5B 03 7E 83 02 42 
2020-10-09 11:18:18.159 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7E 83 02 
2020-10-09 11:18:18.159 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=16, callback=0, payload=00 10 05 5B 03 7E 83 02 
2020-10-09 11:18:18.160 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-10-09 11:18:18.160 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Application Command Request (ALIVE:DONE)
2020-10-09 11:18:18.160 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: resetResendCount initComplete=true isDead=false
2020-10-09 11:18:18.161 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: Incoming command class COMMAND_CLASS_CENTRAL_SCENE, endpoint 0
2020-10-09 11:18:18.161 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: SECURITY not supported
2020-10-09 11:18:18.161 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:18.161 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 2 at key 3 [Single Press 2 times]
2020-10-09 11:18:18.162 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2020-10-09 11:18:18.162 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=2.3
2020-10-09 11:18:18.162 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Commands processed 1.
2020-10-09 11:18:18.162 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 16: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@1eacaca7.
2020-10-09 11:18:18.163 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:18.163 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-10-09 11:18:18.164 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-10-09 11:18:18.164 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

I can’t speak for the GE46201 specifically since I don’t have those, but normally, for proper multi-tap support, you would use the built-in scenes from a zwave switch. You would create a scene item from the zwave binding channel and build your rules based on state changes of those scenes.

In your debug log, these are the pertinent lines:



2020-10-09 11:18:05.707 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:05.707 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 1 at key 0 [Single Press]

2020-10-09 11:18:10.210 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:10.210 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 2 at key 0 [Single Press]

2020-10-09 11:18:12.601 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:12.601 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 1 at key 3 [Single Press 2 times]

2020-10-09 11:18:18.161 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 16: Received COMMAND_CLASS_CENTRAL_SCENE V3 CENTRAL_SCENE_NOTIFICATION
2020-10-09 11:18:18.161 [DEBUG] [dclass.ZWaveCentralSceneCommandClass] - NODE 16: Received scene 2 at key 3 [Single Press 2 times]

What’s surprising me is the scenes seems to be labeled the same for both single and double tap. Normally I would expect different scene numbers for different actions (i.e. scene 2 = single press, scene 4 = double tap). Is it simply a matter of hitting the switch faster to register a double-tap?

Looking at the database, this particular switch uses different Association Groups for single tap & double tap.

A better expert can confirm, but I think that means the controlled devices need to be associated with a group on the switch.

The database entry is here and was added in version 2.5.5.

@roy_liao, yes, I get the [Single Press] when I just tap the switch once, and [Single Press 2 times] if I tap it twice quickly. And yes, it seems odd that both single and double tap ON give me scene 1 and single and double tap OFF give me scene 2. I think that’s probably why the double-tap is fooling openhab into thinking the switch is on. I tried binding to the scene, but I don’t actually seem to get any thing triggered on it when I play with the switch.

@Bruce_Osborne I was able to associate the double-tap gesture directly with another device on my network, which was nice, but that’s not what I want. I want more control than that, inside my rules files. I tried associating the double-tap gesture with the controller (it wasn’t by default), and that produced some extra messages in the log, but I still couldn’t make anything trigger in the rules. I also looked at what I guess is the “old” database entry, in the cd-jackson database, and it had some interesting extra information that’s not in the opensmarthouse link. In the “Association Groups” section, the Lifeline group has the entry “Controller: Yes”. The Single and Double Press entries say “Controller: No”. I wonder if that means that “association” with the controller isn’t officially supported?

Anyway, thanks both of you for the quick replies.

No Group 1 on all Z-Wave Plus devices is the Lifeline group used by the controller to control the device. In the older Z-Wave the Lifeline varied depending on the device.

Since there are no channels for the scenes I see no way of controlling them with rules. Perhaps @chris has some ideas.

As best as I can see the associations on the two sites re the same - neither have an association configured except for the lifeline.

There is already a channel configured for scenes. Maybe the device needs configuring to use the correct CC?

It sure looks to me like the device is sending reasonable info back to openhab. Single presses and double presses each generate a line in the log like this:

2020-10-10 10:07:14.245 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 16: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=2.3

with different values for the scene depending on what I do: 1.0 for single On, 1.3 for double On, 2.0 for single Off and 2.3 for double Off.

Interestingly, I also have a Nanomote Quad, and when openhab gets a button press from it, I see these two lines in the log:

2020-10-10 10:02:42.825 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 15: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=4.0
2020-10-10 10:02:42.825 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 15: Updating channel state zwave:device:4a5c3110:node15:scene_number to 4.0 [DecimalType]

The new switch doesn’t generate that second message about updating channel state.

I’ve tried removing and re-adding the link to the scene channel, but that didn’t help. Restarting openhab didn’t help either. Since good data is coming to openhab, I feel this should be fixable (and it’ll probably turn out to be something really simple, too). What are the next steps in debugging this? In case it helps, here’s the node.xml:
node16.xml (10.0 KB)

That is because those channels are not defined in the GE device. OH does not control device firmware.

Normally we support the central scene command class, but this device has been configured with the scene activation command class. As I mentioned earlier, there is normally a config command to change this.

I’m loath to change the database as we’ll likely break other peoples configuration - unless we’re really sure that the database is wrong.

1 Like

Unfortunately I’m still a bit new to the zwave and openhab world. What does it mean for the device definition to use one class vs another when I’m trying to write a rule? So far I’ve just been defining things in the ui, and haven’t (had to) resort to hand-crafting definitions in .item and .thing files. Is that where I need to go? How do I find out how to trigger a rule on a scene activation event?

Or, you’ve said that the device itself is configured to use that other class, and that there’s probably some command I can issue to it to use a different class. How do I do that? The only thing I see that’s configurable in habmin is the led.

Thanks again for your help.

Chris is the developer. When he explains we all learn.

For the rule, it means nothing, but you don’t have an issue with the rule, you have an issue in that the data from the device is not being sent to the channel.

No - it’s not related to this - according to the database, the device supports two different scene command classes. The binding normally uses the CENTRAL_SCENE class as it provides the best information, rather than the older SCENE_ACTIVATION class. Your device though is using the SCENE_ACTIVATION class.

Normally there is a configuration option to change this - I’ve not had the chance to check for this device.

I should have added (sorry - writing this on my phone) that there is always the possibility that this has never worked, and we should simply change this over to the CENTRAL_SCENE class. I normally prefer not to do this on the assumption that this worked for someone at some stage, and changing it might be it for any number of “someones”.

1 Like

Thanks, @chris. I feel like I’m heading down a rabbit hole here, but I grabbed the zwave binding source, changed the command class in the XML for my switch to COMMAND_CLASS_CENTRAL_SCENE, and rebuilt. I found instructions for replacing the binding, but I can’t tell if I will lose my configurations when I do that. I also have no idea if that’s actually even remotely close to being the right way to try your suggestion. How would I know if the rest of the plumbing is going to work? It does sound like the zwave people try to make things compatible, so I would assume that if a device claims to support a particular command class, then generic code in the zwave binding would be able to use that command class, but I’m still new here, so I’m not sure.

Also, I’m happy to be a guinea pig on this. If there are other experiments I should try, to confirm whether the SCENE_ACTIVATION class is really the more appropriate one to use (even though it’s not working currently), let me know.

It’s not really a case of if it is more appropriate. As I said earlier, it is the one we normally use. The point I was trying to make is that I don’t like to change things when a device has been in circulation for a long time - it risks solving the issue for you, and breaking it for others who may be using the device.

The question is really if others are using the device, and if there is a way to change the configuration to use the other command class. One assumes this must be possible since the device does support this.

I didn’t see a configuration parameter for controlling which command class to use, the only one is for controlling the LED on the switch (and that works perfectly).

If it’s going to mess up other users to actually change the database, how do I go about figuring out why the SCENE_ACTIVATION class isn’t working right for me?

Just because the parameter is not in the database, doesn’t mean it doesn’t exist. Unfortunately some manufacturers don’t publish information about the parameters. I think when I looked the other day, the documentation didn’t have any parameters at all - even the LED one.

If there’s no way.to activate the CC, then it just seems surprising that it is included in the device.

So what are my choices at this point? If it’s hard to change the database safely, how can I figure out where the problem is with SCENE_ACTIVATION for me?

Also, out of curiosity, how authoritative is products.z-wavealliance.org? That shows that this switch has two parameters: 19, for something called “alternate exclusion”, and 3 for the LED, but nothing about switching command class usage. It does, however, say that Central Scene V3 is supported.

I have not read through all of the details, but is it possible that this device is similar to the Leviton devices?

Well, we could just change the database, and see if anyone complains - maybe no-one is using the older command class, and if the device is only sending the CENTRAL_SCENE, then maybe this is fine. It’s not super nice, but as there’s no way to know if anyone uses this channel, I simply don’t know if it will cause problems.

It’s generally pretty poor - especially for older devices. For very new devices, it’s probably ok as ZWA now require manufacturers to provide the database information, but this is a relatively new requirement.