Skip to content

Instantly share code, notes, and snippets.

@fholzer
Created September 19, 2023 21:51
Show Gist options
  • Save fholzer/ea3220a4aa6936b0876758dc075ffaa3 to your computer and use it in GitHub Desktop.
Save fholzer/ea3220a4aa6936b0876758dc075ffaa3 to your computer and use it in GitHub Desktop.

Emitted Events

Dim Behavior

Some devices send dim events others don't. Some of those that send dim events additionally send press events, others don't.

Device Dim Events Additional Press Events on Dimm
RWL020 ? ?
RWL021 up/down buttons No
RWL022 up/down buttons Yes
ROM001 Single hold (0), Quick press + hold (1) Yes
RDM001 N/A N/A

Button Press Behavior

Some devices send dim events others don't. Some of those that send dim events additionally send press events, others don't.

Device Sends Hold Events Sends Release Event
RWL020 ? ?
RWL021 No No
RWL022 Yes, on all 4 buttons Yes
ROM001 Yes Yes
RDM001 Yes, in rocker-type switch modes (1, 3) Yes

param2

On RWL021, RWL022, ROM001 param is always 3145984. On RDM002 param is also 3145984 for button presses, but 3145728 when rotating the dial.

  • 3145984(10) = 0011 0000 0000 0001 0000 0000 (2)
  • 3145728(10) = 0011 0000 0000 0000 0000 0000 (2)

Current Implementation

PhilipsRemoteCluster Implementations & Device Automation Triggers

Device Implementation Device Automation Triggers
RWL020 generic HUE_REMOTE_DEVICE_TRIGGERS
RWL021 generic HUE_REMOTE_DEVICE_TRIGGERS
RWL022 generic HUE_REMOTE_DEVICE_TRIGGERS
ROM001 generic custom
RDM001 custom custom

Details

Device PhilipsRemoteCluster Implementations Multi-Press Long-Press Buttons Press Types Device Triggers Comment
RWL020 generic Yes Yes 1: "on", 2: "up", 3: "down", 4: "off" 0: "press", 1: "hold", 2: "short_release", 3: "long_release"
HUE_REMOTE_DEVICE_TRIGGERS
{
(SHORT_PRESS, TURN_ON): {COMMAND: "on_press"},
(SHORT_PRESS, TURN_OFF): {COMMAND: "off_press"},
(SHORT_PRESS, DIM_UP): {COMMAND: "up_press"},
(SHORT_PRESS, DIM_DOWN): {COMMAND: "down_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "on_hold"},
(LONG_PRESS, TURN_OFF): {COMMAND: "off_hold"},
(LONG_PRESS, DIM_UP): {COMMAND: "up_hold"},
(LONG_PRESS, DIM_DOWN): {COMMAND: "down_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "on_double_press"},
(DOUBLE_PRESS, TURN_OFF): {COMMAND: "off_double_press"},
(DOUBLE_PRESS, DIM_UP): {COMMAND: "up_double_press"},
(DOUBLE_PRESS, DIM_DOWN): {COMMAND: "down_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "on_triple_press"},
(TRIPLE_PRESS, TURN_OFF): {COMMAND: "off_triple_press"},
(TRIPLE_PRESS, DIM_UP): {COMMAND: "up_triple_press"},
(TRIPLE_PRESS, DIM_DOWN): {COMMAND: "down_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "on_quadruple_press"},
(QUADRUPLE_PRESS, TURN_OFF): {COMMAND: "off_quadruple_press"},
(QUADRUPLE_PRESS, DIM_UP): {COMMAND: "up_quadruple_press"},
(QUADRUPLE_PRESS, DIM_DOWN): {COMMAND: "down_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "on_quintuple_press"},
(QUINTUPLE_PRESS, TURN_OFF): {COMMAND: "off_quintuple_press"},
(QUINTUPLE_PRESS, DIM_UP): {COMMAND: "up_quintuple_press"},
(QUINTUPLE_PRESS, DIM_DOWN): {COMMAND: "down_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "on_short_release"},
(SHORT_RELEASE, TURN_OFF): {COMMAND: "off_short_release"},
(SHORT_RELEASE, DIM_UP): {COMMAND: "up_short_release"},
(SHORT_RELEASE, DIM_DOWN): {COMMAND: "down_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "on_long_release"},
(LONG_RELEASE, TURN_OFF): {COMMAND: "off_long_release"},
(LONG_RELEASE, DIM_UP): {COMMAND: "up_long_release"},
(LONG_RELEASE, DIM_DOWN): {COMMAND: "down_long_release"},
}
long presses not supported?
RWL021 generic Yes Yes 1: "on", 2: "up", 3: "down", 4: "off" 0: "press", 1: "hold", 2: "short_release", 3: "long_release"
HUE_REMOTE_DEVICE_TRIGGERS
{
(SHORT_PRESS, TURN_ON): {COMMAND: "on_press"},
(SHORT_PRESS, TURN_OFF): {COMMAND: "off_press"},
(SHORT_PRESS, DIM_UP): {COMMAND: "up_press"},
(SHORT_PRESS, DIM_DOWN): {COMMAND: "down_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "on_hold"},
(LONG_PRESS, TURN_OFF): {COMMAND: "off_hold"},
(LONG_PRESS, DIM_UP): {COMMAND: "up_hold"},
(LONG_PRESS, DIM_DOWN): {COMMAND: "down_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "on_double_press"},
(DOUBLE_PRESS, TURN_OFF): {COMMAND: "off_double_press"},
(DOUBLE_PRESS, DIM_UP): {COMMAND: "up_double_press"},
(DOUBLE_PRESS, DIM_DOWN): {COMMAND: "down_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "on_triple_press"},
(TRIPLE_PRESS, TURN_OFF): {COMMAND: "off_triple_press"},
(TRIPLE_PRESS, DIM_UP): {COMMAND: "up_triple_press"},
(TRIPLE_PRESS, DIM_DOWN): {COMMAND: "down_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "on_quadruple_press"},
(QUADRUPLE_PRESS, TURN_OFF): {COMMAND: "off_quadruple_press"},
(QUADRUPLE_PRESS, DIM_UP): {COMMAND: "up_quadruple_press"},
(QUADRUPLE_PRESS, DIM_DOWN): {COMMAND: "down_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "on_quintuple_press"},
(QUINTUPLE_PRESS, TURN_OFF): {COMMAND: "off_quintuple_press"},
(QUINTUPLE_PRESS, DIM_UP): {COMMAND: "up_quintuple_press"},
(QUINTUPLE_PRESS, DIM_DOWN): {COMMAND: "down_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "on_short_release"},
(SHORT_RELEASE, TURN_OFF): {COMMAND: "off_short_release"},
(SHORT_RELEASE, DIM_UP): {COMMAND: "up_short_release"},
(SHORT_RELEASE, DIM_DOWN): {COMMAND: "down_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "on_long_release"},
(LONG_RELEASE, TURN_OFF): {COMMAND: "off_long_release"},
(LONG_RELEASE, DIM_UP): {COMMAND: "up_long_release"},
(LONG_RELEASE, DIM_DOWN): {COMMAND: "down_long_release"},
}
long presses not supported?
RWL022 generic Yes Yes 1: "on", 2: "up", 3: "down", 4: "off" 0: "press", 1: "hold", 2: "short_release", 3: "long_release"
HUE_REMOTE_DEVICE_TRIGGERS
{
(SHORT_PRESS, TURN_ON): {COMMAND: "on_press"},
(SHORT_PRESS, TURN_OFF): {COMMAND: "off_press"},
(SHORT_PRESS, DIM_UP): {COMMAND: "up_press"},
(SHORT_PRESS, DIM_DOWN): {COMMAND: "down_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "on_hold"},
(LONG_PRESS, TURN_OFF): {COMMAND: "off_hold"},
(LONG_PRESS, DIM_UP): {COMMAND: "up_hold"},
(LONG_PRESS, DIM_DOWN): {COMMAND: "down_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "on_double_press"},
(DOUBLE_PRESS, TURN_OFF): {COMMAND: "off_double_press"},
(DOUBLE_PRESS, DIM_UP): {COMMAND: "up_double_press"},
(DOUBLE_PRESS, DIM_DOWN): {COMMAND: "down_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "on_triple_press"},
(TRIPLE_PRESS, TURN_OFF): {COMMAND: "off_triple_press"},
(TRIPLE_PRESS, DIM_UP): {COMMAND: "up_triple_press"},
(TRIPLE_PRESS, DIM_DOWN): {COMMAND: "down_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "on_quadruple_press"},
(QUADRUPLE_PRESS, TURN_OFF): {COMMAND: "off_quadruple_press"},
(QUADRUPLE_PRESS, DIM_UP): {COMMAND: "up_quadruple_press"},
(QUADRUPLE_PRESS, DIM_DOWN): {COMMAND: "down_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "on_quintuple_press"},
(QUINTUPLE_PRESS, TURN_OFF): {COMMAND: "off_quintuple_press"},
(QUINTUPLE_PRESS, DIM_UP): {COMMAND: "up_quintuple_press"},
(QUINTUPLE_PRESS, DIM_DOWN): {COMMAND: "down_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "on_short_release"},
(SHORT_RELEASE, TURN_OFF): {COMMAND: "off_short_release"},
(SHORT_RELEASE, DIM_UP): {COMMAND: "up_short_release"},
(SHORT_RELEASE, DIM_DOWN): {COMMAND: "down_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "on_long_release"},
(LONG_RELEASE, TURN_OFF): {COMMAND: "off_long_release"},
(LONG_RELEASE, DIM_UP): {COMMAND: "up_long_release"},
(LONG_RELEASE, DIM_DOWN): {COMMAND: "down_long_release"},
}
ROM001 generic Yes Yes 1: "on" 0: "press", 1: "hold", 2: "short_release", 3: "long_release"
custom
{
(SHORT_PRESS, TURN_ON): {COMMAND: "on_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "on_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "on_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "on_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "on_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "on_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "on_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "on_long_release"},
}
RDM001 custom No Yes 1: "left", 2: "right" 0: "press", 1: "hold", 2: "press_release", 3: "hold_release"
custom
{
(SHORT_PRESS, TURN_ON): {COMMAND: "left_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "left_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "left_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "left_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "left_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "left_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "left_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "left_long_release"},
(SHORT_PRESS, RIGHT): {COMMAND: "right_press"},
(LONG_PRESS, RIGHT): {COMMAND: "right_hold"},
(DOUBLE_PRESS, RIGHT): {COMMAND: "right_double_press"},
(TRIPLE_PRESS, RIGHT): {COMMAND: "right_triple_press"},
(QUADRUPLE_PRESS, RIGHT): {COMMAND: "right_quadruple_press"},
(QUINTUPLE_PRESS, RIGHT): {COMMAND: "right_quintuple_press"},
(SHORT_RELEASE, RIGHT): {COMMAND: "right_short_release"},
(LONG_RELEASE, RIGHT): {COMMAND: "right_long_release"},
}
Button/device trigger mismatch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment