homeassistant-config/blueprints/automation/niro1987/zha_ikea_tradfri_styrbar_co...

180 lines
5.7 KiB
YAML

blueprint:
source_url: https://github.com/niro1987/homeassistant-config/blob/main/blueprints/automation/niro1987/zha_ikea_tradfri_styrbar_color.yaml
name: ZHA - IKEA TRADFRI - STYRBAR - Color Lights
description: This automation simulates the use of the IKEA TRADFRI STYRBAR remote
control connected through ZHA.
domain: automation
input:
remote:
name: IKEA TRADFRI remote control
description: Select the remote control you wish to use.
selector:
device:
filter:
- integration: zha
manufacturer: IKEA of Sweden
model: Remote Control N2
multiple: false
light:
name: Light
description: Select the light entity you wish to control.
selector:
entity:
filter:
- domain:
- light
multiple: false
speed:
name: Speed
description: The speed in which to update the light when the button is held.
selector:
number:
min: 100.0
max: 1000.0
step: 100.0
unit_of_measurement: milliseconds
mode: slider
default: 500
mode: restart
max_exceeded: silent
variables:
var_light: !input light
var_speed: !input speed
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input remote
action:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "on" }}'
- condition: state
entity_id: !input light
state: 'off'
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness: 254
hs_color:
- 38.222
- 52.941
transition: '{{ (var_speed / 1000)|float }}'
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "move_with_on_off" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness_step_pct: 10
transition: '{{ (var_speed / 1000)|float }}'
- delay:
milliseconds: !input speed
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "off" }}'
sequence:
- service: light.turn_off
target:
entity_id: !input light
data:
transition: '{{ (var_speed / 1000)|float }}'
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "move" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
brightness_step_pct: -10
transition: '{{ (var_speed / 1000)|float }}'
- delay:
milliseconds: !input speed
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "press" }}'
- condition: template
value_template: '{{ trigger.event.data.args == [257,13,0] }}'
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
hs_color:
- '{{ state_attr(var_light, "hs_color")[0] }}'
- "{% if state_attr(var_light, \"hs_color\")[1] - 20 < 0 %}\n {{ state_attr(var_light,
\"hs_color\")[1] - 20 + 100 }}\n{% else %}\n {{ state_attr(var_light, \"hs_color\")[1]
- 20 }}\n{% endif %}"
transition: '{{ (var_speed / 1000)|float }}'
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "hold" }}'
- condition: template
value_template: '{{ trigger.event.data.args == [3329,0] }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
hs_color:
- '{{ state_attr(var_light, "hs_color")[0] }}'
- "{% if state_attr(var_light, \"hs_color\")[1] - 10 < 0 %}\n {{ state_attr(var_light,
\"hs_color\")[1] - 10 + 100 }}\n{% else %}\n {{ state_attr(var_light,
\"hs_color\")[1] - 10 }}\n{% endif %}"
transition: '{{ (var_speed / 1000)|float }}'
- delay:
milliseconds: !input speed
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "press" }}'
- condition: template
value_template: '{{ trigger.event.data.args == [256,13,0] }}'
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
hs_color:
- "{% if state_attr(var_light, \"hs_color\")[0] + 18 > 360 %}\n {{ state_attr(var_light,
\"hs_color\")[0] + 18 - 360 }}\n{% else %}\n {{ state_attr(var_light, \"hs_color\")[0]
+ 18 }}\n{% endif %}"
- '{{ state_attr(var_light, "hs_color")[1] }}'
transition: '{{ (var_speed / 1000)|float }}'
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "hold" }}'
- condition: template
value_template: '{{ trigger.event.data.args == [3328,0] }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target:
entity_id: !input light
data:
hs_color:
- "{% if state_attr(var_light, \"hs_color\")[0] + 18 > 360 %}\n {{ state_attr(var_light,
\"hs_color\")[0] + 18 - 360 }}\n{% else %}\n {{ state_attr(var_light,
\"hs_color\")[0] + 18 }}\n{% endif %}"
- '{{ state_attr(var_light, "hs_color")[1] }}'
transition: '{{ (var_speed / 1000)|float }}'
- delay:
milliseconds: !input speed
default: []