Skip to content

Instantly share code, notes, and snippets.

@seamus65
Last active April 18, 2024 01:45
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 15 You must be signed in to fork a gist
  • Save seamus65/939a147634942dd885c8704334627f93 to your computer and use it in GitHub Desktop.
Save seamus65/939a147634942dd885c8704334627f93 to your computer and use it in GitHub Desktop.
blueprint:
name: ZHA - Moes Smart Knob for lights
description: 'Control lights with a Moes Smart Knob.
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.'
domain: automation
input:
remote:
name: Remote
description: Moes Knob to use
selector:
device:
integration: zha
manufacturer: _TZ3000_4fjiwweb
model: TS004F
light:
name: Light(s)
description: The light(s) to control
selector:
target:
entity:
domain: light
single_press:
name: Single press
description: Action to run on single press
default: []
selector:
action: {}
source_url: https://gist.github.com/seamus65/939a147634942dd885c8704334627f93
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 }}'
args: '{% if trigger.event.data.args[0] == 0 %} 0 {% elif trigger.event.data.args[0] == 1 %} 1 {% elif trigger.event.data.args[0] == 3 %} 3 {% endif %}'
- choose:
- conditions:
- '{{ command == ''toggle'' }}'
- '{{ cluster_id == 6 }}'
sequence: !input 'single_press'
- conditions:
- '{{ command == ''step'' }}'
- '{{ cluster_id == 8 }}'
- '{{ args == 0 }}'
sequence:
- repeat:
while:
- condition: template
value_template: "{{ repeat.index < 2 }}"
sequence:
- service_template: light.turn_on
target: !input 'light'
data_template:
brightness_step_pct: 5
transition: 0.5
- conditions:
- '{{ command == ''step'' }}'
- '{{ cluster_id == 8 }}'
- '{{ args == 1 }}'
sequence:
- repeat:
while:
- condition: template
value_template: "{{ repeat.index < 2 }}"
sequence:
- service_template: light.turn_on
target: !input 'light'
data_template:
brightness_step_pct: -5
transition: 0.5
- conditions:
- '{{ command == ''step_color_temp'' }}'
- '{{ cluster_id == 768 }}'
- '{{ args == 1 }}'
sequence:
- repeat:
while:
- condition: template
value_template: "{{ repeat.index < 2 }}"
sequence:
- service_template: light.turn_on
target: !input 'light'
data_template:
brightness_step_pct: 20
transition: 0.5
- conditions:
- '{{ command == ''step_color_temp'' }}'
- '{{ cluster_id == 768 }}'
- '{{ args == 3 }}'
sequence:
- repeat:
while:
- condition: template
value_template: "{{ repeat.index < 2 }}"
sequence:
- service_template: light.turn_on
target: !input 'light'
data_template:
brightness_step_pct: -20
transition: 0.5
@skippengs
Copy link

I managed to change the color temperature with a click and rotate using your code as a base. Link if you’re interested

@EarMaster
Copy link

I removed line 20

          manufacturer: _TZ3000_4fjiwweb

because my Moes Smart Knob registers with the manufacturer's code _TZ3000_qja6nq5z (but with the same model number). This prevented me from selecting it as device in the automation.

https://gist.github.com/EarMaster/0e55c920075ce047a123097c8bcb8abb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment