Last active
June 1, 2024 15:09
-
-
Save agent47nh/d2f113de0d904353af33c42d2ff012de to your computer and use it in GitHub Desktop.
ZHA - IKEA Tradfri ON/OFF Switch (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: ZHA - IKEA Tradfri ON/OFF Switch | |
description: 'Control lights with an IKEA Tradfri ON/OFF Switch (the small square ones), | |
for use with [ZHA](https://www.home-assistant.io/integrations/zha/). | |
Pressing the ON button will turn on the lights at the last set brightness (unless | |
the force brightness is toggled on in the blueprint). | |
Pressing the OFF button will turn the lights off again. | |
Pressing and holding the ON/OFF buttons will change the brightness smoothly and | |
can be pressed and hold until the brightness is satisfactory. | |
This blueprint was adopted from [Malte''s](https://community.home-assistant.io/u/Malte) [ZHA - IKEA four button remote (Styrbar) for lights (E2001, E2002)](https://community.home-assistant.io/t/zha-ikea-four-button-remote-styrbar-for-lights-e2001-e2002/384482) | |
' | |
domain: automation | |
input: | |
remote: | |
name: Remote | |
description: IKEA remote to use | |
selector: | |
device: | |
integration: zha | |
manufacturer: IKEA of Sweden | |
model: TRADFRI on/off switch | |
multiple: false | |
light: | |
name: Light(s) | |
description: The light(s) to control | |
selector: | |
target: | |
entity: | |
- domain: | |
- light | |
force_brightness: | |
name: Force turn on brightness | |
description: Force the brightness to the set level below, when the "on" button | |
on the remote is pushed and lights turn on. | |
default: false | |
selector: | |
boolean: {} | |
brightness: | |
name: Brightness | |
description: Brightness of the light(s) when turning on | |
default: 50 | |
selector: | |
number: | |
min: 0.0 | |
max: 100.0 | |
mode: slider | |
step: 1.0 | |
unit_of_measurement: '%' | |
hold_time: | |
name: Hold Time | |
description: Time between the execution of the brighter/darker actions when | |
holding the brighter/darker button. | |
default: 0.5 | |
selector: | |
number: | |
min: 0.1 | |
max: 2.0 | |
step: 0.1 | |
unit_of_measurement: seconds | |
mode: slider | |
mode: restart | |
max_exceeded: silent | |
variables: | |
force_brightness: !input force_brightness | |
trigger: | |
- platform: event | |
event_type: zha_event | |
event_data: | |
device_id: !input remote | |
action: | |
- variables: | |
command: '{{ trigger.event.data.command }}' | |
cluster_id: '{{ trigger.event.data.cluster_id }}' | |
endpoint_id: '{{ trigger.event.data.endpoint_id }}' | |
args: '{{ trigger.event.data.args }}' | |
- choose: | |
- conditions: | |
- '{{ command == ''on'' }}' | |
- '{{ cluster_id == 6 }}' | |
- '{{ endpoint_id == 1 }}' | |
sequence: | |
- choose: | |
- conditions: '{{ force_brightness }}' | |
sequence: | |
- service: light.turn_on | |
target: !input light | |
data: | |
transition: 1 | |
brightness_pct: !input brightness | |
default: | |
- service: light.turn_on | |
target: !input light | |
data: | |
transition: 1 | |
- conditions: | |
- '{{ command == ''off'' }}' | |
- '{{ cluster_id == 6 }}' | |
- '{{ endpoint_id == 1 }}' | |
sequence: | |
- service: light.turn_off | |
target: !input light | |
data: | |
transition: 1 | |
- conditions: | |
- '{{ command == ''move_with_on_off'' }}' | |
- '{{ cluster_id == 8 }}' | |
- '{{ endpoint_id == 1 }}' | |
sequence: | |
- repeat: | |
count: 10 | |
sequence: | |
- service: light.turn_on | |
target: !input light | |
data: | |
brightness_step_pct: 10 | |
transition: !input hold_time | |
- delay: !input hold_time | |
- conditions: | |
- '{{ command == ''move'' }}' | |
- '{{ cluster_id == 8 }}' | |
- '{{ endpoint_id == 1 }}' | |
sequence: | |
- repeat: | |
count: 10 | |
sequence: | |
- service: light.turn_on | |
target: !input light | |
data: | |
brightness_step_pct: -10 | |
transition: !input hold_time | |
- delay: !input hold_time |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment