Skip to content

Instantly share code, notes, and snippets.

@eddyg
Created January 10, 2025 21:51
Show Gist options
  • Save eddyg/9d45c3b652563cffb350e4a25151d426 to your computer and use it in GitHub Desktop.
Save eddyg/9d45c3b652563cffb350e4a25151d426 to your computer and use it in GitHub Desktop.
Lutron Pico Automation Blueprints for Home Assistant
blueprint:
name: Lutron Pico 4 Button P02 Actions
description: |
Different Actions on Short, Long, and Double Click button presses.
Based off of GregTR's version. This blueprint is specifically for the P02 Scene Pico (Bright, Cooking, Dining, Off).
Make sure you have enabled at least one Pico Event Entity for each device, they default to not enabled (otherwise they won't show up as an available device in the drop down list)
domain: automation
input:
pico_id:
name: Lutron Pico
description: The Lutron Pico used to trigger the automations
selector:
device:
model: PJ2-4B-GXX-P02 (Pico4ButtonScene)
multiple: false
short_click_action_bright:
name: Bright Button Short Click
description: The action(s) to launch for a single short click
default: []
selector:
action: {}
short_click_action_cooking:
name: Cooking Button Short Click
description: The action(s) to launch for a single short click
default: []
selector:
action: {}
short_click_action_dining:
name: Dining Button Short Click
description: The action(s) to launch for a single short click
default: []
selector:
action: {}
short_click_action_off:
name: Off Button Short Click
description: The action(s) to launch for a single short click
default: []
selector:
action: {}
long_click_action_bright:
name: Bright Button Long Click
description: The action(s) to launch for a long click
default: []
selector:
action: {}
long_click_action_cooking:
name: Cooking Button Long Click
description: The action(s) to launch for a long click
default: []
selector:
action: {}
long_click_action_dining:
name: Dining Button Long Click
description: The action(s) to launch for a long click
default: []
selector:
action: {}
long_click_action_off:
name: Off Button Long Click
description: The action(s) to launch for a long click
default: []
selector:
action: {}
double_click_action_bright:
name: Bright Button Double Click
description: The action(s) to launch for a double click
default: []
selector:
action: {}
double_click_action_cooking:
name: Cooking Button Double Click
description: The action(s) to launch for a double click
default: []
selector:
action: {}
double_click_action_dining:
name: Dining Button Double Click
description: The action(s) to launch for a double click
default: []
selector:
action: {}
double_click_action_off:
name: Off Button Double Click
description: The action(s) to launch for a double click
default: []
selector:
action: {}
delay_click:
name: Double Click Delay
description: The time in milliseconds used for the double click detection
default: 250
selector:
number:
min: 100
max: 1000
unit_of_measurement: milliseconds
step: 1
mode: slider
delay_hold:
name: Hold Delay
description: The time in milliseconds used for the hold detection
default: 1000
selector:
number:
min: 1000
max: 4000
unit_of_measurement: milliseconds
step: 1
mode: slider
trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'button_1'
id: bright_pressed
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'button_2'
id: cooking_pressed
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'button_3'
id: dining_pressed
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'off'
id: off_pressed
action:
- variables:
hold_ms: !input delay_hold
tap_ms: !input delay_click
pico_id: "{{ trigger.event.data.device_id }}"
button_name: "{{ trigger.event.data.button_type }}"
- choose:
- conditions:
- condition: trigger
id: bright_pressed
sequence:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: release
subtype: 'button_1'
timeout:
milliseconds: "{{ hold_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input long_click_action_bright
default:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'button_1'
timeout:
milliseconds: "{{ tap_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input short_click_action_bright
default: !input double_click_action_bright
- conditions:
- condition: trigger
id: cooking_pressed
sequence:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: release
subtype: 'button_2'
timeout:
milliseconds: "{{ hold_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input long_click_action_cooking
default:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'button_2'
timeout:
milliseconds: "{{ tap_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input short_click_action_cooking
default: !input double_click_action_cooking
- conditions:
- condition: trigger
id: dining_pressed
sequence:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: release
subtype: 'button_3'
timeout:
milliseconds: "{{ hold_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input long_click_action_dining
default:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: 'button_3'
timeout:
milliseconds: "{{ tap_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input short_click_action_dining
default: !input double_click_action_dining
- conditions:
- condition: trigger
id: off_pressed
sequence:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: release
subtype: "off"
timeout:
milliseconds: "{{ hold_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input long_click_action_off
default:
- wait_for_trigger:
- platform: device
device_id: !input pico_id
domain: lutron_caseta
type: press
subtype: "off"
timeout:
milliseconds: "{{ tap_ms }}"
- choose:
- conditions:
- condition: template
value_template: "{{ wait.trigger == none }}"
sequence: !input short_click_action_off
default: !input double_click_action_off
mode: single
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment