ABC - Advanced Button Controller - Newest Edition

Hi I’m not sure if that is possible due to the way the Child App works but I’ll certainly have a look and see if there is anything that can be done.

If you run Live Logging what do you get when you hold the Button?


I’m hoping you’d be able to give me a hand or at least some insight to improve my experience.

I have a number of Sengled bulbs and Hue dimmer switches that I am using to control the lights in multiple rooms at my house. I also have Sylvania light switches as well.

I am using both of these with ABC and have had a hit or miss experience.

The Hue dimmer switch in my living room is substantially delayed in processing tasks and sometimes does not even respond to a task whatsoever. I’ll press the button and sometimes there is a half second delay, sometimes a 2-5 second delay and sometimes it doesn’t do anything. I’ve been monitoring the button presses in the SmartThings app and it properly registers when I am pressing on or off but the sequence I’ve set with ABC does not always work.

Since I am using custom DTH the switch processing is happening in the cloud but the bulbs are all local.

This app is really cool. I’m trying to use it to control my living room potlights via an Ikea Tradfri 5-button remote. I am able to set levels and toggle on/off, but color temperature control isn’t working. Any ideas? Here’s what I can see in the log:
1:25:13 AM: error java.lang.NullPointerException: Cannot invoke method minus() on null object @line 335 (colourTempDown)

1:25:13 AM: debug Decrementing Colour Temp: [Living Room Master Light]

1:25:13 AM: debug IKEA TRÅDFRI Remote bottom button: Button 1 was pushed

Hi Doug,

Are you able to add a few lines of debug code for me. Copy the following code and replace the existing colourTempDown function. Then send me the loggin info again. I can then see what is going on



def colourTempDown(device, decTemp) {
log.debug "Decrementing Colour Temp: $device"
log.debug "by Temp: $decTemp"
def currentTemp = device.currentValue('kelvin')[0]
log.debug "Current Temp: $currentTemp"
def newTemp = currentTemp - decTemp < 2700 ? 2700 : currentTemp - decTemp
log.debug "New Temp: $newTemp"
def colorTempName = colourTempName(newTemp)
sendEvent(name: "colorName", value: colorTempName)
log.debug "Colour Temp Changed to $colorTempName"


Hi Paul, thanks for the quick reply. Here’s what I see in the log:

debug Creating event: [name:button, value:pushed, data:[buttonNumber:4], descriptionText:IKEA TRÅDFRI Remote left button was pushed, isStateChange:true]

debug Parsing message from device: ‘catchall: 0104 0005 01 FF 0000 01 B7C2 01 01 117C 07 00 01010D00’

debug Parsing message from device: ‘catchall: 0104 0005 01 FF 0000 01 B7C2 01 01 117C 07 00 01010D00’

Is there another tab in live logging called ***_mapping which corresponds to your switch?

Strangely enough, I see one called “IKEA TRADFRI Remote Right Button Mapping” after I push the right button (mapped to increase Colour Temp), but nothing called “IKEA TRADFRI Remote Left Button Mapping” after I push the left button (mapped to decrease Colour Temp). Here’s what was in the tab for right button mapping:

8:41:42 AM: error java.lang.NullPointerException: Cannot execute null+1000 @line 325 (colourTempUp)

8:41:42 AM: debug Incrementing Colour Temp: [Living Room Master Light]

8:41:42 AM: debug IKEA TRÅDFRI Remote right button: Button 1 was pushed

8:41:42 AM: trace timeOk = true

8:41:42 AM: trace daysOk = true

8:41:42 AM: trace modeOk = true

anyway to get this to work with Lutron Pico remotes?

Just to introduce myself my name is Ray and I have been using Smartthings & Philips Hue for several years.
Due to Philips not supporting my version 1 bridge soon, I would need to purchase a version 2 Hue bridge.
I therefore decided to use Smartthings without a Hue bridge.
I reset all my Hue bulbs and deleted all Hue devices from Smartthings and deleted the bulbs from my Hue account.
I also removed the link in Smartthings for my Hue account and disconnected the Hue bridge
Having added all the bulbs to my devices in Smartthings and reconfiguerd any routines that used the bulbs all seems to work well.
The only thing that is giving me trouble is a Hue Remote Dimmer Switch. I installed a device handler
(digitalgecko : Hue Dimmer Switch (ZHA)) and also Smart App (stephack : Advanced Button Controller v0.1.170620)
The switch was added to my devices and I can see that the buttons are reported ok.
I then added ABC app to the device and set up the buttons to control a bulb
Pressing the dimmer switch buttons does nothing other than show the button had been pressed.
I guess the ABC app does not support the Hue Dimmer Switch. Is there a modified version available that I can use or is there another way.
Usually I can find answers to my problems online but In this case I am getting confused and would appreciate it if someone could helps

Hi, the following notes were in the main app when I took over. So it looks like it should work however I do not have any devices to confirm.

Lutron Picos are not natively supported by SmartThings. A Lutron SmartBridge Pro, a device running njschwartz’s python script (or node.js) and the Lutron Caseta Service Manager SmartApp are also required for this functionality!\nSearch the forums for details.

Hi, I’m using the Hue Dimmer with ABC as my standard device without a Philips Hub.

The standard device handlers may send the button signals as ‘On’, Off’ etc. whereas ABC requires button 1,2,3,4 at the moment.

My GitHub repositary has a device handler with the an option to switch to 1,2,3,4 button number.

Hi Paul thanks for your reply
I started again by removing the device and handler and deleted the ABC smart app.
I installed your device handler and added the Hue dimmer to my devices and can see the option to change the buttons to 1,2,3,4
I then added your ABC manager and adding it to my apps
When i go into ABC and select “New button Mapping” I get an error message “Sorry there was an unexpected error”
Have I missed something

Hi could you have a look at live logging for both the main app and the mapping for that And send me any errors that are showing.



!Hi Paul
I can’t find any error messages in live logging for ABC.
When selecting new button device mapping nothing is reported in live logging.
The only odd thing is in the device handler list against the Hue handler in status it says edited.

this is screenshot of error message

I’ve got it working to a degree.
Not sure how I achieved it but I installed the ABC child creator app and run that I was then able to map the buttons on the Hue switch.
When selecting the smart app in the hue switch device I have both the ABC Manager switch mapping and also ABC child new Button device mapping. Both work
In the smart app section status of of ABC Child creator shows edited like in the device handler section what should I do
Your comments would be appreciated
Many Thanks

Hi Paul,
I’ve been struggling with this for a couple of days and just seen your post about changing the option to return button numbers instead of names.
How do I do this? I’m new to smartthings and the IDE so may have missed something.

Update: I’ve edited the DH. Changed line 175 to - def buttonValue=[“1”,“2”,“3”, “4”]
ABC now works. Is there a better way of doing this?

That was going to be my next option.

Install ABC Manager & publish

Install ABC Child app don’t publish.

The child app is the one that used for each button mapping. In the live logs you should have ABC manager when it’s running and a mapping file for each remote etc. You wish to program.

I’m actively working on the app and Sonos integration should be coming soon.

Regards Paul

Hi Anthony.

You need to install the device handler for Hue Dimmer which is in my GitHub repository. Then when you add a Hue Dimmer go to it in your app and hit options. There should be a tick box for use 1,2,3,4

Regards Paul