Advanced Button Controller (ABC)

I'm not sure I see the use case for this?

I currently have two uses for this, although not sure if they would be useful to anyone else.

  1. I have a button in each of my spare rooms for when the grandkids stay over. At night when pressed, it uses ABC to set scenes, fans, etc. It also speaks an inspirational good night message to the grandkids, and I would love to be able to randomize this.

  2. I also have aspirations of digitally recreating something we currently do in an analog fashion. When I was growing up, we had game night. Usually we played games that required a roll of the dice to determine the moves. Only dad had a twist. You could roll the dice like normal, or, you could pick a question out of the hat. These would be spelling or math questions. If you got it wrong, you loose your roll. But if you got it right, you doubled your dice roll.

I have an Aeon MiniMote and figured I could set a button up for the dice roll, as well as random questions. And, since my grandkids are a few years apart in age, one buttons questions could be for the younger ones and another button for the older ones.

I am sure the someone smarter than me could make this work in RM, but I don't think I would have the chops for that.

I have no idea how hard it is to do something like this, so I certainly understand if you want to pass on this.

Thanks for taking the time to consider my request and have a great day.

But couldn't you still have this function fire from RM via a virtual button or switch? Change the trigger for the random message to being a virtual switch turning on. Then in ABC, turn on that Switch.

2 Likes

I may have found a quick and easy solution for this with ABC. @pabney123 will test and if good enough, I will post an update this week.

**Update 05/18/19 **
ABC Child App updated to v0.2.190518

  • Speech notifications now allow random messages to be sent (Use ; to separate options)
  • cycleFan modified to no longer use numeric setSpeed values as this may be deprecated by HE for future fan devices

PLEASE NOTE: (IF UPDATING FROM v0.2.190210 OR EARLIER)
THIS UPDATE CHANGES A SIGNIFICANT SECTION OF THE CODE. YOU WILL NEED TO OPEN EACH CHILD APP AND CLICK DONE.


2 Likes

I'm still running an older version of ABC. Did you add HTTP Get or Post in the recent revisions?

I have not...but it should be easy enough. I'm home sick today so I could have whipped this up if you reached out earlier :slight_smile:

2 Likes

:laughing: It just came up in conversation. I look forward to that feature when you're feeling better :wink:

It would probably need to be simple POST/GET urls. Nothing fancy like json requests or body attachments. Just basic form encoded url's. I'm not confident enough with my knowledge of all the options needed for more advanced URL requests.

**Update 08/14/19 **
ABC Child App updated to v0.2.190814

  • Send simple Http Requests (POST or GET - form encoded)

PLEASE NOTE: (IF UPDATING FROM v0.2.190210 OR EARLIER)
THIS UPDATE CHANGES A SIGNIFICANT SECTION OF THE CODE. YOU WILL NEED TO OPEN EACH CHILD APP AND CLICK DONE.

As Requested @SmartHomePrimer :point_up_2:

4 Likes

You’re awesome brother!

**Update 10/06/19 **
ABC Child App updated to v0.2.191006

  • Added Auto as option under Set Fan Speed

PLEASE NOTE: (IF UPDATING FROM v0.2.190210 OR EARLIER)
THIS UPDATE CHANGES A SIGNIFICANT SECTION OF THE CODE. YOU WILL NEED TO OPEN EACH CHILD APP AND CLICK DONE.


Auto fan speed option added as requested @cj_rezz

1 Like

Wow that was fast! Thanks so much! How do you update a user app safely? Also, in not seeing the option in ABC to program a press and hold command for my Pico remotes. Do I have to use the non-fast Pico driver?

Like I said..it literally took adding the word "auto" to a list. Easiest update I've ever had to make.

The app only allows you to program commands that the device driver supports. If the option isn't there, then the driver does not support it.

That is correct. The fast pico is fast because it doesn't have to wait to determine if the button is being held vs pushed. The standard pico driver does and also has the option to configure an action "on release".

When would you use a release command because wouldn't it first issue the command with a push? For instance, I wanted button 3 to cycle fan speeds and then when the button was held it would turn the fan off. So when I press and release the button, nothi g happens as it used the first command with a press but then always issues the off command when the button is released.

The best use case example I can give is for changeLevel devices...devices (usuall dimmers) that you want to incrementally change level while holding down the button and stopping when you release.

On pressed/held event - start level change up - light will continue to brighten while being held
On release event - stop level change - light will stay at whatever brightness it was when the button was released.

The above pretty much mimics what the pico remote would have done to a connected light by default within a Lutron only environment.

Oh yes that makes perfect sense! Thanks!

You don't need the released event for this at all. Simply set the Pushed option to cycle fan speed and the Held option for Turn off. As stated in the last post, the released is primarily for controlling level devices.

Is this app not available anymore? I tried the links at the top and says page doesn't exist?

The URL has spaces in it, which screws up this board's formatting. Try copying the entire text below and pasting it into your browser:

github.com/stephack/Hubitat/tree/master/apps/Advanced Button Controller (ABC)