Advanced Button Controller (ABC)



Sorry I got distracted this last week and wasn't able to send requested screenshot or give feedback. Looks like you fixed it as it's working perfectly on my end now :slight_smile:

Tiny bug I noticed which doesn't affect functionality is if you set bulb hue to 0, the summary of the button app will state H:(!Missing!) instead of H:0.

Not a bug, but another slight usability suggestion would be when setting a button to speak a notification, instead of formatting as "Send Msg To : [Bedroom Sonos]", it could be formatted something like "Speak Msg 'Nightlight engaged' On: [Bedroom Sonos]".

Thanks for your hard work on this app!


Out of curiosity, why would you want the Hue to 0? My understanding is that color setting requires Hue and Sat.

I did not include the message intentionally. It may not be as much of an issue on HE, but on ST, if the message was very long (some users like verbose notifications) it would format strangely. The description is primarily to make devices and actions available at a glance. Message detail can be easily viewed by opening the Configure Button page.


Sent you a pull request. I added a bool option at the end of the child app's option section to disable the child app. I was working on setting up a new controller app and the only way to test it was to delete the one I had. Thought this would be easier. Feel free to use or not....but thought I would share. Thanks for the wonderful app! has totally saved me from having to write a bunch of rules to handle button presses. Thanks!!! :+1:


Thanks for the suggestions. I will look at adding your pull request with my next update (might be a while).


No worries. Like I said, just a suggestion. :slight_smile:


Thanks for the explanation!

The way I ended up using 0 for Hue was I was trying to make a mood cube and have each side correspond to a different color. It looked like Hue was an option between 0-100, so I just made each side 0, 20, 40, 60, 80, 100 to try to get even distribution of colors. It appears 0 and 100 are equivalent hues, so now it's 17, 33...100, but just thought I'd point it out when I noticed.

Edit: just reread it and I think maybe you are thinking of saturation? Unless I'm mistaken, hue doesn't represent an "amount", but just mapped to the position on a rainbow. So hue 0 not any less of a color than hue 100. Saturation, on the other hand, represents the amount, or vibrancy, of the hue/color.


@stephack have you been busy improving this ABC over the ST version or what?! Awesome man. Got a quick question. Been setting up another Pico controller (5 button) and wanted to cycle through the 3 fan speeds on a GE Fan Switch (Dimmer style) just using button 3. I am getting this error so I am thinking I must not be understanding how to set up the action correctly in ABC. I thought that was what Cycle Speed (Legacy) did but I am getting this error.


Which driver are you using for the GE fan switch? The native one?


I believe so... I will check

UPDATE: I think it picked this device driver when it was included. Don't know what the difference is between it and the Generic z-Wave Dimmer


I don't think the driver is the issue (it might be but I doubt it). I don't have a legacy zwave fan to test I guess you are the first person in HE to try one with ABC. Welcome to the beta club :wink:

I also don't think you are using the latest version of my app but I haven't changed that section of code since I ported to HE.....I just don't have the exact line numbers to give you.

Try the adjustFan() method, a couple lines above at line 428 there should a a line that reads
def currentLevel = device.currentLevel

Change that line to
def currentLevel = device.currentLevel.toInteger()

If that fixes it, I will update the app sometime this week and include that change.


Cool I can help ya man! FYI: I haven't updated to the latest because I wasn't sure what it meant for me to have to redo the child devices. Does that mean I will have to re-create all automatons for the child devices if I update?

Here is what I changed and saved in the older version:

Here is the new Log resulting error:

Not getting any level changes at the device. FYI: I set the level: 33 manually in the device using the Set Level command in the driver.


Ok, I found the issue by looking at my other methods. I never updated this section to match the others. Replace the entire adjust fan method() with the following:

def adjustFan(device) { "Adjusting: $device"
	def currentLevel = device.currentLevel[0]
	if(device.currentSwitch[0] == 'off') device.setLevel(15)
	else if (currentLevel < 34) device.setLevel(50)
  	else if (currentLevel < 67) device.setLevel(90)


BINGO! That fixed it. :grin:

One of the best things for my wife acceptance factor was to replace my Aeon Minimotes with the Lutron Pico system. Using Pico's and your ABC app on HE is simply a killer combo of ease of use, speed and reliability. I am so glad you and @csteele use cases convinced me to upgrade. It was a little steep initial cost but has more than paid for itself in increased wife acceptance factor.



Just wanted to let you know I have finally gotten around to installing your app as I have (2) Samsung buttons that I finally figured out how to use them. Your app is incredible and makes it VERY easy to associate the button to some sort of actions. Much appreciated!


where can I get the latest released version of this app and child? @stephack your groovy links in the original post are showing last updated on 1/14/19 but I'm seeing newer versions since then?


Only the Child App portion is newer..

Use the Import feature with that URL and get the latest. Read the release notes though, because you have to click done on each instance. :slight_smile:


***Update 04/29/19 ***
ABC Child App updated to v0.2.190429

  • fixed small UI bug handling '0' level values
  • updated adjustFan method


Thanks for finding the UI bug @csteele.
@dcoffing The updated adjustFan code I sent you previously has been added to this update.


Any chance that the Random Message function could be added to this?


I don't know what this is?


Sorry I should have been clearer. In RM there is an option of sending random messages with the choices separated by ; this is what I am interested in.