ZHA - Signify RDM001 with double momentary switch

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

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

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
1 Like

How did you manage to set up these switches in mode 3? I have 4 of these switches and I’d like to get more but I want them to operate in mode 2 and they’re all in mode 0 now.

I’m running a rpi4 with HA skyconnect and the zha integration. I used the hue bridge before but here I quickly ran into problems where switches were responding very slow or not at all and the only solution I could find was to connect more hubs so I transferred everything to zha.

You can go to Device Info → Three Dots next to Configure → Manage Zigbee Device
Select PhilipsBasicCluster → under that select mode


Write the value you want (0-3)

0 - single rocker type switch
1 - single push button type switch
2 - double rocker type switch
3 - double push button type switch

And press write. Now quickly press any button to wake up the device and wait for it to accept.

1 Like

This did the trick for me, and consistently so. Everyone describing this says to press the switch first and then write it (which didn’t work for me) but writing the value and then waking the switch seems to work much better!

I won’t be supporting this blueprint any more as this blueprint is better in many ways.