Skip to content

Instantly share code, notes, and snippets.

@agoodkind
Created September 16, 2025 05:00
Show Gist options
  • Save agoodkind/fa691f33034ac83b2d43bd2764992ba5 to your computer and use it in GitHub Desktop.
Save agoodkind/fa691f33034ac83b2d43bd2764992ba5 to your computer and use it in GitHub Desktop.
blueprint:
name: Three-Button Scene Controller
description: Trigger actions from single, double, or long press of 3 programmable buttons.
domain: automation
input:
button_one_entity:
name: Button 1 Entity
description: Pick event entity for Button 1 (one dot)
selector:
entity:
domain: event
button_two_entity:
name: Button 2 Entity
description: Pick event entity for Button 2 (two dot)
selector:
entity:
domain: event
button_three_entity:
name: Button 3 Entity
description: Pick event entity for Button 3 (three dot)
selector:
entity:
domain: event
button_one_single_press:
name: Button 1 Single Press Action
selector:
action: {}
button_one_double_press:
name: Button 1 Double Press Action
selector:
action: {}
button_one_long_press:
name: Button 1 Long Press Action
selector:
action: {}
button_two_single_press:
name: Button 2 Single Press Action
selector:
action: {}
button_two_double_press:
name: Button 2 Double Press Action
selector:
action: {}
button_two_long_press:
name: Button 2 Long Press Action
selector:
action: {}
button_three_single_press:
name: Button 3 Single Press Action
selector:
action: {}
button_three_double_press:
name: Button 3 Double Press Action
selector:
action: {}
button_three_long_press:
name: Button 3 Long Press Action
selector:
action: {}
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: homekit_event
event_data:
entity_id: !input button_one_entity
- platform: event
event_type: homekit_event
event_data:
entity_id: !input button_two_entity
- platform: event
event_type: homekit_event
event_data:
entity_id: !input button_three_entity
variables:
event_type: "{{ trigger.event.data.event_type }}"
entity: "{{ trigger.event.data.entity_id }}"
action:
- choose:
- conditions:
- "{{ entity == blueprint.input.button_one_entity and event_type == 'single_press' }}"
sequence: !input button_one_single_press
- conditions:
- "{{ entity == blueprint.input.button_one_entity and event_type == 'double_press' }}"
sequence: !input button_one_double_press
- conditions:
- "{{ entity == blueprint.input.button_one_entity and event_type == 'long_press' }}"
sequence: !input button_one_long_press
- conditions:
- "{{ entity == blueprint.input.button_two_entity and event_type == 'single_press' }}"
sequence: !input button_two_single_press
- conditions:
- "{{ entity == blueprint.input.button_two_entity and event_type == 'double_press' }}"
sequence: !input button_two_double_press
- conditions:
- "{{ entity == blueprint.input.button_two_entity and event_type == 'long_press' }}"
sequence: !input button_two_long_press
- conditions:
- "{{ entity == blueprint.input.button_three_entity and event_type == 'single_press' }}"
sequence: !input button_three_single_press
- conditions:
- "{{ entity == blueprint.input.button_three_entity and event_type == 'double_press' }}"
sequence: !input button_three_double_press
- conditions:
- "{{ entity == blueprint.input.button_three_entity and event_type == 'long_press' }}"
sequence: !input button_three_long_press
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment