Advanced Button Controller (ABC)

Theoretically, the driver could be easily extended to provide a cycleInput function. However, I am not sure if it will really work in real life. From what I have seen, the hue box takes it sweet time with responses to request, it is not snappy. Or at least mine isn’t... i think a person would give pretty annoyed with the delay not know if the “three” button presses were accepted and the box is just slow or if a button press was missed....

Fair enough. So dedicated buttons per input then. Hmm...

I haven't used the Hue Sync driver, but from what it looks like and what you're describing, you could probably use RM for this in a way similar to others who have used it to emulate a Hue Dimmer (cycling through scenes, as it can when paired to a Hue network) by tracking presses with a local variable. Something like this: [How to] recreate Philips Hue Dimmer Switch functionality with RuleMachine (look at the button 1 pushed actions, except use the custom command instead of what they're doing with lights).

I added a shade control to the app. It is controlled by Bond controller and the driver for it has a "Stop" function. But in ABC app, under legacy shades, which feature Open/Stop/Close, the shade cannot be found, yet under the new Shade, which only has Open/Close and Set Level, I can find the shade.
Only issue is that I am missing the "stop" function :slightly_frowning_face:

Please share a link to the driver and I will check it against the Hubitat documentation. If it follows Hubitat's driver capabilities I will try to get it added soon.

Edit:
FYI..below is from Hubitat's windowShade capability documentation. If this is the capability in use, you may want to speak with the driver developer for advice on how to use the Stop command. ABC is built to follow Hubitat guidelines.

2 Likes

Hi. Certain this is a real simple question. When i initially installed ABC, i ended up with 2 files on my Apps code page. ABC Button Mapping and Advanced Button Controller. I was recently adding some button functionality for a "go to bed routine" (lights, locks, garage doors...etc) and noticed there was a child update available.
I wanted to confirm a couple of things before i updated.

Im pretty certain that the ABC button mapping is the child as the notes in the raw file has a note "ABC Child Creator for Advanced Button Controller"

But on the Advanced Button Controller App there is a note that says Advanced Button Controller (Parent/Child Version).

So i just wanted to confirm which file i update for the child.

One more question please. Do i erase the child user app and reinstall fresh or copy over the code in the App with the update?

Thanks in advance
Mac

I would just copy over the app with the update.

1 Like

Correct.

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?
Thanks.
Mac

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.

https://docs.smartthings.com/en/latest/smartapp-developers-guide/index.html

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.

3 Likes

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.
Thanks.
Mac.

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.
Regards
Mac.

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
Open
Close
refresh

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 open...it 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 attempts...it 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 rules...it seems like a perfectly suitable solution.

Thanks
Mac