Is there a way to add customized actions to a device?
Previously, I had a smartapp that let you customize triggers on light switches. I had it working for some time and then never bothered to get it back again. e.g. Double click UP on the light switch and it will open the shades.
First rule of home automation applies: “the model number matters.“
There are some switches which are specifically designed for this purpose and can capture the double tap or triple tap at the switch and then you can use that to trigger different smartthings events.
It’s very difficult to do this with a switch which was not designed for the purpose. Some of them have a “ deBounce“ built in which actually ignores extra tabs because they assume the person is just changing their mind or their handshaking or whatever.
With others, you can try to do this, but it’s really hard to be accurate on the timing, particularly because of the cloud aspects of the smartthings architecture.
So… are these switches that you already have, and if so, what is the brand and model number?
Or are you just asking if there are switches you could buy that could do this, in which case, sure, the answer to that is yes.
I have 10 or so GE switches. I had this working for about a year but it was on the previous Classic App and I may have had a specific smartapp that I was using. I can’t remember the smartapp.
I will have to pull one out to check the exact model number but they are the GE 46201 type. I know I have to actually check as the model # matters.
So I know it works, but I can’t find an app that enables this functionality. I was thinking I might be able to do something in WebCore but I would prefer if I could find this other app again. It would be much easier.
Yes I have a bunch of custom device handlers that will get advanced config parameters working and also double tap (and triple tap for newer ones) available on my github. No need for an extra smartapp. Just install and apply the handler and it will work in the new app. I see u mentioned 46201 link to post on that here
Some GE switches, not all. There are a lot of different GE branded models, and it also depends on the specific firmware level. Some support double tap, some support triple tap, some only support single tap.
What is the best way to identify the model number? Can I do it without taking out the entire switch?
I think my models are not matching the DTH. I assume when I look at the details below on one switch. It doesn’t say 46203. Is the value I am looking for actually on the “prod:4450” value?
Is that what you are referring to? If so, unfortunately I don’t have any handlers for that one, and only have the ones for the in wall switches.
If you search for the number after “prod” and number after “model” on the zwave alliance website that will usually pull up the proper switch. The Zwave alliance webpages shows Product Type ID: 0x4450
Product ID: 0x3030
Which should correlate to the information in the IDE you posted above.
I think the " cc:26,27,73,70,86,72,77" lines tells you what commands can be used. However, I can’t find a reference for this online.
I also think that my switches might be old for your DTH. They are zwave not zwave+ so I think they are older. However, i did have the double tap working for quite some time on the Classic app.
That is an older non zwave plus switch, and all my handlers are for zwave plus switches and above unfortunately. The zwave alliance website does not list the central scene or association command classes necessary for double tap to work for that older switch. If it worked before i honestly don’t know how it did.
Anything happen in the live log when you double tap? If so you can paste that here.
A long time ago, maybe 2016?, There were some community members who Attempted to implement double tap for switches which didn’t provide that feature in their own firmware. They would capture the tap and then try to do the timing until the next tap.
This had a lot of issues, particularly cloud latency throwing off the timer, but it did work for some people some times with some switches.
However, it depended on being able to distinguish between a physical tap on the switch and a network command, or otherwise a lot of things would be perceived as double taps which were not.
And that distinction relied on a value called “isphysical“ for Zwave switches.
The problem is that “isphysical“ is implemented differently by different device manufacturers, and in particular, some repeating devices cause the “isphysical“ to be changed to the equivalent “is network“ When they pass along a message they received from another device.
So that meant that sometimes the double tap capture would fail just because the message had gone through a different repeater on its way to the hub.
This situation caused a lot of frustration for many people, and ultimately, again I think back in 2017, smartthings made the decision that they would no longer support the “isphysical“ value at all in the stock DTHs. Meaning you could no longer use it in a smart app. It meant people lost the ability to write a rule for a custom based double tap for a device which did not itself provide that feature, but at least everything worked the same for everyone.
So there were some people who had a custom double tap smart app working back in, say, 2015 who then lost that feature a couple years later, I don’t know if that’s what happened to you, but your switches are old enough that it might be. You could get it back by using a custom DTH, but then the switch wouldn’t run local and that in turn introduced additional cloud latency.
Here’s a comment from a staff engineer back in the day:
There are a number of models available now which to provide a double tap feature in the switch itself, so most people who want that just get those.
Thanks for clarifying @JDRoberts . I have never had any luck with even a custom DTH differentiating physical vs digital presses while trying to update code over the past year, so I’m not sure this would even be possible today with the newer hub firmware and new SmartThings app.
For this to work on older switches I think you would either need a local processing hub like hubitat (which might not even work for sure) or ideally get the newer zwave plus switches that trigger double and triple tap in the switch itself at the firmware level, using one of the custom handlers I updated.
Thanks for the insights guys. I did some testing with the switches. I have 3 different models but they are all older. So far no events get reported when I do a fairly fast double click. So looks like I am out of luck for these switches. This is the typical output in the live logging.
3:27:30 PM: debug description: zw device: 0C, command: 2003, payload: 63
3:27:23 PM: Parsed BasicReport(value: 7) to [[‘name’:‘switch’, ‘value’:‘on’, ‘type’:‘physical’, ‘linkText’:‘Office’, ‘descriptionText’:Office switch is on, ‘isStateChange’:false, ‘displayed’:false], [‘name’:‘level’, ‘value’:7, ‘unit’:’%’, ‘type’:‘physical’, ‘linkText’:‘Office’, ‘descriptionText’:Office level is 7%, ‘isStateChange’:true, ‘displayed’:true]]
Can you try to turn it on and off by the app instead and copy the logs? I’m curious if it would say type “digital” instead of “physical” if you did it that way. If there’s any hope to trying to get something working according to the post above by @JDRoberts it depends on being able to differentiate a physical vs digital press. Also, are there two log entries when you double tap, or only one?
Also, strike what I said about hubitat. It relies on polling for these older switches which definitely will not work.
Even if I use the app it says type:physical. Plus if I do a double click on the switch it does not register anything unless it is done with a 1-2sec break.
4:41:23 PM: debug Parsed SwitchMultilevelReport(value: 61) to [[‘name’:‘switch’, ‘value’:‘on’, ‘type’:‘physical’, ‘linkText’:‘Office’, ‘descriptionText’:Office switch is on, ‘isStateChange’:true, ‘displayed’:true], [‘name’:‘level’, ‘value’:61, ‘unit’:’%’, ‘type’:‘physical’, ‘linkText’:‘Office’, ‘descriptionText’:Office level is 61%, ‘isStateChange’:false, ‘displayed’:false]]
4:41:23 PM: debug description: zw device: 0C, command: 2603, payload: 3D
4:41:16 PM: debug Parsed SwitchMultilevelReport(value: 0) to [[‘name’:‘switch’, ‘value’:‘off’, ‘type’:‘physical’, ‘linkText’:‘Office’, ‘descriptionText’:Office switch is off, ‘isStateChange’:true, ‘displayed’:true]]
4:41:16 PM: debug description: zw device: 0C, command: 2603, payload: 00