SmartThings Community

[BETA] Advanced Button Controller (ABC)

(Brian Aker) #10

I believe the mapping for the Central Controller is Scene 1 should be configured for a value of 255 and Scene 2 should be a value 0.

Scene 1, Key 0 == Normal Tap On
Scene 1, Key 1 == Hold Press
Scene 1, Key 2 == Double
Scene 1, Key 3 == Triple

Scene 2, Key 0 == Normal Tap On
Scene 2, Key 1 == Hold Press
Scene 2, Key 2 == Double
Scene 2, Key 3 == Triple

So settings would be:
zwave.sceneActuatorConfV1.sceneActuatorConfSet(sceneId: 1, dimmingDuration: 0, level: 255, override: true)
zwave.sceneActuatorConfV1.sceneActuatorConfSet(sceneId: 2, dimmingDuration: 0, level: 0, override: true)

I could also be very wrong :slight_smile:



Actually, the device handler is simply using the instant status central scene notifications to trigger the button 7 and 8 response so there should not be a firmware update required for these buttons. I’m currently on V5.14 though and haven’t tested on V5.17. The buttons should respond similarly to an on/off press of the switch with the added advantage of still being triggered regardless of whether the switch is already in the on or off state.

1 Like

(Stephan H.) #12

@Darwin, I noticed a few differences to how you were handling “single tap up/down” vs all other combinations. I edited your code to make it consistent and tested with a digital on/off and it appears to be sending button presses 7 and 8 that way. I don’t have this switch so I can’t verify the physical aspect. How would you like me to send the changes…via pull request or PM?

1 Like


Thanks @stephack, I see your GitHub pull request. Looks like a good change to add those buttons for the mobile app/digital on/off presses. I’ll take a closer look when I have a few minutes and get it pulled in.

1 Like

(Stephan H.) #14

I made the same changes to the WD100 dth so @dalec could test. He advised that the 7 and 8 status updates sent correctly. I sent another pull request including both WD100 and WS100.


(Stephan H.) #15

@MLUCK it looks like @Darwin has updated the device handlers to utilize button 7 and 8. It should also work when you turn on/off in the ST app. Please update from Darwin’s repository and test. Let us know how it goes. Make sure you are using the handlers located here:


(Mark) #16

Great, thanks @stephack


(Mark) #17

Gents, thanks again for your help. I updated @Darwin’s device handler to v1.02, the latest version as of 6/25/17. When I single tap from the iOS app, the hub sees that Button 7 was pushed, but live logging shows the following error:

12:32:23 AM: debug Parse returned [name:switch, value:on, type:digital, isStateChange:true, displayed:true, linkText:Basement Scene Controller, descriptionText:Basement Scene Controller switch is on]
12:32:23 AM: error groovy.lang.MissingMethodException: No signature of method: script14986263968581059460091.messageHandle() is applicable for argument types: (java.lang.String) values: [Basement Scene On]
Possible solutions: messageHandle(java.lang.Object, java.lang.Object) @ line 345
12:32:23 AM: debug Basement Scene Controller: Button 7 was pushed

I get similar logging when I push Button 8. The downstream rules in the ABC smartapp don’t process, but I assume that’s because of the above error. In case this helps the debugging, I noticed that if I use Smart Lighting to look for a switch on/off event from the WS100, rather than a button push, the smartapp behaves as expected, and I can control my scenes. But of course that solution is not extensible for buttons 1-6. :frowning:

One other bugaboo…if I do exactly the same as above, but using a physical tab (single up or single down), the hub shows nothing until I press the refresh button in the iOS app. This behavior is surprising to me since the reason I picked this device was due to its “instant status” feature. I interpreted (misinterpreted?) that to mean that a button press would be recognized by the hub near instantaneously (or should I say ST-instantaneously? :grin:).

Appreciate your thoughts on this!


(Stephan H.) #18

Have updated to the latest ABC code?
There was an error I fixed shortly after release, regarding notification handling. The latest is ver 170620.


(Stephan H.) #19

There are ongoing issues with ST regarding status updates with many threads open on this. I have to constantaly refresh or back out of the thing view and go back in to see updates. As long as the button reponds as designed, then the issue is probably on the side of ST and not your device.


(Mark) #20

Woo Hoo. That did the trick. ABC fires correctly upon button 7 or 8 push from iOS app. Thank you. :joy:

However, this (above) is still a problem. Notably, if I physical tap (whether single, double, or triple), then refresh from the iOS app, the “last tap” indicator tile in the lower left of the “Right Now” view does not change even though the iOS app correctly indicates a state change from on to off in the case of single tap off (and vice versa). As a result, the ABC app does not fire. :confused:[quote=“stephack, post:19, topic:90188”]
There are ongoing issues with ST regarding status updates with many threads open on this. I have to constantaly refresh or back out of the thing view and go back in to see updates.

Gotcha, thanks for the heads up. Assuming that these ST issues did not exist (obviously a hypothetical question–hey, dreaming is good for the soul :innocent:), am I basically correct to understand that a device that accurately bills itself as having “instant status” means that the device will push its state change to the hub in near real time?


(Stephan H.) #21

I wish I could help with this question, but I think you would be better served in the thread dedicated to the Homeseer device. There will be lots of folks with this particular device, including @Darwin, that could assist you there. Same for below.


(Mark) #22

Understand, thanks for your help. FWIW, I just tried setting up a second WS100+ device and it worked like a charm (both the DTH and your smartapp) regardless of whether the on/off was triggered by the iOS app or a physical tap. Makes me think I have a defective device. I may go for the exchange route next.

Again, thanks for your help.


(Geekmax82) #23

I installed the code, apps opens but when I click on New Mapping - I just get a spinning circle. I have tried force closing app and does the same (iOS). OAuth is added to the app via Repository


(Geekmax82) #24

Fixed – needed to click DONE first, then app installed. Go back to app, then add New Mapping


(Jonathan) #25

I’m using this SmartApp with the Homeseer Wd100+ switch on firmware 5.17.

It works great, but I have one GE dimmer that when the scene goes on, it does not turn on that light at all, also when I press down it does not turn off this particular problem switch either. This GE switch works fine in any of my other scenes/automations. Any ideas how/where I can start trouble shooting?


(Stephan H.) #26

Post a link to the DTH u are using for this device and I will look into it when I have some free time.


(Henry Armitage) #27

I’ve got a horrible feeling that this is something I’m doing, but when you first add a Homeseer WD100+ to ABC, is it normal for it not to get the number of buttons?

ABC Version: v0.1.170620 - should be up to date as of 10 Oct 2017
WD100+ DTH version: 1.02 - should be up to date as of 10 Oct 2017 (this commit)
WD100+ Firmware version: Appears to be 5.17

EDIT: Stranger still, I have one WD100+ that does report how many buttons it has, but another that does not.



This can happen if you add the switch to the hub before installing the custom device handler for the WD100+ or if SmartThings somehow misses a configuration update when adding the switch. If you hit the configure button for your WD100+ on the mobile UI (bottom right next to the firmware version), that should re-send the configuration updates and set the number of buttons correctly.


(Henry Armitage) #29

Seems like that worked. I did it some time before your post but remember doing so and now it’s fine. I also power cycled the switch a few times at the breaker (was installing yet another one).

Thanks for this and all the hard work from you and all the community devs who are making this possible.