Skip to content

Instantly share code, notes, and snippets.

@agent47nh
Last active June 1, 2024 15:09
Show Gist options
  • Save agent47nh/d2f113de0d904353af33c42d2ff012de to your computer and use it in GitHub Desktop.
Save agent47nh/d2f113de0d904353af33c42d2ff012de to your computer and use it in GitHub Desktop.
ZHA - IKEA Tradfri ON/OFF Switch (Blueprint)
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