Instantly share code, notes, and snippets.
Home Assistant - Blueprint - ZHA - IKEA TRADFRI - 5 Button Remote - Color Lights
This file contains 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
--- | |
# This automation simulates the use of the IKEA TRADFRI Remote control | |
# connected through ZHA. | |
# | Button | Action | | |
# | -------- | ------------------- | | |
# | Power | Toggle the light | | |
# | Dim-Up | Increase brightness | | |
# | Dim-Down | Decrease brightness | | |
# | Right | Change color | | |
# | Left | Change saturation | | |
blueprint: | |
source_url: https://github.com/niro1987/homeassistant-config/blob/main/blueprints/automation/niro1987/zha_ikea_tradfri_5button_remote_color.yaml | |
name: ZHA - IKEA TRADFRI - 5 Button Remote - Color Lights | |
description: >- | |
This automation simulates the use of the IKEA TRADFRI 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: | |
integration: zha | |
manufacturer: IKEA of Sweden | |
model: TRADFRI remote control | |
light: | |
name: Light | |
description: Select the light entity you wish to control. | |
selector: | |
entity: | |
domain: light | |
mode: restart | |
max_exceeded: silent | |
variables: | |
var_light: !input light | |
trigger: | |
- platform: event | |
event_type: zha_event | |
event_data: | |
device_id: !input remote | |
action: | |
- choose: | |
# Short-Press on the power button. | |
- conditions: | |
- condition: template | |
value_template: '{{ trigger.event.data.command == "toggle" }}' | |
sequence: | |
- service: light.toggle | |
target: | |
entity_id: !input light | |
# Long-Press on the power button. | |
- conditions: | |
- condition: template | |
value_template: '{{ trigger.event.data.command == "move_to_level_with_on_off" }}' | |
sequence: | |
- service: light.turn_on | |
target: | |
entity_id: !input light | |
data: | |
brightness: 254 | |
hs_color: | |
- 38.222 | |
- 52.941 | |
# Short-Press on the dim-up button. | |
- conditions: | |
- condition: template | |
value_template: '{{ trigger.event.data.command == "step_with_on_off" }}' | |
sequence: | |
- service: light.turn_on | |
target: | |
entity_id: !input light | |
data: | |
brightness_step_pct: 20 | |
transition: 0.5 | |
# Long-Press on the dim-up button. | |
- 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: 0.5 | |
- delay: | |
milliseconds: 500 | |
# Short-Press on the dim-down button. | |
- conditions: | |
- condition: template | |
value_template: '{{ trigger.event.data.command == "step" }}' | |
sequence: | |
- service: light.turn_on | |
target: | |
entity_id: !input light | |
data: | |
brightness_step_pct: -20 | |
transition: 0.5 | |
# Long-Press on the dim-down button. | |
- 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: 0.5 | |
- delay: | |
milliseconds: 500 | |
# Short-Press on the color-up button. | |
- 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 %} | |
{{ state_attr(var_light, "hs_color")[0] + 18 - 360 }} | |
{% else %} | |
{{ state_attr(var_light, "hs_color")[0] + 18 }} | |
{% endif %} | |
- '{{ state_attr(var_light, "hs_color")[1] }}' | |
transition: 0.5 | |
# Long-Press on the color-up button. | |
- 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 %} | |
{{ state_attr(var_light, "hs_color")[0] + 18 - 360 }} | |
{% else %} | |
{{ state_attr(var_light, "hs_color")[0] + 18 }} | |
{% endif %} | |
- '{{ state_attr(var_light, "hs_color")[1] }}' | |
transition: 0.5 | |
- delay: | |
milliseconds: 500 | |
# Short-Press on the color-down button. | |
- 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 %} | |
{{ state_attr(var_light, "hs_color")[1] - 20 + 100 }} | |
{% else %} | |
{{ state_attr(var_light, "hs_color")[1] - 20 }} | |
{% endif %} | |
transition: 0.5 | |
# Long-Press on the color-down button. | |
- 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 %} | |
{{ state_attr(var_light, "hs_color")[1] - 10 + 100 }} | |
{% else %} | |
{{ state_attr(var_light, "hs_color")[1] - 10 }} | |
{% endif %} | |
transition: 0.5 | |
- delay: | |
milliseconds: 500 | |
# Any other event will cancel the repeat loops. | |
default: [] |
you're my hero of the day mate, awesome job!
What is the "IEEE" value?? What does IEEE stand for? Why does it look like a MAC adress - If so, what is the MAC adress of the IKEA remote??
This is where you fill in the unique ID of your remote, its kinda the same principal as a mac adres.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What is the "IEEE" value?? What does IEEE stand for? Why does it look like a MAC adress - If so, what is the MAC adress of the IKEA remote??