Lutron Sunnata Keypad Blueprint (RadioRA3)

Here’s my first pass at a blueprint for a Sunnata keypad (tested with 4-key, should work with 2-key).

Things to note:

  • Event triggers rather than device triggers. Sunnata keypads can have their “subtype” renamed when you label the key, so it’s best to use the raw key number from the event.
  • Seems to be only “press” events, will see if we can get “release” as well
  • To be done: set the LED to match the last pressed button - a complex topic

Hopefully useful to someone else! I tested on Hybrid and standalone keypads.

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

blueprint:
  name: Lutron Sunnata Keypad - Two or Four Button
  author: robchandhok
  homeassistant:
    min_version: 2025.1.0
  description: |
    ## Sunnata Keypad - Two or Four Button Blueprint (v0.1)

    A blueprint to make it easy to map button presses from the Lutron Caseta integration for a Sunnata Keypads such as:
    - RRST-W4B-XX (SunnataKeypad)
    - RRST-HN4B-XX (SunnataHybridKeypad)

    Sunnata keypads send customized event subtypes depending on their label in the Lutron Designer, so this blueprint works off of the raw leap_button_id.  
    
    Button "1" is the top button.
    
    ### Software Version Requirements

    Not tested on versions of Home Assistant before March 2025

    ### Thanks
    Shout out to wtadler, mattsheffiel, stephack and others for their previous variants that this is based on.

  domain: automation
  source_url: https://github.com/robchandhok/homeassistant-blueprints/blob/main/automation/lutron-sunnata-keypad.yaml
  input:
    keypad:
      name: Sunnata Keypad - Two or Four Button
      description: Select the Sunnata Keypad to program
      selector:
        device:
          filter:
            - integration: lutron_caseta
              model: RRST-W4B-XX (SunnataKeypad)
            - integration: lutron_caseta
              model: RRST-HN4B-XX (SunnataHybridKeypad)
          multiple: false
    button_1_press:
      name: Button 1 Pressed
      default: []
      selector:
        action: {}
    button_2_press:
      name: Button 2 Pressed
      default: []
      selector:
        action: {}
    button_3_press:
      name: Button 3 Pressed
      default: []
      selector:
        action: {}
    button_4_press:
      name: Button 4 Pressed
      default: []
      selector:
        action: {}
trigger:
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 1
    action: press
  id: 'BUTTON_1_PRESS'
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 2
    action: press
  id: 'BUTTON_2_PRESS'
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 3
    action: press
  id: 'BUTTON_3_PRESS'
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 4
    action: press
  id: 'BUTTON_4_PRESS'
actions:
  - choose:
    - conditions:
      - condition: trigger
        id: 'BUTTON_1_PRESS'
      sequence: !input button_1_press
    - conditions:
      - condition: trigger
        id: 'BUTTON_2_PRESS'
      sequence: !input button_2_press
    - conditions:
      - condition: trigger
        id: 'BUTTON_3_PRESS'
      sequence: !input button_3_press
    - conditions:
      - condition: trigger
        id: 'BUTTON_4_PRESS'
      sequence: !input button_4_press
mode: restart

Here’s a variant that also controls the keypad LEDs, although it doesn’t know about external actions that could make them out of sync. If you use this, try and send button presses rather than calling the underlying action.

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

blueprint:
  name: Lutron Sunnata Keypad - With LED
  author: robchandhok
  homeassistant:
    min_version: 2025.1.0
  description: |
    ## Sunnata Keypad - Two or Four Button Blueprint WITH LED Control (v0.15)

    A blueprint to make it easy to map button presses from the Lutron Caseta integration for a Sunnata Keypads such as:
    - RRST-W4B-XX (SunnataKeypad)
    - RRST-HN4B-XX (SunnataHybridKeypad)

    Sunnata keypads send customized event subtypes depending on their label in the Lutron Designer, so this blueprint works off of the raw leap_button_id.  
    
    Button "1" is the top button.
    
    In addition to handling the button presses in Home Assistant, this blueprint also tries to sync the LEDS to button presses.  
    With Sunnata keypads, the button LED names are custom strings (and get custome names in Home Assistant), so you have to specify which LED is which.
    
    In order to keep the LEDs in sync, other scripts or actions in Home Assistant should call button.press on the button, rather than doing the scene directly.
    
    TBD: some kind of dummy load to make the LEDs sync via the Lutron controller.  That's probably hard to do with a helper, but maybe...
    
    ### Software Version Requirements

    Not tested on versions of Home Assistant before March 2025

    ### Thanks
    Shout out to wtadler, mattsheffiel, stephack and others for their previous variants that this is based on.

  domain: automation
  source_url: https://github.com/robchandhok/homeassistant-blueprints/blob/main/automation/lutron-sunnata-keypad-and-leds.yaml
  input:
    keypad:
      name: Sunnata Keypad - Two or Four Button
      description: Select the Sunnata Keypad to program
      selector:
        device:
          filter:
            - integration: lutron_caseta
              model: RRST-W4B-XX (SunnataKeypad)
            - integration: lutron_caseta
              model: RRST-HN4B-XX (SunnataHybridKeypad)
          multiple: false
    button_1_press:
      name: Button 1 Pressed
      description: Actions to take when button 1 is pressed
      default: []
      selector:
        action: {}
    button_2_press:
      name: Button 2 Pressed
      description: Actions to take when button 2 is pressed
      default: []
      selector:
        action: {}
    button_3_press:
      name: Button 3 Pressed
      description: Actions to take when button 3 is pressed
      default: []
      selector:
        action: {}
    button_4_press:
      description: Actions to take when button 4 is pressed
      name: Button 4 Pressed
      default: []
      selector:
        action: {}
    button_1_led:
      name: Button 1 LED
      description: The switch entity for button 1 LED of this keypad
      default: []
      selector:
        entity:
          multiple: false
          filter:
            - integration: lutron_caseta
              domain: switch
    button_2_led:
      name: Button 2 LED
      description: The switch entity for button 2 LED of this keypad
      default: []
      selector:
        entity:
          multiple: false
          filter:
            - integration: lutron_caseta
              domain: switch
    button_3_led:
      name: Button 3 LED
      description: The switch entity for button 3 LED of this keypad
      default: []
      selector:
        entity:
          multiple: false
          filter:
            - integration: lutron_caseta
              domain: switch
    button_4_led:
      name: Button 4 LED
      description: The switch entity for button 4 LED of this keypad
      default: []
      selector:
        entity:
          multiple: false
          filter:
            - integration: lutron_caseta
              domain: switch
trigger:
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 1
    action: press
  id: 'BUTTON_1_PRESS'
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 2
    action: press
  id: 'BUTTON_2_PRESS'
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 3
    action: press
  id: 'BUTTON_3_PRESS'
- platform: event
  event_type: lutron_caseta_button_event
  event_data:
    device_id: !input keypad
    leap_button_number: 4
    action: press
  id: 'BUTTON_4_PRESS'
actions:
  - choose:
    - conditions:
      - condition: trigger
        id: 'BUTTON_1_PRESS'
      sequence:
        - sequence: !input button_1_press
        - sequence:
            - action: switch.turn_on
              metadata: {}
              data: {}
              target:
                entity_id: !input button_1_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_2_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_3_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_4_led
    - conditions:
      - condition: trigger
        id: 'BUTTON_2_PRESS'
      sequence:
        - sequence: !input button_2_press
        - sequence:
            - action: switch.turn_on
              metadata: {}
              data: {}
              target:
                entity_id: !input button_2_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_1_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_3_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_4_led
    - conditions:
      - condition: trigger
        id: 'BUTTON_3_PRESS'
      sequence:
        - sequence: !input button_3_press
        - sequence:
            - action: switch.turn_on
              metadata: {}
              data: {}
              target:
                entity_id: !input button_3_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_1_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_2_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_4_led
    - conditions:
      - condition: trigger
        id: 'BUTTON_4_PRESS'
      sequence:
        - sequence: !input button_4_press
        - sequence:
            - action: switch.turn_on
              metadata: {}
              data: {}
              target:
                entity_id: !input button_4_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_1_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_2_led
            - action: switch.turn_off
              metadata: {}
              data: {}
              target:
                entity_id: !input button_3_led
mode: restart