Advanced Button Controller (ABC)


One Controller, many many Maps:

Screen Shot 2020-06-25 at 7.18.45 AM

1 Like

I understand the confusion. I may remove that note as it's probably no longer needed. A little history...there was a time when we could code a hybrid app in Smartthings that allowed for one app that could also spawn child apps. That "feature" was deprecated so myself and others had to rewrite our apps to be officially supported. As a result I had 2 distinct versions, this one was the Parent/Child one.

Yup. Just overwrite the old code. Make sure you update both the parent and child if necessary and follow the update notes (depending on how old your version of the app is).

Appreciate the follow up note.
According to the display ( great idea I might add). The parent is up to date. Just the child needs updating.
And while I really have no absolute need to know this, I am curious. What is the difference ( or point) to a parent app and child app?

A few reasons.

  • if a user is likely to want to have multiple instances of an app (in this case, one for each button device), the parent app would act as a central management point where you could find/manage all the child apps easily.
  • for organizational reasons. All child apps would be displayed on the apps page grouped together under the parent app
  • child apps can share similar settings, config options and store data in the parent app. This would prevent code duplication and wasting space by storing the same data multiple times.
  • other reasons I can't think of at the moment.

If you are really interested (or bored :wink:) you can read smartthings documentation on smartapps below. There is a link to Parent-child smartapps if you scroll down a little.

Thanks for that. I ended up deleting the ABC and reinstalling it from scratch. Was getting an error and i only had 3 buttons set up so easy to redo.
Can i make a couple of user suggestions please?

Im using a 4 button pico to control a sylvania rgbw strip. I have button 1 set to toggle on off. Button 2 and 3 used for dimming up dn. And i was trying to use button 4 to change color. I can set it to a preset but any chance to make it so the colors could cycle? Would be very handy to be able to either step through a range of colors from the remote.

And one more comment. Though i think there is a work around. I have a 4 button fob im playing with where i want. B1 locks doors and closes the garage doors. B2. Inside lights off. B3 outside lights off. B4 panic. All lights on. I noticed that under locks it only allows you to lock ( good idea). Any chance to add garage doors to that with a “close only” feature like the lock? I think the work around, id to create a rule to close the garage doors then run the rule in addition to locking doors.

Really appreciate your work. Love the button controller. Thanks. Mac

I'm in no way trying to detract from the use of ABC, but I wrote Dimmer Button Controller for lighting-oriented use cases with this exact scenario mind (in my case, trying to emulate the behavior of a Hue Dimmer where the "on" button can cycle through up to 5 scenes with successive pushes, but it sounds like the same idea you have even if you've never used Hue, and it works with any button device--I actually had Picos in mind when I wrote it). You could still do this with ABC if you use Hubitat scenes that you set up beforehand instead of specific colors/settings you define in-app, as ABC can (alphabetically) cycle through scenes in a similar fashion.


Robert covered this in the post above. Thanks @bertabcd1234.

Garage door generally have one button that cycles through open/stop/close. Does your garage door allow for separate commands for each?

1 Like

That’s sounds like a great solution. I’ll make some scenes this week end. Thank you.
Now the only challenge I have is getting the colors right with the combinations of hue and saturation. But can play with that.

Hmm. Interesting.
I know that my garage door only has a single button for open close. ( toggle) but my go control door opener with the tilt sensor is smart enough to know when It’s actually open or closed.
I have a rule set up for closing at a certain time every night and when it’s closed, the rule doesn’t toggle and cause it to open so it must be looking at the status from the tilt sensor.
Not sure how that helps the question however.

I have the same controller. Although it can report open and closed, the commands do exactly the same thing...push the button. Although it might display the "open" or "close" command, the code in the background only does one thing...push the button....which in turn just toggles the relay. Let's say your tilt sensor fails. Then the command displayed might be stuck on open(). The controller itself would simply toggle the relay which will open,close or stop depending on the actual state of the garage door. Make sense?

Appreciate the reply.
I haven’t used the door control on the advanced button controller but use a rule for closing the garage doors every night. I have to think there is some logic it looks at before sending the command.
If all it did was send a toggle command ( or rather push the button) then when my garage doors are closed when the command was sent they would open. And I can confirm that doesn’t happen. The only way I can think that doesn’t happen is it must check the state 1st. If open. Then send the command when the rule is sent. If closed don’t send the command.
There were a few times my doors did open and when I dog into it turns out the tilt sensor had a dead battery so HE couldn’t get a proper door starts and then it did operate as you suggest ( as in just pushing the button )

I would assume that the "door being open" would be part of the if-then logic. Which is why triggering the command (again this is always the same exact command) woukd now close the door. If you want to prove the theory do the following.

Open the driver page for you garage door. Now use the "Open" button to open the door. Hit the same Open button again and it stop the garage door in its tracks. Hit it again and it will close the garage door. If not, then there may have been changes to the driver I'm not aware of.

Just finished trying your sequence.

Commands available

States displayed
Contact: Open or Closed
Door: Open / Closed / Opening / Closing

From a door closed state...i hit the open ( in device list).
Once the open was pressed...the open option was greyed out and i was not able to hit it again till the door fully opened

From a door open state....i hit the close option.
Same as above...the close option was greyed out until the door closed.

But i noticed that while the door is either opening or closing...the other button is available ( meaning you can hit the close button while the door is opening or hit the open button while the door is closing)
It didn't stop the door from changing state once started ( once i pressed continued to open . From a fully open state - once i hit close it continued to close) regardless of how many times i toggled each option....but it did pooch the Contact and Door status. The display stuck on "closing" with an open status after the door had finished actually closing.

A manual open / close form the real garage door opener sorted the issue on the status and contact position. I repeated the steps above...was able to get the status to pooch again and this time i tried a refresh...that seemed to sort the status as well.

I tried to get it to pooch the status with the door closed but after 5 or 6 wouldn't glitch on close....just on open. I was hoping that if i could get the states mixed up - it might give a different result when running the rule to close the door......but it only glitched the status with the door closed the 1 time.

I'll poke some more with it.. need to give it a break so i don't burn out the motor. I'd like to know what it actually does when the status is wrong...but for what i'm looking to do ( use a button to make sure the garage doors are closed) i'll simply run the rule...anbd as your button controller permits a combination of locks and seems like a perfectly suitable solution.


Bertabcd1234......Dimmer Button Control is pretty was exactly what i was looking to do for lights. And it doesnt detract from ABC...its a great supplemental app. Im using ABC for my bedside control good night shut everything down app...and now i certainly plan on using DBC for my outside lights. I should have bought more of those picos when i found them for $15 a piece.
Only thing i need to do now is see if i can make some sense of the combinations of Hue and Saturation to get the color combinations i like.
i augured that 15 step increments would get me close to rainbow colors but seems to be a big jump between green and's just some trial and error.

Great app.

I have an ST Button and want to control (Toggle on/off) my front lights (Hue Bulbs). I also want to make sure that the proper color temp level is set also 6500. It doesn't seem to work. Lights turn on then off.

Suggestions? Thanks

My guess is that your ST button is sending duplicate push events. This has been an issue with them in the past...especially if they are on older firmware. You can confirm by enabling debug logging on the driver and looking at your logs. If you see duplicate events, then you have the issue and you can try to update your button's firmware. The only way I know to do this, is by connecting it to a ST hub...hopefully you have one at your disposal?

Actually I still have my ST Mesh set which has ST built in. I will try that and see. Thank you.

Updated firmware. Same issue.

Are you seeing the duplicate events in the logs?
If yes, check out this post. Towards the end of the thread,, I have a link to a custom driver I edited to handle the extra events. It's pretty old but might help.

Let me ask you . Using the button with your app. If I want to toggle on/off and have the Hue bulbs to be 100% at 6500, how can I do that?

I think the way I was setting it up in your app was wrong and there was a conflict.