GE Smart Switch not throwing double tap scene event

Tags: #<Tag:0x00007f386d4b1cf0> #<Tag:0x00007f386d4b1bb0> #<Tag:0x00007f386d4b1a20>

Openhab 2.2
Z-Wave binding 2.2

I have installed a GE/JASCO Z-Wave Plus Smart Switch 14291 FW version 5.22, which is supposed to have a double-tap scene actuation. I plan to create a rule triggered by this actuation (to turn on all other outside lights).

The switch seemed to discover correctly, and the binary switch functions are working normally, from manual to zwave commanded actions.

Problem: I cannot identify any double tap scene actuation occurring in the zwave or event logs.

The Zwave alliance product details show;

Supported Command Classes

    Association Group Information V1
    Association V2
    Basic V1
    Binary Switch V1
    Configuration V1
    CRC16 Encapsulation
    Device Reset Local V1
    Firmware Update MD V2
    Manufacturer Specific V2
    Powerlevel
    Scene Activation
    Scene Actuator Configuration
    Switch All V1
    Version V2
    Z-Wave Plus Info V2

Controlled Command Classes

    Basic V1

The attributes for this switch as discovered show up in HABmin as;

ZWave Plus Node Type ON_OFF_POWER_SWITCH
Basic Class ROUTING_SLAVE
Generic Class BINARY_SWITCH
Specific Class POWER_SWITCH_BINARY

There are two channels that show up;

Binary Switch

  • Name: zwave_device_7efa0603_node14_switch_binary,
  • Item type: Switch,
  • Category: Switch

Scene Number

  • Name: zwave_device_7efa0603_node14_scene_number,
  • Item type: Number,
  • Category:

When I attempt to double tap, however, I am unable to detect any trace of this in the zwave log or event log. A simple sequence of ON/OFF produces the expected in the zwave log;

018-02-04 08:21:05.766 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 14: Incoming command class SWITCH_BINARY
2018-02-04 08:21:05.766 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - Received Switch Binary Request for Node ID = 14
2018-02-04 08:21:05.767 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 14: Switch Binary report, value = 255
2018-02-04 08:21:05.767 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2018-02-04 08:21:05.767 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2018-02-04 08:21:05.767 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Got a value event from Z-Wave network, endpoint = 0, command class = SWITCH_BINARY, value = 255
2018-02-04 08:21:05.767 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Updating channel state zwave:device:7efa0603:node14:switch_binary to **ON** [OnOffType]

2018-02-04 08:21:08.792 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 14: Incoming command class SWITCH_BINARY
2018-02-04 08:21:08.792 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - Received Switch Binary Request for Node ID = 14
2018-02-04 08:21:08.792 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 14: Switch Binary report, value = 0
2018-02-04 08:21:08.792 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2018-02-04 08:21:08.792 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2018-02-04 08:21:08.792 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Got a value event from Z-Wave network, endpoint = 0, command class = SWITCH_BINARY, value = 0
2018-02-04 08:21:08.792 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Updating channel state zwave:device:7efa0603:node14:switch_binary to **OFF** [OnOffType]

And the event.log shows;

2018-02-04 08:21:05.316 [vent.ItemStateChangedEvent] - zwave_device_7efa0603_node14_switch_binary changed from OFF to ON
2018-02-04 08:21:08.793 [vent.ItemStateChangedEvent] - zwave_device_7efa0603_node14_switch_binary changed from ON to OFF

However, absolutely nothing shows up in either log when I try a double-tap, even when I vary the double-tap speed multiple times.

When this switch is polled, the following occurs;

2018-02-04 08:23:59.223 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Polling...
2018-02-04 08:23:59.224 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Polling zwave:device:7efa0603:node14:switch_binary
2018-02-04 08:23:59.224 [DEBUG] [converter.ZWaveBinarySwitchConverter] - NODE 14: Generating poll message for SWITCH_BINARY, endpoint 0
2018-02-04 08:23:59.225 [DEBUG] [dclass.ZWaveBinarySwitchCommandClass] - NODE 14: Creating new message for application command SWITCH_BINARY_GET
2018-02-04 08:23:59.225 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 14: Polling zwave:device:7efa0603:node14:scene_number
2018-02-04 08:23:59.225 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue={}
2018-02-04 08:23:59.225 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
2018-02-04 08:23:59.226 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 0E 02 25 02 25 76 9D 
2018-02-04 08:23:59.226 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 14: Sending REQUEST Message = 01 09 00 13 0E 02 25 02 25 76 9D 

the .xml file (attached) node14.xml (8.4 KB)
for the node shows the SCENE_ACTIVATION class;

<entry><commandClass>SCENE_ACTIVATION</commandClass><sceneActivationCommandClass><version>1</version><instances>1</instances><versionSupported>1</versionSupported></sceneActivationCommandClass></entry>

Since a double-tap up (DTU) is supposed to throw a 1.3, I plan on a rule that turns all the outside lights on;

if(frontdoor_light_scene.state.toString == "1.3")
  {
    logInfo("OutdoorLights","## All Outdoor Lights On")
    sendCommand(DeckLight_switch,"ON")
   <and all other outdoor lights....>
  }

Am I missing something simple, such as the channel category?

You need to resolve this before anything else will work. If the device is not sending anything, then the binding won’t do anything and therefore your OH configuration is not relevant.

Double check that the configuration of the device is set correctly - a few thoughts… Is it meant to respond to a double tap? Is there a way to enable/disable this?

I tried to find the configuration information, and the manual links to a page which is a mess of different devices on the manufacturers site so it’s hard to see what the configuration options are.

Are these the configuration parameters you are asking about?
https://products.z-wavealliance.org/products/1438/configs

The SmartThings community has a DTH configuration (not sure what that is) that has to be run for the double-tap to work;

Digging deeper, something changed in the firmware version I have (v5.22), with an update to the SmartThings community topic above;

From reading the ST forum, it looks like double tap is only available on some versions - I guess you need to (somehow) work out if yours is one of them.

They talk about association groups 2 and 3 - I’ve no idea what they are for as they aren’t listed in the docs, but might be related according to this comment "I have 2 of the older style Plus dimmers that do not have the double-tap feature or the extra association groups.”.

There’s also mention in the ST forum about a firmware upgrade. It might be worth having a chat with their support to find out what is, and what isn’t supported….

I was considering this switch for all of my outside light switches (front, side, back). Given the questions on this switch, and the availability of the Homeseer WS200+ (and the WS100+ on back order until April), do you foresee less issues with the latter? If so, I’ll simply go with the HS instead. I realize there are the extra lights, but if I can have the basic on/off and double/triple tap working in the near term, the extra lights can wait.

I can’t really say to be honest. If the device supports your features (eg scenes with the double click capability) then I’d say yes, there should be less issues. I’m not really too familiar with these switches though as I’m in Europe.

Maybe @5iver or some of the other US folk on the forum may be able to comment on alternatives?

As for alternatives, we’ve been happy with our Leviton Vizia RF+ devices, except they have been redesigned, so any replacements will look different than the others :frowning:.

But for alternatives with scene control, my experience is zilch… I haven’t been able to get scenes to function. I have uses for them, but I was going to do more research and look through the binding code to see how it was implemented before reporting anything. But since you asked :thinking: … my devices have the CC, but I never see the scene_number channel update. Last I looked into this, I planned on speaking with Leviton Technical Support to to if there was something I was missing, but it has been low priority for me.

Is scene_number a read-only channel, or can it be used to program them too? After reading the spec, it looked like there would need to be another channel (Dimming Duration) to program the scene into the device through SCENE_ACTIVATION_SET.

I’m just looking to trigger the scene through my devices when used manually, but I’m not even seeing the levels updating after manually controlling them. Reassociate, reinitialize, delete/rediscover Thing… nothing got it working. I’ll send in some logs, but I’ve seen this before. Probably best to look at this after the merge though, since I have never seen scenes report.

Scott wrote:

I’m just looking to trigger the scene through my devices when used manually, but I’m not even seeing the levels updating after manually controlling them. Reassociate, reinitialize, delete/rediscover Thing… nothing got it working.

Might we need to have a scene initialization package to configure scenes in scene-activating zwave devices? I have programmed in Java, so can contribute anything needed here. Scenes can be very helpful in some of my user stories (e.g., double-tap: turn all outside lights on, triple-tap: turn on outside alarm).

Patrick (@scurb), how did you set up your scene devices to report scene activations?

@shawnmix appears to have the HS-WS100+ switches working, so I’ve ordered one of those to try out.

After reviewing the Z-Wave Protocol Implementation Conformance Statement for the GE/JASCO 14291 switch, the command class list looks slightly different from their other information page;

Supported Command Classes (13):

  • Association Group Information V1
  • Association V1
  • Basic V1
  • Binary Switch V1
  • Configuration V1
  • CRC16 Encapsulation
  • Device Reset Local V1
  • Firmware Update MD V1
  • Manufacturer Specific V1
  • Powerlevel
  • Switch All V1
  • Version V1
  • Z-Wave Plus Info V1

Namely, Scene Activation and Scene Actuator Configuration are not on the above list, plus we know that some of the versions are different. I’ll have to contact them to find out exactly what they are providing in each version, what is provided in the “Manufacturer Specific” class, what has to be configured for scene activation to occur.

@will_stewart1a - if it’s of any help, I can confirm the HomeSeer switches work perfectly. It was a bit of a learning curve at first to understand all the options, but they’ve been flawless after I’ve learned the different scene codes. From what I’ve read here, not sure if you are just looking for programmatic access via OH, or both that and physical scene configs that don’t require the controller.

