[BETA] GE/Jasco Z-Wave Plus Dimmer Switch With Double-Tap

I just updated the code in GitHub, had to fix the same bug I had with joining in the On/Off version of this switch.

The DTH handles associating the hub to group 3 (which is why you can only add 4 more the first slot is already used up for the hub). Group 1 is used for other notifications (on, off, dim) and is automatically added by SmartThings as part of the join process. So short answer you do not need to use associations unless you want the switch to talk directly to another device and avoid the lag of going through the hub/cloud.

I figured out what was wrong, I was passing the button number as a string not an integer. I have updated GitHub with the fixed code. I also discovered an issue with dimmer level not getting updated in SmartThings when changed at the switch, this is also fixed.

Something still isn’t working for me. When I double tap, everything looks fine in the log but the lights never actually go to 100%. The device then updates back to the actual 5%.

I am having weird glitches also. My switch directly controls an outlet that has a lamp plugged in and I have a plug-in lamp module with a lamp plugged in on the other side of the room. The lamp module is associated with group 2 on the switch so it turns on/off/dims with the switch. I have a CoRE piston configured that a double tap up will turn on the lamp module only and a double tap down will turn off the lamp module only. The rule works perfectly if the switch is on, I can double tap the lamp module off, on, and back off again. However if the switch is off double taps show up in the log and I can see the condition in the piston change blue but the lamp module does nothing. However pressing the double tap buttons in the DTH works. Unfortunately these lamps are all in my son’s bedroom and he went to bed so I will have to troubleshoot another day.

Could this issue be part of the problem? I’m not really a developer so this goes a bit beyond my understanding but it sounds like this might be why the switch isn’t getting the commands.

Reading through this post I think it could very well have been the issue. It does look like a fix for this was pushed out today. My dimmer switch seems to be working. I did discover and issue with how I built my CoRE piston so I am not sure if my issues were only the piston or if the events weren’t working as well. Let me know if you are still having problems and we can try changing the code for you to use sendEvent instead of createEvent.

Unfortunately I’m still having trouble with double tap. Whether I double tap on the physical switch, or press the double tap button in the app, I get the same result. The level briefly updates in the app to 100%, but then updates back to 20% (or whatever it was set to before). The lights never actually change brightness though.

My core piston is pretty simple, but maybe I have it set wrong? I’m still new to core.

Weird, the buttons in the app always worked for me. Your piston looks good to me, doesn’t get much simpler than that. Maybe it is something to do with having the trigger and action on the same device. Try changing the piston to turn a different light on and see if that works. If it does you can try putting a delay in the action (I have noticed that if I double tap the switch one way and then try double tapping the other way without waiting a few seconds it ignores me). If none of that works you can try changing the following lines (line numbers 259-266):

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicSet cmd) {
if (cmd.value == 255) {
createEvent(name: “button”, value: “pushed”, data: [buttonNumber: 1], descriptionText: “Double-tap up (button 1) on $device.displayName”, isStateChange: true, type: “physical”)
}
else if (cmd.value == 0) {
createEvent(name: “button”, value: “pushed”, data: [buttonNumber: 2], descriptionText: “Double-tap down (button 2) on $device.displayName”, isStateChange: true, type: “physical”)
}
}

to:

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicSet cmd) {
if (cmd.value == 255) {
sendEvent(name: “button”, value: “pushed”, data: [buttonNumber: 1], descriptionText: “Double-tap up (button 1) on $device.displayName”, isStateChange: true, type: “physical”)
}
else if (cmd.value == 0) {
sendEvent(name: “button”, value: “pushed”, data: [buttonNumber: 2], descriptionText: “Double-tap down (button 2) on $device.displayName”, isStateChange: true, type: “physical”)
}
}

And see if that makes a difference.

I tried making that change, but it didn’t result in a different behavior.

I did try changing my Core piston to use some different actions, with some success. Instead of using ‘Set Level’ as I was before, I tried using ‘Fade to’ and that seemed to mostly work, although it wouldn’t go all the way up to 100% (it stopped fading up at 75%). Setting the lights to flash also seemed to work (although again, the timing wasn’t the best).

So I’m not sure if there is something wrong with using the ‘Set Level’ in Core, or if that command is broken for these switches.

So I solved my issue - setting the level to 100 (either by using ‘Set Level’ or ‘Fade to’) doesn’t work - but setting the level to 99 does.

I found what was causing this problem, updated code on GitHub should allow setting to 100%.

What firmware(s) support double tap?

You can see the firmware versions in the fingerprint section of the code:

    // These include version because there are older firmwares that don't support double-tap or the extra association groups
    fingerprint mfr:"0063", prod:"4944", model:"3038", ver: "5.26", deviceJoinName: "GE Z-Wave Plus Wall Dimmer"
    fingerprint mfr:"0063", prod:"4944", model:"3039", ver: "5.19", deviceJoinName: "GE Z-Wave Plus 1000W Wall Dimmer"
    fingerprint mfr:"0063", prod:"4944", model:"3130", ver: "5.21", deviceJoinName: "GE Z-Wave Plus Toggle Dimmer"
    fingerprint mfr:"0063", prod:"4944", model:"3135", ver: "5.26", deviceJoinName: "Jasco Z-Wave Plus Wall Dimmer"
    fingerprint mfr:"0063", prod:"4944", model:"3136", ver: "5.21", deviceJoinName: "Jasco Z-Wave Plus 1000W Wall Dimmer"
    fingerprint mfr:"0063", prod:"4944", model:"3137", ver: "5.20", deviceJoinName: "Jasco Z-Wave Plus Toggle Dimmer"

So if we have the version with model “3038” with ver: “5.08” how do we get them to update the firmware? The new Zwave plus versions do allow for firmware updates correcT?

Of my 12 new Dimmers, 11 have the 5.08 firmware and 1 has the 5.26.

That is supposed to be one of the features of Z-Wave Plus and GE/Jasco list it as a feature of their plus devices but when I talked to Jasco I was told they were not going to release a firmware to update the switches without the double-tap feature but I was not given a reason. Maybe if enough people called and bugged them they would change that decision. Or maybe someone smarter than me can hack a newer model and get the firmware off of it and release it to those of us unfortunate enough to end up with an older model.

Well that sucks.

How does one determine the ID of the switch you want to add to the association? I know how to convert just need to know how to find the value.

EDIT: It is the “Device Network Id” field. It wasn’t working for me because my IDs were 75 and 76 and I didn’t realize they were already in HEX format.

I have to be missing something (and I’m new to CoRE), but I don’t see an option to create a piston for “button #1 is pushed”.
I select “simple” -> If -> Condition -> Capability ->
I’ve tried button (says “You can’t currently add this”)
I’ve tried Dimmer, Switch, etc., but nothing gives me the option to say “if a button is pushed”…

I’m also trying to configure double tap up sets to full brightness.

Am I missing something simple?
Any assistance is greatly appreciated!

**Edit: Figured it out. Tonight, I learned to edit devices to change their “Type” to a defined device type that I’ve added.
My Devices -> Select Device -> Edit -> Change “Type” dropdown to the installed “DeviceType”.

I’ll play with this more in the next few days… Thanks for all the work you’ve done with the GE switches!