Advanced Button Controller (ABC)

**Update 12/19/18 **
ABC Child App updated to v0.2.181215

  • added support for the new Rules Machine API (Run,Stop,Pause, Resume, Evaluate, Set Boolean True/False)
  • Gui refinements - changed color scheme to match Hubitat 2.0 changes.
3 Likes

**Update 01/14/19 **
Both ABC Parent and Child Apps updated to v0.2.190114

  • updated logging output to appropriate type (info vs debug)
  • added input to enable/disable debug logging in child apps (under Advanced Config)
  • added Hubitat Import URL to the top of the parent/child apps
    (Thanks for the feedback and suggestions @csteele)
  • update checking code is now done through json files (Thanks to @Cobra for his guidance)
1 Like

When setting Color for a light (Philips Hue color), I'm only seeing Hue and Saturation options, but not Level.
I'm getting this error in the log:

app:2122019-02-07 02:29:08.672 am errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 450 (buttonEvent)

app:2122019-02-07 02:29:08.667 am infoSetting Color (to H:20, S:100, L:null): [Hue C1, Hue C2 (bathroom)]

I also tried manually setting Dim Level in addition to Hue and Saturation, but I get the same error.

I'm using ABC Parent v0.2.190114, Child v0.2.190114, and HE 2.0.4.118
Any guess what I'm doing wrong?

I think I've found the problem. I will try to push out an update later today.

1 Like

**Update 02/07/19 **
ABC Child App updated to v0.2.190207

  • fixed Set Color bug (missing "level" input)

Thanks for finding and reporting this @Volpe

2 Likes

Awesome! I see the levels adjustment after updating the child app.

Just curious, but would it be possible to program it so that you can leave Levels blank and have them stay whatever they previously were, or is that a limitation with the HE? It's not that big a deal, but it would be nice if I could just change color with a button press while keeping existing brightness.

Edit: I figured out a workaround by just making an action in Rule Machine to change Hue and Saturation and then run that action in ABC with the button press.

This shouldn't be hard to change. I'll take a look later tonight or tomorrow and let you know for sure.

1 Like

Feature added in v0.2.190210

1 Like

**Update 02/10/19 **
ABC Child App updated to v0.2.190210

  • Set Color level field is now optional (can be left blank to retain current level setting)

1 Like

Works great!

Another thing that I think would improve usability would be if when running the Actions for a Rule, if it could display the description of the Rule rather than the Rule number.

For example, in Rule Machine it will say something like "Run Actions: Cube lights hue 40", whereas in ABC it instead will say "- Rule TO Run: 233". The former makes it easier to keep track of what the rule does.

Also the ability to pause an app would be pretty cool.

HE does not have (or has not released) any documentation on how to pause apps. This can only be done from the App List page...as far as I know anyway

I am looking into adding this but it is proving to be trickier than expected. The RM api returns a list of maps for some reason. I think I can work around it but it seems to require unnecessary iterations through the list. Long story short, I plan to reach out to HE support for feedback before doing unnecessary coding.

1 Like

Good luck. I hope I don't come off as pushy or ungrateful by suggesting features. Anything extra you implement would just be a cherry on top of an already great app!

Lol...not at all. I always try to add features or updates if I think it could benefit the community.... and of course, if I also have the time and the ability.

**Update 02/17/19 **
ABC Child App updated to v0.2.190217

  • updated Button Description for rules to show Rule name instead of Rule number
  • Button Descriptions device list will now be surrounded by for better visibility
  • Action details are now stored in a state value to allow for better efficiency

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 seem to be running into an error when I try to get an ABC app to run a rule. When an app has a rule to be run in it I get this message:

And this is what the log shows:
app:2122019-02-17 09:53:26.533 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 339 (chooseButton)

Can't seem to open the app (to click done) without reverting to 0.2.190210.
I tried removing all the rules to run in the ABC app, then upgrading to 0.2.190217, and then I was able to open it, but as soon as I added a rule to run it gave me that error again.

Hope that info helps point you in the right direction and it's not too tricky to solve!

**Update 02/18/19 **_
ABC Child App updated to v0.2.190218

  • fixed error retrieving Rule Name

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 seem to be getting the same error, but this time on line 340 instead of 339. Anything I might be doing wrong or something I can do to help troubleshoot?

From the Apps List page please click the cog next to the child app giving the error. Please PM me a screenshot of the application states section.

Also please confirm whether you are getting the error when creating a new child app or editing an existing one.

**Update 02/19/19 **
ABC Child App updated to v0.2.190219

  • rules api bug squashed

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.

@Volpe, I believe I have found and squashed this persistent bug. Please test and confirm.
As an FYI, the Rules API helper returns a strangely formatted list that makes extracting the name of each rule unnecessarily painful.
We should be good to go now.

4 Likes