Created
December 9, 2021 07:31
-
-
Save nickknissen/cecd1d6260068f886c565427059c3a0a to your computer and use it in GitHub Desktop.
EnOcean PTM 215Z (Friends of Hue) switch
This file contains 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: {} | |
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" | |
timeout: | |
milliseconds: !input 'hold_delay' | |
# - choose: | |
# - conditions: '{{ wait.trigger != None }}' | |
# sequence: | |
# - service: logbook.log | |
# data: | |
# name: Button Id | |
# message: '{{ trigger_action }} - press action' | |
# - conditions: '{{ wait.trigger == None }}' | |
# sequence: | |
# - service: logbook.log | |
# data: | |
# name: Button Id | |
# message: '{{ trigger_action }} - hold action' | |
- 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 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: '{{ "release_" | string in trigger_action }}' | |
sequence: | |
# - service: logbook.log | |
# data: | |
# name: Button Id | |
# message: '{{ trigger_action }} - release action' | |
- 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' |
Love it!! 💗
If you some day manage to do double press, it would be awesome.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Excellent. Thank you so much for sharing. If you want more people to be helped, adding Niko to the title will make it searchable for those too.
Question, I am new to HA but have found also with Philips Hue Switch and others that you cannot keep the button down to increase/decrease, but have to release for each step to turn the volume up/ down step by step only and not continyesly. Unlike using HUE. Or is it just me?
Also new in Blueprints: If I wanted to add the additional combinations (1+3, 1+4, 2+3 and 2+4) is it as easy as to just copy paste your commands and replacing with the above combos? They are visible entities.
Thanks again for sharing!