Shelly BLU RC Button 4 US ZB Z2M

Heads up I used AI to generate the code, I’ve tested all the basic functions of the RC4 shown here. The only things I didn’t test are the multiple long press actions, those are exposed by Z2M, but I couldn’t think of how that would be useful.

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

blueprint:
  name: Shelly BLU RC Button 4 ZB (Zigbee2MQTT Event Entity)
  description: >
    Automate a Shelly BLU RC Button 4 ZB (SBBT-104CUS) using the Zigbee2MQTT
    event entity exposed in Home Assistant. Supports normalized actions for
    single, double, triple, single_long, double_long, triple_long, and hold
    per button.

  domain: automation
  homeassistant:
    min_version: 2026.4.0

  input:
    action_entity:
      name: Action event entity
      description: >
        Select the Zigbee2MQTT Home Assistant event entity for this remote
        (for example: event.office_button_action).
      selector:
        entity:
          domain: event

    # Button 1
    button_1_single:
      name: Button 1 - Single Press
      default: []
      selector:
        action: {}
    button_1_double:
      name: Button 1 - Double Press
      default: []
      selector:
        action: {}
    button_1_triple:
      name: Button 1 - Triple Press
      default: []
      selector:
        action: {}
    button_1_single_long:
      name: Button 1 - Single Long Press
      default: []
      selector:
        action: {}
    button_1_double_long:
      name: Button 1 - Double Long Press
      default: []
      selector:
        action: {}
    button_1_triple_long:
      name: Button 1 - Triple Long Press
      default: []
      selector:
        action: {}
    button_1_hold:
      name: Button 1 - Hold
      default: []
      selector:
        action: {}

    # Button 2
    button_2_single:
      name: Button 2 - Single Press
      default: []
      selector:
        action: {}
    button_2_double:
      name: Button 2 - Double Press
      default: []
      selector:
        action: {}
    button_2_triple:
      name: Button 2 - Triple Press
      default: []
      selector:
        action: {}
    button_2_single_long:
      name: Button 2 - Single Long Press
      default: []
      selector:
        action: {}
    button_2_double_long:
      name: Button 2 - Double Long Press
      default: []
      selector:
        action: {}
    button_2_triple_long:
      name: Button 2 - Triple Long Press
      default: []
      selector:
        action: {}
    button_2_hold:
      name: Button 2 - Hold
      default: []
      selector:
        action: {}

    # Button 3
    button_3_single:
      name: Button 3 - Single Press
      default: []
      selector:
        action: {}
    button_3_double:
      name: Button 3 - Double Press
      default: []
      selector:
        action: {}
    button_3_triple:
      name: Button 3 - Triple Press
      default: []
      selector:
        action: {}
    button_3_single_long:
      name: Button 3 - Single Long Press
      default: []
      selector:
        action: {}
    button_3_double_long:
      name: Button 3 - Double Long Press
      default: []
      selector:
        action: {}
    button_3_triple_long:
      name: Button 3 - Triple Long Press
      default: []
      selector:
        action: {}
    button_3_hold:
      name: Button 3 - Hold
      default: []
      selector:
        action: {}

    # Button 4
    button_4_single:
      name: Button 4 - Single Press
      default: []
      selector:
        action: {}
    button_4_double:
      name: Button 4 - Double Press
      default: []
      selector:
        action: {}
    button_4_triple:
      name: Button 4 - Triple Press
      default: []
      selector:
        action: {}
    button_4_single_long:
      name: Button 4 - Single Long Press
      default: []
      selector:
        action: {}
    button_4_double_long:
      name: Button 4 - Double Long Press
      default: []
      selector:
        action: {}
    button_4_triple_long:
      name: Button 4 - Triple Long Press
      default: []
      selector:
        action: {}
    button_4_hold:
      name: Button 4 - Hold
      default: []
      selector:
        action: {}

mode: restart
max_exceeded: silent

triggers:
  - trigger: state
    entity_id: !input action_entity
    not_from:
      - unavailable
      - unknown
    not_to:
      - unavailable
      - unknown

variables:
  action_entity: !input action_entity
  action_type: "{{ trigger.to_state.attributes.event_type | default('') }}"

actions:
  - choose:
      # Button 1
      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_single' }}"
        sequence: !input button_1_single

      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_double' }}"
        sequence: !input button_1_double

      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_triple' }}"
        sequence: !input button_1_triple

      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_single_long' }}"
        sequence: !input button_1_single_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_double_long' }}"
        sequence: !input button_1_double_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_triple_long' }}"
        sequence: !input button_1_triple_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '1_hold' }}"
        sequence: !input button_1_hold

      # Button 2
      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_single' }}"
        sequence: !input button_2_single

      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_double' }}"
        sequence: !input button_2_double

      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_triple' }}"
        sequence: !input button_2_triple

      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_single_long' }}"
        sequence: !input button_2_single_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_double_long' }}"
        sequence: !input button_2_double_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_triple_long' }}"
        sequence: !input button_2_triple_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '2_hold' }}"
        sequence: !input button_2_hold

      # Button 3
      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_single' }}"
        sequence: !input button_3_single

      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_double' }}"
        sequence: !input button_3_double

      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_triple' }}"
        sequence: !input button_3_triple

      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_single_long' }}"
        sequence: !input button_3_single_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_double_long' }}"
        sequence: !input button_3_double_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_triple_long' }}"
        sequence: !input button_3_triple_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '3_hold' }}"
        sequence: !input button_3_hold

      # Button 4
      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_single' }}"
        sequence: !input button_4_single

      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_double' }}"
        sequence: !input button_4_double

      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_triple' }}"
        sequence: !input button_4_triple

      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_single_long' }}"
        sequence: !input button_4_single_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_double_long' }}"
        sequence: !input button_4_double_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_triple_long' }}"
        sequence: !input button_4_triple_long

      - conditions:
          - condition: template
            value_template: "{{ action_type == '4_hold' }}"
        sequence: !input button_4_hold

This was based on - Shelly BLU RC Button 4 US ZB

1 Like