Instantly share code, notes, and snippets.
Created
January 14, 2023 00:01
-
Star
0
(0)
You must be signed in to star a gist -
Fork
3
(3)
You must be signed in to fork a gist
-
Save exciton/54eb2bf42513e2685b44cd63a97041ce 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 Four Button Scene Pico Actions | |
description: | |
Short and long press automations for Pico four button scene 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: Pico Four-Button Scene Remote | |
selector: | |
device: | |
model: PJ2-4B-GXX-X31 (Pico4ButtonScene) | |
multiple: true | |
button_0_press: | |
name: Scene One Button - Short press | |
default: [] | |
selector: | |
action: {} | |
button_0_hold: | |
name: Scene One Button - Long press | |
default: [] | |
selector: | |
action: {} | |
button_0_release: | |
name: Scene One Button - Release | |
default: [] | |
selector: | |
action: {} | |
button_1_press: | |
name: Scene Two Button - Short press | |
default: [] | |
selector: | |
action: {} | |
button_1_hold: | |
name: Scene Two Button - Long press | |
default: [] | |
selector: | |
action: {} | |
button_1_release: | |
name: Scene Two Button - Release | |
default: [] | |
selector: | |
action: {} | |
button_2_press: | |
name: Scene Three Button - Short press | |
default: [] | |
selector: | |
action: {} | |
button_2_hold: | |
name: Scene Three Button - Long press | |
default: [] | |
selector: | |
action: {} | |
button_2_release: | |
name: Scene Three Button - Released | |
default: [] | |
selector: | |
action: {} | |
button_3_press: | |
name: Off Button - Short Press | |
default: [] | |
selector: | |
action: {} | |
button_3_hold: | |
name: Off Button - Long Press | |
default: [] | |
selector: | |
action: {} | |
button_3_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: Pico4ButtonScene | |
variables: | |
button_numbers: [8, 9, 10, 11] | |
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 | |
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.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 | |
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