In either case, here is a sample of what the log output is. Within the OH interface, it should discover a Scene channel. This is what will populate that 2.1/2.0 number you see below. And of course you can see I have a rule setup to turn off ALL the other bathroom lights when the scene gets set to 2.0. Don’t mind the reset to 2.1, that’s a learned thing to ensure my scenes can ALWAYS be picked up (even if it was the last thing run).

2018-02-05 09:22:37.055 [vent.ItemStateChangedEvent] - master_bathroom_scene changed from 2.1 to 2.0
2018-02-05 09:22:37.063 [ome.event.ItemCommandEvent] - Item 'left_vanity_switch' received command OFF
2018-02-05 09:22:37.077 [ome.event.ItemCommandEvent] - Item 'right_vanity_switch' received command OFF
2018-02-05 09:22:37.100 [ome.event.ItemCommandEvent] - Item 'master_bathroom_dimmer' received command OFF
2018-02-05 09:22:37.111 [vent.ItemStateChangedEvent] - left_vanity_switch changed from ON to OFF
2018-02-05 09:22:37.128 [vent.ItemStateChangedEvent] - master_bathroom_scene changed from 2.0 to 2.1
1 Like

@shawnmix - I had this same experience with Homeseer switches in my Openhab1 setup but have been unable to reproduce since upgrading to Openhab2. Can you provide any insight into the association or scene settings that I am may be missing? ON/OFF is logged but double and triple tap is not creating any log line items within events log. Thanks in advance for any feedback.

I don’t believe I had anything specific to do to have this working. The only thing is you need to ensure you have added not only the Dimmer/Switch item for the thing, but also the Scene channel to an item. As an example, here is the JSON of my Thing in my instance. Again, don’t know of anything special, other than letting the thing be fully discovered, and then mapping both the Switch/Dimmer item as well as Scene item. I’m setting the Scene channel to store the state as a number. If you do this with a manual items file, then you’d be looking to use something like the UID of my “master_bathroom_scene” item.

{
    "statusInfo": {
      "status": "ONLINE",
      "statusDetail": "NONE"
    },
    "editable": true,
    "label": "Master Bathroom",
    "bridgeUID": "zwave:serial_zstick:15ba83eac56",
    "configuration": {
      "switchall_mode": 255,
      "config_10_2": 3,
      "config_7_1": 1,
      "config_8_1": 3,
      "config_9_1": 1,
      "powerlevel_timeout": 0,
      "powerlevel_level": 0,
      "group_1": [
        "node_1_0"
      ],
      "config_4_1": 0,
      "node_id": 26
    },
    "properties": {
      "zwave_class_basic": "BASIC_TYPE_ROUTING_SLAVE",
      "zwave_class_generic": "GENERIC_TYPE_SWITCH_MULTILEVEL",
      "zwave_frequent": "false",
      "zwave_neighbours": "2,3,4,5,6,7,8,9,10,11,14,18,19,22,23,24,25,27,31,41,42",
      "zwave_version": "5.16",
      "zwave_listening": "true",
      "zwave_plus_devicetype": "NODE_TYPE_ZWAVEPLUS_NODE",
      "zwave_deviceid": "12340",
      "zwave_nodeid": "26",
      "zwave_lastheal": "2018-02-05T07:33:49Z",
      "zwave_routing": "true",
      "zwave_plus_roletype": "ROLE_TYPE_SLAVE_ALWAYS_ON",
      "zwave_beaming": "true",
      "zwave_secure": "false",
      "zwave_class_specific": "SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL",
      "zwave_manufacturer": "12",
      "zwave_devicetype": "17479"
    },
    "UID": "zwave:device:15ba83eac56:node26",
    "thingTypeUID": "zwave:homeseer_hswd100_00_000",
    "channels": [
      {
        "linkedItems": [
          "master_bathroom_dimmer"
        ],
        "uid": "zwave:device:15ba83eac56:node26:switch_dimmer",
        "id": "switch_dimmer",
        "channelTypeUID": "zwave:switch_dimmer",
        "itemType": "Dimmer",
        "kind": "STATE",
        "label": "Dimmer",
        "defaultTags": [],
        "properties": {
          "binding:Command:OnOffType": "COMMAND_CLASS_SWITCH_MULTILEVEL,COMMAND_CLASS_BASIC",
          "binding:*:PercentType": "COMMAND_CLASS_SWITCH_MULTILEVEL,COMMAND_CLASS_BASIC"
        },
        "configuration": {
          "config_restorelastvalue": true
        }
      },
      {
        "linkedItems": [
          "master_bathroom_scene"
        ],
        "uid": "zwave:device:15ba83eac56:node26:scene_number",
        "id": "scene_number",
        "channelTypeUID": "zwave:scene_number",
        "itemType": "Number",
        "kind": "STATE",
        "label": "Scene Number",
        "defaultTags": [],
        "properties": {
          "binding:*:DecimalType": "COMMAND_CLASS_CENTRAL_SCENE"
        },
        "configuration": {}
      }
    ]
  },
1 Like

Perfect, thanks @shawnmix - that is all I was missing. Didn’t realize that the scene channel was not automatically enabled as part of new item add from PaperUI. Now seeing everything expected from logs:

2018-02-05 15:05:09.581 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 2.3 to 1.0 ON
2018-02-05 15:05:13.516 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 1.0 to 2.0 OFF
2018-02-05 15:05:17.632 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 2.0 to 1.3 DOUBLE ON
2018-02-05 15:05:20.443 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 1.3 to 2.3 DOUBLE OFF
2018-02-05 15:05:24.172 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 2.3 to 1.4 TRIPLE ON
2018-02-05 15:05:25.555 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 1.4 to 2.4 TRIPLE OFF

2018-02-05 15:05:28.664 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 2.4 to 1.2 LONG PRESS ON
2018-02-05 15:05:32.548 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 1.2 to 1.1

2018-02-05 15:05:33.872 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 1.1 to 2.2 LONG PRESS OFF
2018-02-05 15:05:37.925 [vent.ItemStateChangedEvent] - zwave_device_5c4736cd_node9_scene_number changed from 2.2 to 2.1

Hi @jmbenner,

I’m kind of new to openHAB and not sure i understand how you fixed it. I see the info from Shawnmix above, but i’m not sure where that needs to go, or what parts of it are relevant to getting double tap to work on this switch?

Help a newbie out? :slight_smile:

What you see above from Shawn is a sample back-end item configuration. Items can be created and configured manually from the backend similarly - OR - you can use the Paper UI as I did. The issue I was having was that I allowed Paper UI to do the Item linking by enabling “Simple Mode” from the System Properties. The Scene Item was not enabled by default, so I simply went back and enabled it. Once this was done, I was able to proceed with ‘Double/Triple tap’ scene configurations and rules.

Ahh i see now - plus i got confused, you’re referencing a HomeSeer config while i’m struggling with the GE switches.

I have scene_number and it’s linked to an item… but nothing ever gets sent to it. I’ll keep digging, so far this is the only thing from SmartThings that i miss.

FYI - To my knowledge, GE does not support any ‘Instant Update’ capabilities. Only a couple of the zwave wall switch manufacturers pay for the license to have the instant update, Homeseer included.

GE would require you to implement some polling which I was not interested in and why I have gone with Homeseer switches.

So… I’ve been looking at this… I’m a bit out of my depth here but it seems like it should be possible to make the GE 14294 switch work for double/single taps. The device has 3 associations, all of which send to the controller by default.

1 – Lifeline, I think this uses the COMMAND_CLASS_SWITCH_MULTILEVEL_V1 class.
2 – BASIC group tied to the load of the switch (uses BASIC command class).
3 – BASIC group tied to double-tapping up/down.

My thoughts are that if I configure association 2 to not send to the controller, then I could essentially have two different items – one is tied to the lifeline (MULTILEVEL class) and the other tied to association 3 (BASIC class which is activated by the double-tap).

I have no idea how to make this happen… like I said, it just seems feasible. I may also be way off base with how to approach this… Thoughts? Any help is appreciated…

Thanks!

I have managed to get the double tap working with the GE/Jasco 14291. It required updating the ZWave XML definition from the database. I am waiting to get write access to the database so I can make the changes there (I suspect Chris may be on vacation). The changes feel a bit hacky to me but I don’t see a downside at the moment. This may be my general limited knowledge of ZWave but time will tell.

The bottom line is that I had to make three changes to the XML.

  1. add associations 2 and 3 to the XML definition
  2. update the switch_binary channel to only be bound to the COMMAND_CLASS_SWITCH_BINARY
  3. add a new channel for switch_doubletap that is bound to the COMMAND_CLASS_BASIC

Once this was manually loaded into the jar file of the zwave add on and placed in the /usr/share/openhab/addons I had to delete the thing for the 14291 in openhab and re-add it so that the new channel would appear and configure it so that association 3 is sent to the controller. I can then use that channel anywhere I needed it. The first test was in a rule to trigger the christmas tree lights to come on or off.

The hacky bit is needing to remove the binding for COMMAND_CLASS_BASIC from the load switch (single tap). There may be a way to determine from this command class if it is a single or double tap but, without removing the command class, OpenHab makes no distinctions between single and double tapping.

2 Likes

Anyone have an update to this? Id really like the ability to use the double tapping feature of these switches but when i add the thing to Openhab (with simple mode off), i only get the option for 1 item, the dimmer.

If someone has this working and wouldnt mind walking me through it, i would appreciate it!