Button Controller capabilities matrix discussion

Starting a new topic in response, because I don't want to clutter the nice button matrix @mike.maxwell created.

Not understanding why this limitation exists for the Hue Dimmer. I have a third-party app called iConnect Hue which allows the bridge to program up to 5 button pushes and a hold for buttons 1 and 4, where buttons 2 and 3 (the middle buttons, unless I have the numbering wrong) support push and hold.

Yeah, I had the functions for 1 and 4 incorrect.
The functions present are what the device sent out, it may be possible that there are others available for 1 and 4, if so it would require some sniffing whilst paired to the hue bridge so I can figure out what commands to sent to it to enable these.
I have a lightify 4 button controller that is like this.

In the Hue app (or third-party apps), you can indeed configure 5 actions for button 1 (the "On" button), with 1-5 pushes activating different scenes or whatever you choose. However, I've never sniffed the traffic, but I assume this isn't really the device itself sending out different messages for 1-5 taps. The Hue Bridge has a sort of "reset timer" (I think 10 seconds), and if you want longer than that between taps, it will cycle back to activating the first scene with a tap (shorter than that and it will just advance to the next one). This looks like software trickery on the Hue bridge to me rather than anything with the remote itself.

I do see that iConnect Hue allows actions with a "hold" (one or two) of button 1 (though the same screenshots also suggest it's limited to 1-2 pushes as well--maybe it's just the screenshots I'm looking at). I don't really know what's going on there (did Philips just not expose this functionality even though the device supports it?), so that might actually be worth investigating if you have way to sniff that traffic. :slight_smile:

For sure it is allowed up to 5 pushes and a hold on buttons 1 and 4 [see screenshot below of button 4]. Maybe your app or bridge software is out of date? I use the hold option on button 4 all the time, so if I don't press their wobbly button properly, when I'm just trying to turn the light off, I don't have to wait the 10 seconds for the timeout and the light will just turn off when I hold button 4. This helps tremendously with WAF.

If I recall correctly, Stefan added the 10 second timeout option in case you got lost as to where you were at (how many button pushes).

I wanted more functionality for my Hue dimmer switch, so I used the CLIP debugger and programmed my switches manually. It was a huge pain and once when I renamed a Hue dimmer switch, all my rules for that switch got wiped out. Now I am using Pico remotes to do the same thing.

You have to set up a special "sensor" that you set as a flag for how many times the button has been pushed, to get the multiple actions for a specific button press. The apps automatically set that up for you.

From the Hue Developer page about the dimmer switch (https://www.developers.meethue.com/documentation/hue-dimmer-switch-programming), you should be able to get initial pressed, hold, short released and long released for each button...but I am not tech saavy enough to sniff :grinning:

BUTTON STATE CODE
Button 1 (ON) INITIAL_PRESSED 1000
HOLD 1001
SHORT RELEASED 1002
LONG RELEASED 1003
Button 2 (DIM UP) INITIAL_PRESSED 2000
HOLD 2001
SHORT RELEASED 2002
LONG RELEASED 2003
Button 3 (DIM DOWN) INITIAL_PRESSED 3000
HOLD 3001
SHORT RELEASED 3002
LONG RELEASED 3003
Button 4 (OFF) INITIAL_PRESSED 4000
HOLD 4001
SHORT RELEASED 4002
LONG RELEASED 4003

this is programming via the hue API whereas we are talking straight up Zigbee on HE
Zigbee doesn't provide for dynamic function implementations, so if this device is programmable via Zigbee it's being done via manufacturer specific clusters (as is the case with the Lightify unit I mentioned),
I'm not sure how they're extracting hold from this device on buttons 1 and 4, there was nothing generated on button release or holding it for a second or more, and without release at least you can't build a held event.