Last active
February 25, 2025 11:53
-
-
Save blizzrdof77/7a3c7507fd3bdd88fa052d023c737c8c to your computer and use it in GitHub Desktop.
HASS Hue Event - Lutron Aurora Dimmer Controller Advanced Blueprint
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: Hue Event - Lutron Aurora Dimmer Controller Advanced Blueprint (v1.3.0) | |
description: Control lights with a Lutron Aurora Dimmer Pressing in the dimmer button will toggle lights regardless of dimmer status. Rotating the dimmer will increase and decrease the light brightness. | |
domain: automation | |
input: | |
remote: | |
name: Lutron Aurora Dimmer Switch | |
description: Lutron Aurora Z3-1BRL | |
selector: | |
device: | |
integration: hue | |
manufacturer: Lutron | |
multiple: false | |
areaid: | |
name: Area | |
description: The area to manage light control. | |
selector: | |
area: {} | |
transition: | |
name: Transition | |
description: Transition fade time in seconds. | |
default: 1 | |
selector: | |
number: | |
min: 0.0 | |
max: 5.0 | |
step: 0.1 | |
mode: slider | |
sensitivity: | |
name: Sensitivity | |
description: Reducing sensitivity will reduce rate of brightness change when dimming. | |
default: 0.50 | |
selector: | |
number: | |
min: 0.01 | |
max: 1.00 | |
step: 0.01 | |
mode: slider | |
source_url: https://gist.github.com/blizzrdof77/7a3c7507fd3bdd88fa052d023c737c8c | |
mode: restart | |
max_exceeded: silent | |
triggers: | |
- trigger: event | |
event_type: hue_event | |
id: decrease | |
alias: Decrease Brightness | |
event_data: | |
subtype: counter_clock_wise | |
device_id: !input remote | |
- trigger: event | |
event_type: hue_event | |
id: increase | |
alias: Increase Brightness | |
event_data: | |
subtype: clock_wise | |
device_id: !input remote | |
- trigger: event | |
event_type: hue_event | |
id: hold | |
alias: Hold Button | |
event_data: | |
type: long_release | |
subtype: 1 | |
device_id: !input remote | |
- trigger: event | |
event_type: hue_event | |
id: toggle | |
alias: Toggle Lights | |
event_data: | |
type: short_release | |
subtype: 1 | |
device_id: !input remote | |
# - trigger: event | |
# event_type: hue_event | |
# id: hold | |
# alias: Hold Button | |
# event_data: | |
# type: repeat | |
# subtype: 1 | |
# device_id: !input remote | |
action: | |
- variables: | |
deviceid: !input remote | |
command: '{{ trigger.event.data.type }}' | |
presstype: '{{ trigger.event.data.subtype }}' | |
rate: !input sensitivity | |
transition: !input transition | |
areaid: !input areaid | |
area_slug: >- | |
{%- set area_slug = area_name(deviceid) | lower | replace(' ', '_') -%} | |
{{ area_slug }} | |
multiplier: >- | |
{%- if (trigger.event.data.subtype is defined and trigger.event.data.subtype|string|contains('counter') ) -%} | |
{%- set multiplier = -1 -%} | |
{%- else -%} | |
{%- set multiplier = 1 -%} | |
{%- endif -%} | |
{{ multiplier | int(1) }} | |
direction: >- | |
{%- if trigger.id is defined -%} | |
{%- if trigger.id == 'toggle' -%} | |
{%- set direction = 'toggle' -%} | |
{%- elif trigger.id == 'decrease' -%} | |
{%- set direction = 'down' -%} | |
{%- elif trigger.id == 'increase' -%} | |
{%- set direction = 'up' -%} | |
{%- elif trigger.id == 'hold' -%} | |
{%- set direction = 'other' -%} | |
{%- endif -%} | |
{%- else -%} | |
{%- set direction = 'none' -%} | |
{%- endif -%} | |
{{ direction }} | |
target_entity: >- | |
{%- set target_entity = 'light.' + area_slug + '_daytime_lights' -%} | |
{{ target_entity }} | |
all_area_entities: >- | |
{%- set all_area_entities = 'light.' + area_slug + '_lights' -%} | |
{{ all_area_entities }} | |
percent: >- | |
{%- if (trigger.event.data.steps is defined and (trigger.event.data.steps | int(0) > 0)) -%} | |
{%- set percent = (multiplier|int(1)) * ((trigger.event.data.steps | float(1) / 1.5) * (rate | float(0.5)) | float(1.0)) -%} | |
{%- elif trigger.id == 'toggle' and is_state(target_entity, 'on') -%} | |
{%- set percent = 0.0 -%} | |
{%- elif trigger.id == 'toggle' and is_state(target_entity, 'off') -%} | |
{%- set percent = states('number.circadian_brightness_percent') -%} | |
{%- elif trigger.id == 'hold' -%} | |
{%- set percent = False -%} | |
{%- endif -%} | |
{{ percent }} | |
target_hs_color: >- | |
{%- set target_hs_color = (state_attr("switch.circadian_lighting_circadian_lights_switch", "hs_color") or ([30, 70])) -%} | |
{{ target_hs_color }} | |
proceed: >- | |
{%- if direction == 'down' -%} | |
{%- set proceed = (state_attr(target_entity, 'brightness')|int(0)) > 3 -%} | |
{%- elif direction == 'up' -%} | |
{%- set proceed = (state_attr(target_entity, 'brightness')|int(0)) < 255 -%} | |
{%- else -%} | |
{%- set proceed = True -%} | |
{%- endif -%} | |
{{ proceed }} | |
# -- PROCEED CONDITION | |
- condition: template | |
value_template: >- | |
{{ proceed == True }} | |
- choose: | |
# -- HOLD ACTIONS | |
- alias: Hold Actions | |
conditions: | |
- condition: or | |
conditions: | |
- condition: template | |
value_template: "{{ direction == 'other' }}" | |
- condition: trigger | |
id: | |
- hold | |
sequence: | |
- action: script.random_area_color | |
data: | |
target_area: "{{ areaid }}" | |
target_mode: all | |
transition: '{{ (transition|float(0.5) or 0.5) }}' | |
# -- INCREASE BRIGHTNESS | |
- alias: Increase Brightness | |
conditions: | |
- condition: or | |
conditions: | |
- condition: template | |
value_template: "{{ direction == 'up' }}" | |
- condition: trigger | |
id: | |
- increase | |
sequence: | |
- action: light.turn_on | |
metadata: {} | |
target: | |
entity_id: '{{ target_entity }}' | |
data: | |
brightness_step: '{{ percent }}' | |
transition: '{{ transition|float(0.5) or 0.5 }}' | |
hs_color: '{{ target_hs_color }}' | |
# -- DECREASE BRIGHTNESS | |
- alias: Decrease Brightness | |
conditions: | |
- condition: or | |
conditions: | |
- condition: template | |
value_template: "{{ direction == 'down' }}" | |
- condition: trigger | |
id: | |
- decrease | |
sequence: | |
- action: light.turn_on | |
metadata: {} | |
target: | |
entity_id: '{{ target_entity }}' | |
data: | |
brightness_step: '{{ percent }}' | |
transition: '{{ transition|float(0.5) or 0.5 }}' | |
hs_color: '{{ target_hs_color }}' | |
# -- POST-RUN | |
- condition: template | |
value_template: >- | |
{{ (direction is defined and direction != 'other') }} | |
- if: | |
- condition: template | |
value_template: >- | |
{{ (percent is defined and percent != False and percent|float(0.0) > 0) }} | |
then: | |
- action: light.turn_on | |
metadata: {} | |
target: | |
entity_id: '{{ all_area_entities }}' | |
data: | |
transition: '{{ (transition|float(0.5) or 0.5) * 1.5 }}' | |
hs_color: '{{ target_hs_color }}' | |
else: | |
- if: | |
- condition: template | |
value_template: >- | |
{{ (percent is defined and percent|string|lower != 'false' and percent|float(0.0) == 0) }} | |
then: | |
- action: light.turn_off | |
metadata: {} | |
target: | |
entity_id: '{{ all_area_entities }}' | |
data: | |
transition: '{{ (transition|float(0.5) or 0.5) * 1.25 }}' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment