Pushed, Held & Released

I am embarrassed to admit that I am confused by the terms PUSHED, HELD & RELEASED when controlling a remote. PUSHED: I push a button and remove my finger. HELD: I push the button and hold it time for an extended time. The confusion for me comes with RELEASED. Whether I push or hold the button, the button will be released so how do you perform a RELEASE without also performing a PUSH or HOLD?

Thank you for assistance.

The released is only used by a select set of remotes. If it is available for your remote it can work with either the held or the pushed, depending on the remote and how it is configured. For example, the Pico remotes can be configured in one of two ways. They can either be configured using the Held parameter or without it. The released would occur after either the Held (if available) or Pushed (if held is not available). What specific device/driver are you trying to define...it is easier to explain with an example rather than in the abstract.

I have an Eria dimmer and it gives me an option for PUSHED, HELD, and RELEASED in Rule Machine. If I have an action assigned to PUSHED and an action assigned to HELD, how can the remote do something unique for RELEASED without also triggering the action associated with PUSHED or HELD? If the answer is "YOU CAN'T!!!" that would make sense to me and all is right with the world.

BINGO!!! You can't. It only works with Pushed or Held. You can't release a button until you pushed or held it. The released is used for the "ramping" actions for dimmers. You can "Begin Raising Dimmer Level" on HELD and then "Stop Changing Dimmer Level" on RELEASED.

1 Like

AHAAAAAAAAAAHHHHHH!! I get it now. Thank you for the in-depth explanation.

No problem. This is one of those concepts that everyone tries to make more confusing and then when you get it you can't fathom why you ever didn't get it. Classic "face-palm" moment. :smiley:

The easiest way to figure out what these things do is open a live logging window, then try each of the following and watch the logs.
Push each button.
Hold each button, if the controller supports hold, you should see this event in 2 seconds or less.
If the device supports release, you should seem a release after the hold.
You can also try a double tab, though this is less common.

This is exactly how I build drivers for these things, I bind to all the clusters then do the above, the remainder of the driver build just involves mapping the device commands over to button events...