@censay could this be an example on long_press change:
# ===================================================================
# IKEA BILRESA E2489 Dual Button
# Blueprint Template v1.0.4
#
# Internal Versioning:
# schema_version: 1.0.4
# last_updated: 2026-01-18
#
# Changelog:
# v1.0.4: Added Long Press to triggend during long press when button are still held down (long_press)
# v1.0.3: Added not_from/not_to filters to prevent re-triggering on HA/Matter restarts (https://community.home-assistant.io/t/ikea-bilresa-matter-button-blueprint-for-ikea-matter-over-thread-button-actions-scripts-and-entities/962344/12)
# v1.0.2: Initial release
#
# Power-User Notes:
# - This device exposes two event entities, one per physical button.
# - You must select the correct event entity for Button 1 and Button 2.
# - Each press updates the entity state (timestamp) and sets attributes.event_type.
# ===================================================================
blueprint:
name: IKEA BILRESA E2489 Dual Button (Matter)
author: censay,bjornh
description: >
Full-featured automation for the IKEA BILRESA E2489 Matter dual-button
remote. Supports single press, double press, and long press (on release)
for both buttons. Uses event entities exposed by Home Assistant for
Matter devices. Single-press actions are prioritized for reliability.
domain: automation
source_url: https://github.com/censay/haos-blueprints
homeassistant:
min_version: 2025.12.1
input:
target_device:
name: BILRESA Button Device
description: >
Select the IKEA BILRESA E2489 matter device.
selector:
device:
filter:
- manufacturer: IKEA of Sweden
button1_event:
name: Button 1 β Event Entity
description: >
Select the event entity for Button 1 (for example:
event.bilresa_dual_button_button_1_2).
selector:
entity:
domain: event
button2_event:
name: Button 2 β Event Entity
description: >
Select the event entity for Button 2 (for example:
event.bilresa_dual_button_button_2_2).
selector:
entity:
domain: event
# ---------------------------------------------------------------
# BUTTON 1 ACTIONS
# ---------------------------------------------------------------
button1_single:
name: Button 1 β Single Press
description: Action for Button 1 single press (multi_press_1).
default: []
selector:
action: {}
button1_double:
name: Button 1 β Double Press
description: Action for Button 1 double press (multi_press_2).
default: []
selector:
action: {}
button1_long:
name: Button 1 β Long Press (on release)
description: Action for Button 1 long press completion (long_release).
default: []
selector:
action: {}
button1_long_press:
name: Button 1 β Long Press (held down)
description: Action for Button 1 long press during button are down (long_press).
default: []
selector:
action: {}
# ---------------------------------------------------------------
# BUTTON 2 ACTIONS
# ---------------------------------------------------------------
button2_single:
name: Button 2 β Single Press
description: Action for Button 2 single press (multi_press_1).
default: []
selector:
action: {}
button2_double:
name: Button 2 β Double Press
description: Action for Button 2 double press (multi_press_2).
default: []
selector:
action: {}
button2_long:
name: Button 2 β Long Press (on release)
description: Action for Button 2 long press completion (long_release).
default: []
selector:
action: {}
button2_long_press:
name: Button 2 β Long Press (held down)
description: Action for Button 2 long press during button are down (long_press).
default: []
selector:
action: {}
# ===================================================================
# AUTOMATION LOGIC
# ===================================================================
variables:
button1_entity: !input button1_event
button2_entity: !input button2_event
trigger:
- platform: state
id: button1
entity_id: !input button1_event
not_from: 'unavailable'
not_to: 'unavailable'
- platform: state
id: button2
entity_id: !input button2_event
not_from: 'unavailable'
not_to: 'unavailable'
# Added not_from/not_to filters to prevent re-triggering on HA/Matter restarts; event entities use timestamp states
condition: []
action:
- variables:
press_type: "{{ trigger.to_state.attributes.event_type }}"
trigger_id: "{{ trigger.id }}"
- choose:
# -------------------------------------------------------------
# BUTTON 1
# -------------------------------------------------------------
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button1' and press_type == 'multi_press_1' }}
sequence: !input button1_single
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button1' and press_type == 'multi_press_2' }}
sequence: !input button1_double
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button1' and press_type == 'long_release' }}
sequence: !input button1_long
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button1' and press_type == 'long_press' }}
sequence: !input button1_long_press
# -------------------------------------------------------------
# BUTTON 2
# -------------------------------------------------------------
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button2' and press_type == 'multi_press_1' }}
sequence: !input button2_single
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button2' and press_type == 'multi_press_2' }}
sequence: !input button2_double
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button2' and press_type == 'long_release' }}
sequence: !input button2_long
- conditions:
- condition: template
value_template: >
{{ trigger_id == 'button2' and press_type == 'long_press' }}
sequence: !input button2_long_press
mode: restart