[Z2M] IKEA BILRESA (E2489) - Full Custom Actions (Single, Double, Long Press)

This blueprint allows you to fully customize the new IKEA BILRESA (E2489) 2-button remote when paired via Zigbee2MQTT. Unlike basic blueprints that only control lights, this one uses Action Selectors, meaning you can assign any Home Assistant action (scripts, scenes, switches, media players, etc.) to every possible button event.

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

It has been tested with the latest firmware (1.8.5).

Features

  • Button I (Top): Single Click, Double Click, and Long Press (Hold).
  • Button O (Bottom): Single Click, Double Click, and Long Press (Hold).
  • Release Support: Includes a dedicated action for when the button is released (ideal for stopping dimming or movement).
  • Device-Based: Uses the Device Selector for easy setup (no need to hunt for hidden ‘action’ entities).

Requirements

  • Hardware: IKEA BILRESA 2-button remote (E2489).
  • Integration: Zigbee2MQTT must be installed and running.
  • Controller: A compatible Zigbee coordinator.

Instructions

  1. Ensure your BILRESA remote is paired with Zigbee2MQTT.
  2. Import this blueprint.
  3. Create a new automation and select your BILRESA from the device list.
  4. Assign your desired actions to the triggers (Single, Double, or Long Press).
blueprint:
  name: IKEA BILRESA (Z2M) - Full Custom Actions
  description: "Assign any action to every button of the BILRESA remote via Zigbee2MQTT (Single, Double, and Long press supported)."
  domain: automation
  input:
    remote_device:
      name: Bilresa Remote
      description: Select your Bilresa remote from the Zigbee2MQTT list.
      selector:
        device:
          integration: mqtt
          manufacturer: IKEA
          model: BILRESA remote control with buttons
          multiple: false
    action_on_single:
      name: "Button I - Single Click"
      default: []
      selector:
        action: {}
    action_on_double:
      name: "Button I - Double Click"
      default: []
      selector:
        action: {}
    action_on_long:
      name: "Button I - Long Press (Hold)"
      default: []
      selector:
        action: {}
    action_off_single:
      name: "Button O - Single Click"
      default: []
      selector:
        action: {}
    action_off_double:
      name: "Button O - Double Click"
      default: []
      selector:
        action: {}
    action_off_long:
      name: "Button O - Long Press (Hold)"
      default: []
      selector:
        action: {}
    action_stop:
      name: "Button Released (Stop)"
      default: []
      selector:
        action: {}

mode: restart
max_exceeded: silent

trigger:
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: 'on'
  id: 'on'
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: 'on_double'
  id: 'on_double'
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: 'off'
  id: 'off'
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: 'off_double'
  id: 'off_double'
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: brightness_move_up
  id: up
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: brightness_move_down
  id: down
- platform: device
  domain: mqtt
  device_id: !input remote_device
  type: action
  subtype: brightness_stop
  id: stop

action:
- choose:
  - conditions: '{{ trigger.id == "on" }}'
    sequence: !input action_on_single
  - conditions: '{{ trigger.id == "on_double" }}'
    sequence: !input action_on_double
  - conditions: '{{ trigger.id == "up" }}'
    sequence: !input action_on_long
  - conditions: '{{ trigger.id == "off" }}'
    sequence: !input action_off_single
  - conditions: '{{ trigger.id == "off_double" }}'
    sequence: !input action_off_double
  - conditions: '{{ trigger.id == "down" }}'
    sequence: !input action_off_long
  - conditions: '{{ trigger.id == "stop" }}'
    sequence: !input action_stop
1 Like

Hi Giorgio. It works like a charm. Thank you very much sir !

For those who wonder, the procedure to pair this remote with zigbee is on the great z2m device library, as always. : IKEA E2489 control via MQTT | Zigbee2MQTT