Forked from nickknissen/EnOcean PTM 215Z (Friends of Hue) switch.yaml
Last active
January 4, 2023 19:09
-
-
Save samuolis/ab65cb3003daaecae3a9f449eb9e59b6 to your computer and use it in GitHub Desktop.
EnOcean PTM 215Z (Friends of Hue) switch
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: Controller - EnOcean PTM 215Z (Friends of Hue) switch | |
description: 'Controller automation for executing press/hold/release actions triggered by | |
EnOcean PTM 215Z (Friends of Hue) switch.' | |
domain: automation | |
input: | |
controller_entity: | |
name: (Zigbee2MQTT) Controller Entity | |
description: The action sensor of the controller to use for the automation. | |
default: '' | |
selector: | |
entity: | |
domain: sensor | |
hold_delay: | |
name: Hold delay | |
description: If the button has been held more than the configured Hold delay, the corresponding held action is triggered. | |
default: 500 | |
selector: | |
number: | |
min: 100.0 | |
max: 1000.0 | |
unit_of_measurement: milliseconds | |
mode: box | |
step: 10.0 | |
button_1_pressed: | |
name: Button 1 Pressed | |
description: Action to run, when button 1 is pressed. | |
default: [] | |
selector: | |
action: {} | |
button_1_held: | |
name: Button 1 Held | |
description: Action to run, when the button 1 is held. | |
default: [] | |
selector: | |
action: {} | |
button_1_released: | |
name: Button 1 released | |
description: Action to run, when the button 1 is released. | |
default: [] | |
selector: | |
action: {} | |
button_2_pressed: | |
name: Button 2 Pressed | |
description: Action to run, when the button 2 pressed. | |
default: [] | |
selector: | |
action: {} | |
button_2_held: | |
name: Button 2 Held | |
description: Action to run, when the button 2 is held. | |
default: [] | |
selector: | |
action: {} | |
button_2_released: | |
name: Button 2 released | |
description: Action to run, when the button 2 is released. | |
default: [] | |
selector: | |
action: {} | |
button_3_pressed: | |
name: Button 3 Pressed | |
description: Action to run, when the button 3 is pressed. | |
default: [] | |
selector: | |
action: {} | |
button_3_held: | |
name: Button 3 Held | |
description: Action to run, when the button 3 is held. | |
default: [] | |
selector: | |
action: {} | |
button_3_released: | |
name: Button 3 released | |
description: Action to run, when the button 3 is released. | |
default: [] | |
selector: | |
action: {} | |
button_4_pressed: | |
name: Button 4 Pressed | |
description: Action to run, when the button 4 is pressed. | |
default: [] | |
selector: | |
action: {} | |
button_4_held: | |
name: Button 4 Held | |
description: Action to run, when the button 4 is held. | |
default: [] | |
selector: | |
action: {} | |
button_4_released: | |
name: Button 4 released | |
description: Action to run, when the button 4 is released. | |
default: [] | |
selector: | |
action: {} | |
button_1_and_3_pressed: | |
name: Button 1 and 3 Pressed | |
description: Action to run, when the button 1 and 3 is pressed. | |
default: [] | |
selector: | |
action: {} | |
button_1_and_3_held: | |
name: Button 1 and 3 Held | |
description: Action to run, when the button 1 and 3 is held. | |
default: [] | |
selector: | |
action: {} | |
button_1_and_3_released: | |
name: Button 1 and 3 released | |
description: Action to run, when the button 1 and 3 is released. | |
default: [] | |
selector: | |
action: {} | |
button_2_and_4_pressed: | |
name: Button 2 and 4 Pressed | |
description: Action to run, when the button 2 and 4 is pressed. | |
default: [] | |
selector: | |
action: {} | |
button_2_and_4_held: | |
name: Button 2 and 4 Held | |
description: Action to run, when the button 2 and 4 is held. | |
default: [] | |
selector: | |
action: {} | |
button_2_and_4_released: | |
name: Button 2 and 4 released | |
description: Action to run, when the button 2 and 4 is released. | |
default: [] | |
selector: | |
action: {} | |
mode: single | |
max_exceeded: silent | |
trigger: | |
- platform: event | |
event_type: state_changed | |
event_data: | |
entity_id: !input 'controller_entity' | |
condition: '{{ trigger.event.data.new_state.state not in ["","None"] }}' | |
action: | |
- variables: | |
trigger_action: '{{ trigger.event.data.new_state.state }}' | |
- choose: | |
- conditions: '{{ "press_" | string in trigger_action }}' | |
sequence: | |
- wait_for_trigger: | |
- platform: state | |
entity_id: !input 'controller_entity' | |
to: "release_1" | |
- platform: state | |
entity_id: !input 'controller_entity' | |
to: "release_2" | |
- platform: state | |
entity_id: !input 'controller_entity' | |
to: "release_3" | |
- platform: state | |
entity_id: !input 'controller_entity' | |
to: "release_4" | |
- platform: state | |
entity_id: !input 'controller_entity' | |
to: "release_1_and_3" | |
- platform: state | |
entity_id: !input 'controller_entity' | |
to: "release_2_and_4" | |
timeout: | |
milliseconds: !input 'hold_delay' | |
- choose: | |
- conditions: '{{ trigger_action == "press_1" and wait.trigger != None }}' | |
sequence: !input 'button_1_pressed' | |
- conditions: '{{ trigger_action == "press_2" and wait.trigger != None }}' | |
sequence: !input 'button_2_pressed' | |
- conditions: '{{ trigger_action == "press_3" and wait.trigger != None }}' | |
sequence: !input 'button_3_pressed' | |
- conditions: '{{ trigger_action == "press_4" and wait.trigger != None }}' | |
sequence: !input 'button_4_pressed' | |
- conditions: '{{ trigger_action == "press_1_and_3" and wait.trigger != None }}' | |
sequence: !input 'button_1_and_3_pressed' | |
- conditions: '{{ trigger_action == "press_2_and_4" and wait.trigger != None }}' | |
sequence: !input 'button_2_and_4_pressed' | |
- conditions: '{{ trigger_action == "press_1" and wait.trigger == None }}' | |
sequence: !input 'button_1_held' | |
- conditions: '{{ trigger_action == "press_2" and wait.trigger == None }}' | |
sequence: !input 'button_2_held' | |
- conditions: '{{ trigger_action == "press_3" and wait.trigger == None }}' | |
sequence: !input 'button_3_held' | |
- conditions: '{{ trigger_action == "press_4" and wait.trigger == None }}' | |
sequence: !input 'button_4_held' | |
- conditions: '{{ trigger_action == "press_1_and_3" and wait.trigger == None }}' | |
sequence: !input 'button_1_and_3_held' | |
- conditions: '{{ trigger_action == "press_2_and_4" and wait.trigger == None }}' | |
sequence: !input 'button_2_and_4_held' | |
- conditions: '{{ "release_" | string in trigger_action }}' | |
sequence: | |
- choose: | |
- conditions: '{{ trigger_action == "release_1" }}' | |
sequence: !input 'button_1_released' | |
- conditions: '{{ trigger_action == "release_2" }}' | |
sequence: !input 'button_2_released' | |
- conditions: '{{ trigger_action == "release_3" }}' | |
sequence: !input 'button_3_released' | |
- conditions: '{{ trigger_action == "release_4" }}' | |
sequence: !input 'button_4_released' | |
- conditions: '{{ trigger_action == "release_1_and_3" }}' | |
sequence: !input 'button_1_and_3_released' | |
- conditions: '{{ trigger_action == "release_2_and_4" }}' | |
sequence: !input 'button_2_and_4_released' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment