Skip to content

Instantly share code, notes, and snippets.

@PaulAntonDeen
Created October 31, 2021 15:05
Show Gist options
  • Select an option

  • Save PaulAntonDeen/4089539eb42f7bcf11a945630c38fec4 to your computer and use it in GitHub Desktop.

Select an option

Save PaulAntonDeen/4089539eb42f7bcf11a945630c38fec4 to your computer and use it in GitHub Desktop.
blueprint:
name: ZHA - Ecodim, 4 Channel remote
description: 'Control any light using the Ecodim remote on ZHA'
domain: automation
input:
remote:
name: Remote controller
description: Remote to use
selector:
device:
integration: zha
manufacturer: EcoDim
model: ED-10014
light_1:
name: Light row 1
description: The lights that will be controlled with row 1
selector:
target:
entity:
domain: light
light_2:
name: Light row 2
description: The lights that will be controlled with row 2
selector:
target:
entity:
domain: light
light_3:
name: Light row 3
description: The lights that will be controlled with row 3
selector:
target:
entity:
domain: light
light_4:
name: Light row 4
description: The lights that will be controlled with row 4
selector:
target:
entity:
domain: light
step_size:
name: Step Size
description: The % step each dimming step takes
default: 10
selector:
number:
min: 5
max: 25
unit_of_measurement: '%'
step_delay:
name: Step Delay
description: The time between dimming steps (ms)
default: 1000
selector:
number:
min: 100
max: 2000
unit_of_measurement: 'milliseconds'
source_url: https://gist.github.com/ronaldt80/85b9119a8f36bfca19a7011a12a9d2da
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 }}'
args: '{{ trigger.event.data.args }}'
step_size: !input 'step_size'
- choose:
- conditions:
- "{{ command == 'on' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 1 }}"
sequence:
- service: light.turn_on
target: !input 'light_1'
data:
transition: 1
- conditions:
- "{{ command == 'off' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 1 }}"
sequence:
- service: light.turn_off
target: !input 'light_1'
data:
transition: 1
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 1 }}"
- "{{ args == [0, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_1'
data:
transition: 1
brightness_step_pct: !input 'step_size'
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 1 }}"
- "{{args == [1, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_1'
data:
transition: 1
brightness_step_pct: "{{ step_size * -1 }}"
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'stop' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 1 }}"
sequence:
- service: light.turn_on
target: !input 'light_1'
- conditions:
- "{{ command == 'on' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 2 }}"
sequence:
- service: light.turn_on
target: !input 'light_2'
data:
transition: 1
- conditions:
- "{{ command == 'off' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 2 }}"
sequence:
- service: light.turn_off
target: !input 'light_2'
data:
transition: 1
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 2 }}"
- "{{ args == [0, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_2'
data:
transition: 1
brightness_step_pct: !input 'step_size'
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 2 }}"
- "{{args == [1, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_2'
data:
transition: 1
brightness_step_pct: "{{ step_size * -1 }}"
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'stop' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 2 }}"
sequence:
- service: light.turn_on
target: !input 'light_2'
- conditions:
- "{{ command == 'on' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 3 }}"
sequence:
- service: light.turn_on
target: !input 'light_3'
data:
transition: 1
- conditions:
- "{{ command == 'off' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 3 }}"
sequence:
- service: light.turn_off
target: !input 'light_3'
data:
transition: 1
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 3 }}"
- "{{ args == [0, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_3'
data:
transition: 1
brightness_step_pct: !input 'step_size'
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 3 }}"
- "{{args == [1, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_3'
data:
transition: 1
brightness_step_pct: "{{ step_size * -1 }}"
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'stop' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 3 }}"
sequence:
- service: light.turn_on
target: !input 'light_3'
- conditions:
- "{{ command == 'on' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 4 }}"
sequence:
- service: light.turn_on
target: !input 'light_4'
data:
transition: 1
- conditions:
- "{{ command == 'off' }}"
- "{{ cluster_id == 6 }}"
- "{{ endpoint_id == 4 }}"
sequence:
- service: light.turn_off
target: !input 'light_4'
data:
transition: 1
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 4 }}"
- "{{ args == [0, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_4'
data:
transition: 1
brightness_step_pct: !input 'step_size'
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'move_with_on_off' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 4 }}"
- "{{args == [1, 50]}}"
sequence:
repeat:
while:
- condition: template
value_template: "{{ repeat.index < (100 / step_size)|int }}"
sequence:
- service: light.turn_on
target: !input 'light_4'
data:
transition: 1
brightness_step_pct: "{{ step_size * -1 }}"
- delay:
milliseconds: !input 'step_delay'
- conditions:
- "{{ command == 'stop' }}"
- "{{ cluster_id == 8 }}"
- "{{ endpoint_id == 4 }}"
sequence:
- service: light.turn_on
target: !input 'light_4'
@antonov124

Copy link
Copy Markdown

Hello Paul, is it possible to change the code from ZHA to Z2M?

@PaulAntonDeen

PaulAntonDeen commented May 24, 2023 via email

Copy link
Copy Markdown
Author

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