Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dbara/911b76bb842bf2c76362c0ac9abb443b to your computer and use it in GitHub Desktop.
Save dbara/911b76bb842bf2c76362c0ac9abb443b to your computer and use it in GitHub Desktop.
Home Assistant - Blueprint - Zigbee2MQTT - IKEA TRADFRI - 5 Button Remote - Warm White Lights
---
# This automation simulates the use of the IKEA TRADFRI Remote control
# connected through Zigbee2MQTT.
# | Button | Action |
# | -------- | -------------------- |
# | Power | Toggle the light |
# | Dim-Up | Increase brightness |
# | Dim-Down | Decrease brightness |
# | Right | Increase temperature |
# | Left | Decrease temperature |
blueprint:
source_url: https://github.com/niro1987/homeassistant-config/blob/master/blueprints/automation/niro1987/z2m_ikea_tradfri_5button_remote_white.yaml
name: Zigbee2MQTT - IKEA TRADFRI - 5 Button Remote - Warm White Lights
description: >-
This automation simulates the use of the IKEA TRADFRI Remote control
connected through Zigbee2MQTT.
domain: automation
input:
remote_entity:
name: Remote Sensor Entity
description: The sensor entity created by Zigbee2MQTT
selector:
entity:
domain: sensor
light_entity:
name: Light
description: The light entity to control.
selector:
target:
entity:
domain: light
mode: restart
variables:
var_light_entities: !input light_entity
trigger:
- platform: state
entity_id: !input remote_entity
to:
- "toggle"
- "toggle_hold"
- "brightness_up_click"
- "brightness_down_click"
- "arrow_left_click"
- "arrow_right_click"
- "brightness_up_hold"
- "brightness_down_hold"
- "arrow_left_hold"
- "arrow_right_hold"
- "brightness_up_release"
- "brightness_down_release"
- "arrow_left_release"
- "arrow_right_release"
action:
- choose:
# Short-Press on the power button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "toggle" }}'
sequence:
- service: light.toggle
target: !input light_entity
# Short-Press on the dim-up button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "brightness_up_click" }}'
sequence:
- service: light.turn_on
target: !input light_entity
data:
brightness_step_pct: 25
transition: 0.5
# Short-Press on the dim-down button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "brightness_down_click" }}'
sequence:
- service: light.turn_on
target: !input light_entity
data:
brightness_step_pct: -24
transition: 0.5
# Short-Press on the color-up button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "arrow_left_click" }}'
sequence:
- service: light.turn_on
target: !input light_entity
data:
color_temp: >-
{% if state_attr(var_light_entities.entity_id[0], "color_temp") - 51 < 153 %}
{{ 153 }}
{% else %}
{{ state_attr(var_light_entities.entity_id[0], "color_temp") - 51 }}
{% endif %}
transition: 0.5
# Short-Press on the color-down button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "arrow_right_click" }}'
sequence:
- service: light.turn_on
target: !input light_entity
data:
color_temp: >-
{% if state_attr(var_light_entities.entity_id[0], "color_temp") + 51 > 500 %}
{{ 500 }}
{% else %}
{{ state_attr(var_light_entities.entity_id[0], "color_temp") + 51 }}
{% endif %}
transition: 0.5
# Long-Press on the power button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "toggle_hold" }}'
sequence:
- service: light.turn_on
target: !input light_entity
data:
brightness: 254
color_temp: 400
# Long-Press on the dim-up button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "brightness_up_hold" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target: !input light_entity
data:
brightness_step_pct: 10
transition: 0.5
- delay:
milliseconds: 500
# Long-Press on the dim-down button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "brightness_down_hold" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target: !input light_entity
data:
brightness_step_pct: -9
transition: 0.5
- delay:
milliseconds: 500
# Long-Press on the color-up button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "arrow_left_hold" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target: !input light_entity
data:
color_temp: >-
{% if state_attr(var_light_entities.entity_id[0], "color_temp") - 17 < 153 %}
{{ 153 }}
{% else %}
{{ state_attr(var_light_entities.entity_id[0], "color_temp") - 17 }}
{% endif %}
transition: 0.5
- delay:
milliseconds: 500
# Long-Press on the color-down button.
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == "arrow_right_hold" }}'
sequence:
- repeat:
while: []
sequence:
- service: light.turn_on
target: !input light_entity
data:
color_temp: >-
{% if state_attr(var_light_entities.entity_id[0], "color_temp") + 17 > 500 %}
{{ 500 }}
{% else %}
{{ state_attr(var_light_entities.entity_id[0], "color_temp") + 17 }}
{% endif %}
transition: 0.5
- delay:
milliseconds: 500
# Any other event will cancel the repeat loops.
default: []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment