Forked from amrutprabhu/zha_moes_smart_knob_lights.yaml
Last active
March 8, 2025 11:37
-
-
Save lpt2007/96dbe910a67bfa248aafc3b4d87b1e44 to your computer and use it in GitHub Desktop.
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: Knob for controlling lights | |
description: ' | |
You can set functions for a single press. This allows you to assign, e.g., a scene | |
or anything else. | |
Rotating left/right will change the brightness smoothly of the selected light. | |
Not all functionality of the device is available at time of writing, e.g. double | |
press, long press and press and rotate. | |
Original blueprint by seamus65 (https://gist.github.com/seamus65/939a147634942dd885c8704334627f93). | |
Improved by GonzaloAlbito (https://gist.github.com/gonzaloalbito/3dc06702e941e08298ea9bfade731731). | |
Updated further by amrutprabhu(https://gist.github.com/amrutprabhu/e852130d5a608d1f4b957a3aa5b27a4e) | |
Version 2023-12-03. | |
last changed by elits: 2025-03-08' | |
domain: automation | |
input: | |
remote: | |
name: Remote | |
description: Select the device you want to use as a remote | |
selector: | |
device: | |
multiple: false | |
light: | |
name: Light(s) | |
description: The light(s) to control | |
selector: | |
target: | |
entity: | |
domain: light | |
step_percent: | |
name: Light step | |
description: Light pecent change for each knob step | |
selector: | |
number: | |
mode: slider | |
min: 0 | |
max: 100 | |
unit_of_measurement: "%" | |
default: 20 | |
press_light: | |
name: Pressed light(s) | |
description: The light(s) to control when pressed | |
selector: | |
target: | |
entity: | |
domain: light | |
press_step_percent: | |
name: Pressed light step | |
description: Light pecent change for each knob step when pressed | |
selector: | |
number: | |
mode: slider | |
min: 0 | |
max: 100 | |
unit_of_measurement: "%" | |
default: 5 | |
single_press: | |
name: Single press | |
description: Action to run on single press | |
default: [] | |
selector: | |
action: {} | |
source_url: https://gist.github.com/gonzaloalbito/3dc06702e941e08298ea9bfade731731 | |
mode: restart | |
max_exceeded: silent | |
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 }}' | |
mode: '{% if command != ''toggle'' %} {{ trigger.event.data.args[0] }} {% endif %}' | |
steps: '{% if command != ''toggle'' %} {{ (trigger.event.data.args[1] / 12.5 ) | int }} {% endif %}' | |
step_percent: !input step_percent | |
press_step_percent: !input press_step_percent | |
- choose: | |
- conditions: | |
- '{{ cluster_id == 6 }}' | |
- '{{ endpoint_id == 1 }}' | |
- '{{ command == ''toggle'' }}' | |
sequence: !input single_press | |
- conditions: | |
- '{{ cluster_id == 8 }}' | |
- '{{ endpoint_id == 1 }}' | |
- '{{ command == ''step'' }}' | |
- '{{ mode == ''StepMode.Up'' }}' | |
sequence: | |
- repeat: | |
while: | |
- condition: template | |
value_template: '{{ repeat.index < 2 }}' | |
sequence: | |
- service_template: light.turn_on | |
target: !input light | |
data_template: | |
brightness_step_pct: '{{ step_percent * steps }}' | |
transition: 0.5 | |
- conditions: | |
- '{{ cluster_id == 8 }}' | |
- '{{ endpoint_id == 1 }}' | |
- '{{ command == ''step'' }}' | |
- '{{ mode == ''StepMode.Down'' }}' | |
sequence: | |
- repeat: | |
while: | |
- condition: template | |
value_template: '{{ repeat.index < 2 }}' | |
sequence: | |
- service_template: light.turn_on | |
target: !input light | |
data_template: | |
brightness_step_pct: '-{{ step_percent * steps }}' | |
transition: 0.5 | |
- conditions: | |
- '{{ cluster_id == 768 }}' | |
- '{{ endpoint_id == 1 }}' | |
- '{{ command == ''step_color_temp'' }}' | |
- '{{ mode == ''StepMode.Up'' }}' | |
sequence: | |
- repeat: | |
while: | |
- condition: template | |
value_template: '{{ repeat.index < 2 }}' | |
sequence: | |
- service_template: light.turn_on | |
target: !input press_light | |
data_template: | |
brightness_step_pct: '{{ press_step_percent * steps }}' | |
transition: 0.5 | |
- conditions: | |
- '{{ cluster_id == 768 }}' | |
- '{{ endpoint_id == 1 }}' | |
- '{{ command == ''step_color_temp'' }}' | |
- '{{ mode == ''StepMode.Down'' }}' | |
sequence: | |
- repeat: | |
while: | |
- condition: template | |
value_template: '{{ repeat.index < 2 }}' | |
sequence: | |
- service_template: light.turn_on | |
target: !input press_light | |
data_template: | |
brightness_step_pct: '-{{ press_step_percent * steps }}' | |
transition: 0.5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment