Instantly share code, notes, and snippets.
Created
January 13, 2023 23:59
-
Star
2
(2)
You must be signed in to star a gist -
Fork
3
(3)
You must be signed in to fork a gist
-
Save exciton/71baf67382634eda2ae15e29510281be to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Lutron Caseta Five Button Pico Actions | |
description: Short and long press automations for Pico five button remotes. | |
Release actions will always fire. | |
Short press actions will fire on button release if long press actions are defined, | |
and immediately on button press otherwise. | |
Long press actions will fire on release timeout. | |
domain: automation | |
input: | |
pico_remote: | |
name: Five Button Pico Remotes | |
selector: | |
device: | |
model: PJ2-3BRL-GXX-X01 (Pico3ButtonRaiseLower) | |
multiple: true | |
button_0_press: | |
name: On Button - Short press | |
default: [] | |
selector: | |
action: {} | |
button_0_hold: | |
name: On Button - Long press | |
default: [] | |
selector: | |
action: {} | |
button_0_release: | |
name: On Button - Release | |
default: [] | |
selector: | |
action: {} | |
button_1_press: | |
name: Raise Button - Short press | |
default: [] | |
selector: | |
action: {} | |
button_1_hold: | |
name: Raise Button - Long press | |
default: [] | |
selector: | |
action: {} | |
button_1_release: | |
name: Raise Button - Release | |
default: [] | |
selector: | |
action: {} | |
button_2_press: | |
name: Middle Button - Short press | |
default: [] | |
selector: | |
action: {} | |
button_2_hold: | |
name: Middle Button - Long press | |
default: [] | |
selector: | |
action: {} | |
button_2_release: | |
name: Middle Button - Released | |
default: [] | |
selector: | |
action: {} | |
button_3_press: | |
name: Lower Button - Short Press | |
default: [] | |
selector: | |
action: {} | |
button_3_hold: | |
name: Lower Button - Long Press | |
default: [] | |
selector: | |
action: {} | |
button_3_release: | |
name: Lower Button - Release | |
default: [] | |
selector: | |
action: {} | |
button_4_press: | |
name: Off Button - Short Press | |
default: [] | |
selector: | |
action: {} | |
button_4_hold: | |
name: Off Button - Long Press | |
default: [] | |
selector: | |
action: {} | |
button_4_release: | |
name: Off Button - Release | |
default: [] | |
selector: | |
action: {} | |
time_before_long_press: | |
name: Time before long press | |
description: | |
Amount of time button needs to be held before triggering "long | |
press" action. | |
default: 1 | |
selector: | |
number: | |
min: 0.25 | |
max: 10.0 | |
step: 0.25 | |
unit_of_measurement: seconds | |
mode: slider | |
auto_mode: | |
name: Automation Mode | |
description: Mode that automation runs in (single, restart, queued, parallel). | |
default: parallel | |
selector: | |
select: | |
options: | |
- single | |
- restart | |
- queued | |
- parallel | |
multiple: false | |
custom_value: false | |
mode_max: | |
name: Mode Max (ignored by Single and Restart Modes) | |
description: Maximum number of runs that can be executed or queued at a time. | |
default: 10 | |
selector: | |
number: | |
min: 1.0 | |
max: 15.0 | |
step: 1.0 | |
mode: slider | |
trigger: | |
- platform: event | |
event_type: lutron_caseta_button_event | |
event_data: | |
type: Pico3ButtonRaiseLower | |
variables: | |
button_numbers: [2, 5, 3, 6, 4] | |
device_ids: !input pico_remote | |
button_0_hold_actions: !input button_0_hold | |
button_1_hold_actions: !input button_1_hold | |
button_2_hold_actions: !input button_2_hold | |
button_3_hold_actions: !input button_3_hold | |
button_4_hold_actions: !input button_4_hold | |
condition: | |
- condition: template | |
value_template: "{{ trigger.event.data.device_id in device_ids }}" | |
action: | |
- choose: | |
- conditions: '{{ trigger.event.data.action == "release" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[0] }}" | |
sequence: !input button_0_release | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[1] }}" | |
sequence: !input button_1_release | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[2] }}" | |
sequence: !input button_2_release | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[3] }}" | |
sequence: !input button_3_release | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[4] }}" | |
sequence: !input button_4_release | |
- conditions: '{{ trigger.event.data.action == "press" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[0] }}" | |
sequence: | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{button_0_hold_actions != []}}" | |
sequence: | |
- wait_for_trigger: | |
- platform: event | |
event_type: lutron_caseta_button_event | |
event_data: | |
button_number: "{{ trigger.event.data.button_number }}" | |
action: release | |
device_id: "{{ trigger.event.data.device_id }}" | |
timeout: !input time_before_long_press | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{ not wait.trigger }}" | |
sequence: !input button_0_hold | |
default: !input button_0_press | |
default: !input button_0_press | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[1] }}" | |
sequence: | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{button_1_hold_actions != []}}" | |
sequence: | |
- wait_for_trigger: | |
- platform: event | |
event_type: lutron_caseta_button_event | |
event_data: | |
button_number: "{{ trigger.event.data.button_number }}" | |
action: release | |
device_id: "{{ trigger.event.data.device_id }}" | |
timeout: !input time_before_long_press | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{ not wait.trigger }}" | |
sequence: !input button_1_hold | |
default: !input button_1_press | |
default: !input button_1_press | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[2] }}" | |
sequence: | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{button_2_hold_actions != []}}" | |
sequence: | |
- wait_for_trigger: | |
- platform: event | |
event_type: lutron_caseta_button_event | |
event_data: | |
button_number: "{{ trigger.event.data.button_number }}" | |
action: release | |
device_id: "{{ trigger.event.data.device_id }}" | |
timeout: !input time_before_long_press | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{ not wait.trigger }}" | |
sequence: !input button_2_hold | |
default: !input button_2_press | |
default: !input button_2_press | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[3] }}" | |
sequence: | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{button_3_hold_actions != []}}" | |
sequence: | |
- wait_for_trigger: | |
- platform: event | |
event_type: lutron_caseta_button_event | |
event_data: | |
button_number: "{{ trigger.event.data.button_number }}" | |
action: release | |
device_id: "{{ trigger.event.data.device_id }}" | |
timeout: !input time_before_long_press | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{ not wait.trigger }}" | |
sequence: !input button_3_hold | |
default: !input button_3_press | |
default: !input button_3_press | |
- conditions: "{{ trigger.event.data.button_number == button_numbers[4] }}" | |
sequence: | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{button_4_hold_actions != []}}" | |
sequence: | |
- wait_for_trigger: | |
- platform: event | |
event_type: lutron_caseta_button_event | |
event_data: | |
button_number: "{{ trigger.event.data.button_number }}" | |
action: release | |
device_id: "{{ trigger.event.data.device_id }}" | |
timeout: !input time_before_long_press | |
- choose: | |
- conditions: | |
- condition: template | |
value_template: "{{ not wait.trigger }}" | |
sequence: !input button_4_hold | |
default: !input button_4_press | |
default: !input button_4_press | |
default: [] | |
mode: !input auto_mode | |
max: !input mode_max | |
trace: | |
stored_traces: 10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment