Shelly BLU RC 4-button bluetooth remote - DJF3

Photo: Shelly Bluetooth remote (numbers = button numbers)

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

WHAT IS IT?
Here’s my second blueprint! :slight_smile:
A blueprint that enables you to quickly configure a switch. It also is a lot easier to look at compared to manual events in an automation.
It was inspired by @blake.dubiel blueprint that was enhanced by @Shiroe93 .
Updates:

  • Actions grouped per button (see screenshot below)
  • The least amount of text possible. (well you could use less text)

SETUP

  1. Import blueprint - Click the button above.
  2. Open blueprint
  3. Select switch - listed in the switch dropdown
  4. Configure actions - for each button
  5. Save
  6. Test

REQUIREMENTS

  • Supported switch
  • A shelly plus or gen3 device that can relay bluetooth to HA

DEVICE INFO

  • Manufacturer: Shelly
  • Model: BLU RC 4 button
  • Buttons: 4
  • Supported actions:
    ○ single click
    ○ double click
    ○ triple click
    ○ long click
  • Not supported in this blueprint (because of ‘rarely used’)
    ○ long double click
    ○ long triple click
    ○ hold click

NOTES:

  • SIngle switch: I have not enabled multiple switches in a single automation. It’s so easy to duplicate an automation and select another switch if you need 2 of the same switches.

TIPS

  • Use a labelmaker to print labels with icons, numbers or text. Great for the xAF (whatever Acceptance Factor).
  • Mounting: I use very thin nano tape (see through / gel type) to put them on a wall. The factory default mounting tape is often impossible to take off.
    Note that this shelly remote has a magnetic base!
  • Firmware update. There was a situation where this remote needed a firmware update to to bring the battery consumption acceptable level. So make sure it runs that latest firmware!
blueprint:
  name: _Shelly BLU RC 4-Button bluetooth remote ULTRA by DJF3
  description: "Shelly blueprint for the <strong>Shelly BLU RC 4-Button bluetooth remote</strong>.<br>
    \ inspired by blake.dubiel and Shiroe93 [community](https://community.home-assistant.io/t/shelly-blu-rc-4/774639)
    \ Version 0.10: First version<br>
    \ Device info: [Shelly BLU RC 4 button](https://www.shelly.com/products/shelly-blu-rc-button-4)
    \n
    \n       .-----.    SUPPORTED:
    \n       |  1  |    - single/double/triple click
    \n       |-----|    - long click
    \n       |  2  |    
    \n       |-----|    NOT SUPPORTED (rarely used)
    \n       |  3  |    - long_double click
    \n       |-----|    - long_triple click
    \n       |  4  |    - hold click
    \n       '-----'\n"
  author: DJ Uittenbogaard
  homeassistant:
    min_version: 2025.3.0
  domain: automation
  input:
    your_remote:
      name: "Select your Shelly BLU RC 4-button bluetooth remote"
      description: ""
      selector:
        device:
          filter:
            - integration: bthome
              model: BLU Button1
          multiple: false
    button1_section:
      name: BUTTON 1
      icon: mdi:numeric-1-box-outline
      collapsed: true
      input:
        input_button1_short:
          name: Button 1 - SINGLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button1_double:
          name: Button 1 - DOUBLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button1_triple:
          name: Button 1 - TRIPLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button1_long:
          name: Button 1 - LONG click
          description: ""
          default: []
          selector:
            action: {}
    button2_section:
      name: BUTTON 2
      icon: mdi:numeric-2-box-outline
      collapsed: true
      input:
        input_button2_short:
          name: Button 2 - SINGLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button2_double:
          name: Button 2 - DOUBLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button2_triple:
          name: Button 2 - TRIPLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button2_long:
          name: Button 2 - LONG click
          description: ""
          default: []
          selector:
            action: {}
    button3_section:
      name: BUTTON 3
      icon: mdi:numeric-3-box-outline
      collapsed: true
      input:
        input_button3_short:
          name: Button 3 - SINGLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button3_double:
          name: Button 3 - DOUBLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button3_triple:
          name: Button 3 - TRIPLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button3_long:
          name: Button 3 - LONG click
          description: ""
          default: []
          selector:
            action: {}
    button4_section:
      name: BUTTON 4
      icon: mdi:numeric-4-box-outline
      collapsed: true
      input:
        input_button4_short:
          name: Button 4 - SINGLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button4_double:
          name: Button 4 - DOUBLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button4_triple:
          name: Button 4 - TRIPLE click
          description: ""
          default: []
          selector:
            action: {}
        input_button4_long:
          name: Button 4 - LONG click
          description: ""
          default: []
          selector:
            action: {}
trigger:
- platform: event
  event_type: bthome_ble_event
  event_data:
    device_id: !input your_remote
mode: single
action:
- choose:
  # ------- Button 1
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_1'' and trigger.event.data.event_type == ''press'' }}'
    sequence: !input input_button1_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_1'' and trigger.event.data.event_type == ''double_press'' }}'
    sequence: !input input_button1_double
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_1'' and trigger.event.data.event_type == ''triple_press'' }}'
    sequence: !input input_button1_triple
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_1'' and trigger.event.data.event_type == ''long_press'' }}'
    sequence: !input input_button1_long
  # ------- Button 2
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_2'' and trigger.event.data.event_type == ''press'' }}'
    sequence: !input input_button2_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_2'' and trigger.event.data.event_type == ''double_press'' }}'
    sequence: !input input_button2_double
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_2'' and trigger.event.data.event_type == ''triple_press'' }}'
    sequence: !input input_button2_triple
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_2'' and trigger.event.data.event_type == ''long_press'' }}'
    sequence: !input input_button2_long
  # ------- Button 3
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_3'' and trigger.event.data.event_type == ''press'' }}'
    sequence: !input input_button3_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_3'' and trigger.event.data.event_type == ''double_press'' }}'
    sequence: !input input_button3_double
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_3'' and trigger.event.data.event_type == ''triple_press'' }}'
    sequence: !input input_button3_triple
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_3'' and trigger.event.data.event_type == ''long_press'' }}'
    sequence: !input input_button3_long
  # ------- Button 4
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_4'' and trigger.event.data.event_type == ''press'' }}'
    sequence: !input input_button4_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_4'' and trigger.event.data.event_type == ''double_press'' }}'
    sequence: !input input_button4_double
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_4'' and trigger.event.data.event_type == ''triple_press'' }}'
    sequence: !input input_button4_triple
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.event_class == ''button_4'' and trigger.event.data.event_type == ''long_press'' }}'
    sequence: !input input_button4_long

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

Other blueprints that I created:

Questions or comments? Let me know! :+1:

1 Like

I have the square variant of this switch. Had to remove the model filter, but otherwise it seems to work fine.

1 Like