I purchased a Philips Hue / Signify RDM001 or RDM004 to mount behind my excisting switches. However i found no blueprint to easily integrate them in my Homeassistant setup. So as my first contribution i hacked this blueprint together. Feel free to suggest improvements.
Note: this blueprint assumes you have set the switch up in the dual push button mode (mode 3). More information about the 4 modes can be found here.
Blueprint
Update 11-8-2024: I added the RDM004 to this blueprint as it works too (if it is in mode 3). As of writing this the RDM004 mode can’t be set from ZHA. Add the ZHA quirk as described here in order to fix that.
Update 14-8-2024: I won’t be supporting this blueprint any more as this blueprint is better in many ways.
blueprint:
name: ZHA - Signify RDM001 and RDM004
description: Control anything using Signify RDM001 or RDM004 double rocker type switch (mode 3)
domain: automation
input:
remote:
name: Remote
description: Signify switch to use
selector:
device:
filter:
- integration: zha
manufacturer: Signify Netherlands B.V.
model: RDM001
- integration: zha
manufacturer: Signify Netherlands B.V.
model: RDM004
multiple: false
button_left_short:
name: Left button press
description: Action to run on press of left button
default: []
selector:
action:
button_left_long:
name: Left button hold
description: Action to run on long press of left button
default: []
selector:
action:
button_right_short:
name: Right button press
description: Action to run on press of right button
default: []
selector:
action:
button_right_long:
name: Right button hold
description: Action to run on long press of right button
default: []
selector:
action:
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input remote
action:
- variables:
command: "{{ trigger.event.data.command }}"
cluster_id: "{{ trigger.event.data.cluster_id }}"
endpoint_id: "{{ trigger.event.data.endpoint_id }}"
args: "{{ trigger.event.data.args }}"
- choose:
- conditions:
- "{{ command == 'left_press_release' }}"
sequence: !input button_left_short
- conditions:
- "{{ command == 'left_hold' }}"
sequence: !input button_left_long
- choose:
- conditions:
- "{{ command == 'right_press_release' }}"
sequence: !input button_right_short
- conditions:
- "{{ command == 'right_hold' }}"
sequence: !input button_right_long