Skip to content

Instantly share code, notes, and snippets.

@zacwest
Last active January 18, 2026 06:59
Show Gist options
  • Select an option

  • Save zacwest/5fb8bb83bde947a77a92f511617bef1b to your computer and use it in GitHub Desktop.

Select an option

Save zacwest/5fb8bb83bde947a77a92f511617bef1b to your computer and use it in GitHub Desktop.
Ikea BILRESA blueprint
blueprint:
name: Ikea BILRESA Button
domain: automation
author: zacwest
source_url: https://gist.github.com/zacwest/5fb8bb83bde947a77a92f511617bef1b
input:
button1:
name: "Button 1"
input:
button1_entity:
name: "Event entity"
selector: { entity: { domain: event } }
button1_sequence_multi_press_1:
name: "Single press"
selector: { action: {} }
default: []
button1_sequence_multi_press_2:
name: "Double press"
selector: { action: {} }
default: []
button1_sequence_long_press:
name: "Start long press"
selector: { action: {} }
default: []
button1_sequence_long_release:
name: "End long press"
selector: { action: {} }
default: []
button2:
name: "Button 2"
input:
button2_entity:
name: "Event entity"
selector: { entity: { domain: event } }
button2_sequence_multi_press_1:
name: "Single press"
selector: { action: {} }
default: []
button2_sequence_multi_press_2:
name: "Double press"
selector: { action: {} }
default: []
button2_sequence_long_press:
name: "Start long press"
selector: { action: {} }
default: []
button2_sequence_long_release:
name: "End long press"
selector: { action: {} }
default: []
mode: parallel
trigger:
- alias: "When button1 changes state"
trigger: state
id: button1
entity_id: !input button1_entity
not_from:
- unavailable
not_to:
- unavailable
- unknown
- alias: "When button2 changes state"
trigger: state
id: button2
entity_id: !input button2_entity
not_from:
- unavailable
not_to:
- unavailable
- unknown
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: button1
sequence:
- choose:
- conditions:
- condition: state
entity_id: !input button1_entity
state: multi_press_1
attribute: event_type
sequence: !input button1_sequence_multi_press_1
- conditions:
- condition: state
entity_id: !input button1_entity
state: multi_press_2
attribute: event_type
sequence: !input button1_sequence_multi_press_2
- conditions:
- condition: state
entity_id: !input button1_entity
state: long_press
attribute: event_type
sequence: !input button1_sequence_long_press
- conditions:
- condition: state
entity_id: !input button1_entity
state: long_release
attribute: event_type
sequence: !input button1_sequence_long_release
- conditions:
- condition: trigger
id: button2
sequence:
- choose:
- conditions:
- condition: state
entity_id: !input button2_entity
state: multi_press_1
attribute: event_type
sequence: !input button2_sequence_multi_press_1
- conditions:
- condition: state
entity_id: !input button2_entity
state: multi_press_2
attribute: event_type
sequence: !input button2_sequence_multi_press_2
- conditions:
- condition: state
entity_id: !input button2_entity
state: long_press
attribute: event_type
sequence: !input button2_sequence_long_press
- conditions:
- condition: state
entity_id: !input button2_entity
state: long_release
attribute: event_type
sequence: !input button2_sequence_long_release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment