180 lines
5.7 KiB
YAML
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: []
|