You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
394 lines
14 KiB
394 lines
14 KiB
blueprint:
|
|
name: IKEA Rodret Triple Click with Click/Hold Functionality
|
|
description: "
|
|
IKEA Rodret Dimmer Remote
|
|
|
|
Only for use with [ZHA]
|
|
(https://www.home-assistant.io/integrations/zha/)
|
|
|
|
Available Controls:
|
|
|
|
- Single Click the **on** or **off** buttons
|
|
- Double Click the **on** or **off** buttons
|
|
- Triple Click the **on** or **off** buttons
|
|
- Hold the **on** or **off** buttons
|
|
- Click then Hold the **on** or **off** buttons
|
|
|
|
"
|
|
source_url: https://git.vanderbye.stream/andrew.vanderbye/HA_Blueprints/raw/branch/main/new_rodret.yaml
|
|
domain: automation
|
|
input:
|
|
# REMOTE DEVICE
|
|
remote_device:
|
|
name: Remote
|
|
description: IKEA Rodret dimmer to use
|
|
default: ""
|
|
selector:
|
|
device:
|
|
filter:
|
|
integration: zha
|
|
manufacturer: IKEA of Sweden
|
|
model: RODRET Dimmer
|
|
multiple: false
|
|
# CLICK & HOLD OPTIONS
|
|
on_single_click_action:
|
|
name: On - Single Click Action
|
|
description: Choose action(s) to run when **on** button is clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
on_double_click_action:
|
|
name: On - Double Click Action
|
|
description: Choose action(s) to run when **on** button is double clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
on_triple_click_action:
|
|
name: On - Triple Click Action
|
|
description: Choose action(s) to run when **on** button is triple clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
on_hold_action:
|
|
name: On - Hold Action
|
|
description: Choose action(s) to run when **on** button is held
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
on_click_hold_action:
|
|
name: On - Click Hold Action
|
|
description: Choose action(s) to run when **on** button is held after being clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
off_single_click_action:
|
|
name: Off - Single Click Action
|
|
description: Choose action(s) to run when **off** button is clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
off_double_click_action:
|
|
name: Off - Double Click Action
|
|
description: Choose action(s) to run when **off** button is double clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
off_triple_click_action:
|
|
name: Off - Triple Click Action
|
|
description: Choose action(s) to run when **off** button is triple clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
off_hold_action:
|
|
name: Off - Hold Action
|
|
description: Choose action(s) to run when **off** button is held
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
off_click_hold_action:
|
|
name: Off - Click Hold Action
|
|
description: Choose action(s) to run when **off** button is held after being clicked
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
# HELPERS
|
|
helper_multi_click_delay:
|
|
name: Helper - Multi Click Delay
|
|
description: Max time (in milliseconds) between clicks. 500ms min to allow for click/hold event.
|
|
default: 500
|
|
selector:
|
|
number:
|
|
unit_of_measurement: milliseconds
|
|
min: 100.0
|
|
max: 5000.0
|
|
step: 10.0
|
|
mode: slider
|
|
helper_hold_max_loops:
|
|
name: Helper - Max Loops
|
|
description: Maximum Number of Loops with **Hold** action
|
|
default: 20
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 1000.0
|
|
step: 1.0
|
|
mode: slider
|
|
helper_hold_loop_delay:
|
|
name: Helper - Hold Action Delay
|
|
description: Delay between looped repeats of **hold** action
|
|
default: 250
|
|
selector:
|
|
number:
|
|
unit_of_measurement: milliseconds
|
|
min: 100.0
|
|
max: 5000.0
|
|
step: 10.0
|
|
mode: slider
|
|
mode: single
|
|
max_exceeded: silent
|
|
trigger_variables:
|
|
zha_remote: !input remote_device
|
|
trigger:
|
|
# ON CLICK
|
|
- platform: event
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "on"
|
|
cluster_id: 6
|
|
endpoint_id: 1
|
|
id: on-click-zha
|
|
# ON HOLD
|
|
- platform: event
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "move_with_on_off"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
args: [0, 83]
|
|
id: on-hold-zha
|
|
# OFF CLICK
|
|
- platform: event
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "off"
|
|
cluster_id: 6
|
|
endpoint_id: 1
|
|
id: off-click-zha
|
|
# OFF HOLD
|
|
- platform: event
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "move"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
args: [1, 83, 0, 0]
|
|
id: off-hold-zha
|
|
action:
|
|
- choose:
|
|
- conditions: # ON CLICK ENTRY POINT
|
|
- condition: trigger
|
|
id:
|
|
- on-click-zha
|
|
sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # ON DOUBLE CLICK TRIGGER
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "on"
|
|
cluster_id: 6
|
|
endpoint_id: 1
|
|
id: on-double-click
|
|
- platform: event # ON CLICK HOLD TRIGGER
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "move_with_on_off"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
args: [0, 83]
|
|
id: on-click-hold
|
|
timeout:
|
|
milliseconds: !input helper_multi_click_delay
|
|
continue_on_timeout: true
|
|
- choose:
|
|
- conditions: # ON SINGLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger == none }}'
|
|
sequence: !input on_single_click_action
|
|
- conditions: # ON DOUBLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "on-double-click" }}'
|
|
sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # ON TRIPLE CLICK TRIGGER
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "on"
|
|
cluster_id: 6
|
|
endpoint_id: 1
|
|
id: on-triple-click
|
|
timeout:
|
|
milliseconds: !input helper_multi_click_delay
|
|
continue_on_timeout: true
|
|
- choose:
|
|
- conditions: # ON DOUBLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger == none }}'
|
|
sequence: !input on_double_click_action
|
|
- conditions: # ON TRIPLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "on-triple-click" }}'
|
|
sequence: !input on_triple_click_action
|
|
# !input on_double_click_action
|
|
- conditions: # ON CLICK HOLD ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "on-click-hold" }}'
|
|
sequence: # !input on_click_hold_action
|
|
- repeat:
|
|
count: !input helper_hold_max_loops
|
|
sequence:
|
|
- parallel:
|
|
- sequence: !input on_click_hold_action
|
|
- sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # ON BUTTON RELEASE
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "stop_with_on_off"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
id: on-click-hold-release
|
|
timeout:
|
|
milliseconds: !input helper_hold_loop_delay
|
|
continue_on_timeout: true
|
|
- if:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "on-click-hold-release" }}'
|
|
then:
|
|
- stop: button released
|
|
- conditions: # ON HOLD ENTRY POINT
|
|
- condition: trigger
|
|
id:
|
|
- on-hold-zha
|
|
sequence:
|
|
- repeat:
|
|
count: !input helper_hold_max_loops
|
|
sequence:
|
|
- parallel:
|
|
- sequence: !input on_hold_action
|
|
- sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # ON BUTTON RELEASE
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "stop_with_on_off"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
id: on-hold-release
|
|
timeout:
|
|
milliseconds: !input helper_hold_loop_delay
|
|
continue_on_timeout: true
|
|
- if:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "on-hold-release" }}'
|
|
then:
|
|
- stop: button released
|
|
- conditions: # OFF CLICK ENTRY POINT
|
|
- condition: trigger
|
|
id:
|
|
- off-click-zha
|
|
sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # OFF DOUBLE CLICK TRIGGER
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "off"
|
|
cluster_id: 6
|
|
endpoint_id: 1
|
|
id: off-double-click
|
|
- platform: event # OFF CLICK HOLD TRIGGER
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "move"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
args: [1, 83, 0, 0]
|
|
id: off-click-hold
|
|
timeout:
|
|
milliseconds: !input helper_multi_click_delay
|
|
continue_on_timeout: true
|
|
- choose:
|
|
- conditions: # OFF SINGLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger == none }}'
|
|
sequence: !input off_single_click_action
|
|
- conditions: # OFF DOUBLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "off-double-click" }}'
|
|
sequence: # !input off_double_click_action
|
|
- wait_for_trigger:
|
|
- platform: event # OFF TRIPLE CLICK TRIGGER
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "off"
|
|
cluster_id: 6
|
|
endpoint_id: 1
|
|
id: off-triple-click
|
|
timeout:
|
|
milliseconds: !input helper_multi_click_delay
|
|
continue_on_timeout: true
|
|
- choose:
|
|
- conditions: # OFF DOUBLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger == none }}'
|
|
sequence: !input off_double_click_action
|
|
- conditions: # OFF TRIPLE CLICK ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "off-triple-click" }}'
|
|
sequence: !input off_triple_click_action
|
|
- conditions: # OFF CLICK HOLD ACTION
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "off-click-hold" }}'
|
|
sequence: # !input off_click_hold_action
|
|
- repeat:
|
|
count: !input helper_hold_max_loops
|
|
sequence:
|
|
- parallel:
|
|
- sequence: !input off_click_hold_action
|
|
- sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # OFF BUTTON RELEASE
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "stop_with_on_off"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
id: off-click-hold-release
|
|
timeout:
|
|
milliseconds: !input helper_hold_loop_delay
|
|
continue_on_timeout: true
|
|
- if:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "off-click-hold-release" }}'
|
|
then:
|
|
- stop: button released
|
|
- conditions: # OFF HOLD ENTRY POINT
|
|
- condition: trigger
|
|
id:
|
|
- off-hold-zha
|
|
sequence:
|
|
- repeat:
|
|
count: !input helper_hold_max_loops
|
|
sequence:
|
|
- parallel:
|
|
- sequence: !input off_hold_action
|
|
- sequence:
|
|
- wait_for_trigger:
|
|
- platform: event # OFF BUTTON RELEASE
|
|
event_type: zha_event
|
|
event_data:
|
|
device_id: "{{ zha_remote }}"
|
|
command: "stop_with_on_off"
|
|
cluster_id: 8
|
|
endpoint_id: 1
|
|
id: off-hold-release
|
|
timeout:
|
|
milliseconds: !input helper_hold_loop_delay
|
|
continue_on_timeout: true
|
|
- if:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.id == "off-hold-release" }}'
|
|
then:
|
|
- stop: button released |