parent
bf819df6d2
commit
4e4b40fe0a
@ -0,0 +1,394 @@ |
||||
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/rodret_test.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 |
Loading…
Reference in new issue