Compare commits
No commits in common. "d32328f1bb73d45febab5a055b2cca6fdc4d9421" and "87868f079ca8b79c4ad4cfd7385b4a33585417aa" have entirely different histories.
d32328f1bb
...
87868f079c
@ -1 +1 @@
|
|||||||
2024.2.5
|
2024.2.1
|
@ -479,7 +479,7 @@
|
|||||||
variables:
|
variables:
|
||||||
message: '{% set t = now().hour %} {% set m = ''Morgen'' if t < 12 else ''Nachmittag''
|
message: '{% set t = now().hour %} {% set m = ''Morgen'' if t < 12 else ''Nachmittag''
|
||||||
if t < 18 else ''Abend'' %} Guten {{m}} Marcus. Draußen sind es {{states(''sensor.aussentemperatur'')}}
|
if t < 18 else ''Abend'' %} Guten {{m}} Marcus. Draußen sind es {{states(''sensor.aussentemperatur'')}}
|
||||||
Grad Celsius und es ist {{now().hour}} Uhr.
|
Grad Celsius und es ist {{states(''sensor.time'')}}
|
||||||
|
|
||||||
'
|
'
|
||||||
mode: single
|
mode: single
|
||||||
@ -777,7 +777,7 @@
|
|||||||
domain: switch
|
domain: switch
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1701774106609'
|
- id: '1701774106609'
|
||||||
alias: IKEA STYRBAR Wohnzimmer
|
alias: Wohnzimmer STYRBAR Moodlight Remote control
|
||||||
description: ''
|
description: ''
|
||||||
use_blueprint:
|
use_blueprint:
|
||||||
path: EPMatt/ikea_e2001_e2002.yaml
|
path: EPMatt/ikea_e2001_e2002.yaml
|
||||||
@ -805,27 +805,6 @@
|
|||||||
action_button_right_short:
|
action_button_right_short:
|
||||||
- service: script.wled_random_palette
|
- service: script.wled_random_palette
|
||||||
data: {}
|
data: {}
|
||||||
action_button_up_long:
|
|
||||||
- service: light.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
brightness_pct: 10
|
|
||||||
target:
|
|
||||||
entity_id: light.wohnzimmer_moodlight
|
|
||||||
action_button_down_long: []
|
|
||||||
action_button_down_double:
|
|
||||||
- service: light.turn_off
|
|
||||||
target:
|
|
||||||
device_id: 9f42805af5b7e423023595390342b9ac
|
|
||||||
data: {}
|
|
||||||
action_button_up_double:
|
|
||||||
- service: light.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
device_id: 9f42805af5b7e423023595390342b9ac
|
|
||||||
button_up_double_press: true
|
|
||||||
button_down_double_press: true
|
|
||||||
- id: '1702588441751'
|
- id: '1702588441751'
|
||||||
alias: 'Awtrix: Kalenderbenachrichtigung TKRZ'
|
alias: 'Awtrix: Kalenderbenachrichtigung TKRZ'
|
||||||
description: ''
|
description: ''
|
||||||
@ -909,52 +888,3 @@
|
|||||||
target:
|
target:
|
||||||
entity_id: humidifier.badezimmer
|
entity_id: humidifier.badezimmer
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1708188056710'
|
|
||||||
alias: IKEA STYRBAR - Moodlight Wohnzimmer
|
|
||||||
description: IKEA STYRBAR - Moodlight Wohnzimmer
|
|
||||||
use_blueprint:
|
|
||||||
path: niro1987/zha_ikea_tradfri_styrbar_color.yaml
|
|
||||||
input:
|
|
||||||
remote: f3b032ad1f3ccc658a7d4588cc0e5c0c
|
|
||||||
light: light.wohnzimmer_moodlight
|
|
||||||
- id: '1708266692742'
|
|
||||||
alias: IKEA E1743 TRÅDFRI On/Off Switch & Dimmer
|
|
||||||
description: Wohnzimmer Leseecke
|
|
||||||
use_blueprint:
|
|
||||||
path: EPMatt/ikea_e1743.yaml
|
|
||||||
input:
|
|
||||||
integration: ZHA
|
|
||||||
controller_device: 5e9fbed0eafa1b1a54fa36195299dc6b
|
|
||||||
helper_last_controller_event: input_text.ikea_on_off_schalter_und_dimmer_wohnzimmer
|
|
||||||
action_button_up_short:
|
|
||||||
- type: turn_on
|
|
||||||
device_id: b45eb0f02b3bd91b097a4d2f225c3244
|
|
||||||
entity_id: 8b66b0d3cd86ec0f5a48fc110f8e45e8
|
|
||||||
domain: switch
|
|
||||||
action_button_down_short:
|
|
||||||
- type: turn_off
|
|
||||||
device_id: b45eb0f02b3bd91b097a4d2f225c3244
|
|
||||||
entity_id: 8b66b0d3cd86ec0f5a48fc110f8e45e8
|
|
||||||
domain: switch
|
|
||||||
action_button_up_double:
|
|
||||||
- type: turn_on
|
|
||||||
device_id: 32d15eec63fe68d5770813d47da53657
|
|
||||||
entity_id: 14edfa97dae4936040b97dc77b171d5f
|
|
||||||
domain: light
|
|
||||||
button_up_double_press: true
|
|
||||||
button_down_double_press: true
|
|
||||||
action_button_down_double:
|
|
||||||
- type: turn_off
|
|
||||||
device_id: 32d15eec63fe68d5770813d47da53657
|
|
||||||
entity_id: 14edfa97dae4936040b97dc77b171d5f
|
|
||||||
domain: light
|
|
||||||
action_button_up_long:
|
|
||||||
- type: turn_on
|
|
||||||
device_id: 98a9eef603f8c8ae6200c4834a3dbf4f
|
|
||||||
entity_id: fdcff3852ecc17099c953da17eb4b8a3
|
|
||||||
domain: light
|
|
||||||
action_button_down_long:
|
|
||||||
- type: turn_off
|
|
||||||
device_id: 98a9eef603f8c8ae6200c4834a3dbf4f
|
|
||||||
entity_id: fdcff3852ecc17099c953da17eb4b8a3
|
|
||||||
domain: light
|
|
||||||
|
@ -1,426 +0,0 @@
|
|||||||
blueprint:
|
|
||||||
name: Controller - IKEA E1743 TRÅDFRI On/Off Switch & Dimmer
|
|
||||||
description: "# Controller - IKEA E1743 TRÅDFRI On/Off Switch & Dimmer\n\nController
|
|
||||||
automation for executing any kind of action triggered by the provided IKEA E1743
|
|
||||||
TRÅDFRI On/Off Switch & Dimmer. Allows to optionally loop an action on a button
|
|
||||||
long press.\nSupports deCONZ, ZHA, Zigbee2MQTT.\n\nAutomations created with this
|
|
||||||
blueprint can be connected with one or more [Hooks](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/hooks)
|
|
||||||
supported by this controller.\nHooks allow to easily create controller-based automations
|
|
||||||
for interacting with media players, lights, covers and more.\nSee the list of
|
|
||||||
[Hooks available for this controller](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/ikea_e1743#available-hooks)
|
|
||||||
for additional details.\n\n\U0001F4D5 Full documentation regarding this blueprint
|
|
||||||
is available [here](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/ikea_e1743).\n\n\U0001F680
|
|
||||||
This blueprint is part of the **[Awesome HA Blueprints](https://epmatt.github.io/awesome-ha-blueprints)
|
|
||||||
project**.\n\nℹ️ Version 2022.08.08\n"
|
|
||||||
source_url: https://github.com/EPMatt/awesome-ha-blueprints/blob/main/blueprints/controllers/ikea_e1743/ikea_e1743.yaml
|
|
||||||
domain: automation
|
|
||||||
input:
|
|
||||||
integration:
|
|
||||||
name: (Required) Integration
|
|
||||||
description: Integration used for connecting the remote with Home Assistant.
|
|
||||||
Select one of the available values.
|
|
||||||
selector:
|
|
||||||
select:
|
|
||||||
options:
|
|
||||||
- deCONZ
|
|
||||||
- ZHA
|
|
||||||
- Zigbee2MQTT
|
|
||||||
custom_value: false
|
|
||||||
multiple: false
|
|
||||||
sort: false
|
|
||||||
controller_device:
|
|
||||||
name: (deCONZ, ZHA) Controller Device
|
|
||||||
description: The controller device to use for the automation. Choose a value
|
|
||||||
only if the remote is integrated with deCONZ, ZHA.
|
|
||||||
default: ''
|
|
||||||
selector:
|
|
||||||
device: {}
|
|
||||||
controller_entity:
|
|
||||||
name: (Zigbee2MQTT) Controller Entity
|
|
||||||
description: The action sensor of the controller to use for the automation.
|
|
||||||
Choose a value only if the remote is integrated with Zigbee2MQTT.
|
|
||||||
default: ''
|
|
||||||
selector:
|
|
||||||
entity:
|
|
||||||
domain:
|
|
||||||
- sensor
|
|
||||||
multiple: false
|
|
||||||
helper_last_controller_event:
|
|
||||||
name: (Required) Helper - Last Controller Event
|
|
||||||
description: Input Text used to store the last event fired by the controller.
|
|
||||||
You will need to manually create a text input entity for this, please read
|
|
||||||
the blueprint Additional Notes for more info.
|
|
||||||
default: ''
|
|
||||||
selector:
|
|
||||||
entity:
|
|
||||||
domain:
|
|
||||||
- input_text
|
|
||||||
multiple: false
|
|
||||||
action_button_up_short:
|
|
||||||
name: (Optional) Up button short press
|
|
||||||
description: Action to run on short up button press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_up_long:
|
|
||||||
name: (Optional) Up button long press
|
|
||||||
description: Action to run on long up button press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_up_release:
|
|
||||||
name: (Optional) Up button release
|
|
||||||
description: Action to run on up button release after long press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_up_double:
|
|
||||||
name: (Optional) Up button double press
|
|
||||||
description: Action to run on double up button press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_down_short:
|
|
||||||
name: (Optional) Down button short press
|
|
||||||
description: Action to run on short down button press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_down_long:
|
|
||||||
name: (Optional) Down button long press
|
|
||||||
description: Action to run on long down button press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_down_release:
|
|
||||||
name: (Optional) Down button release
|
|
||||||
description: Action to run on down button release after long press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
action_button_down_double:
|
|
||||||
name: (Optional) Down button double press
|
|
||||||
description: Action to run on double down button press.
|
|
||||||
default: []
|
|
||||||
selector:
|
|
||||||
action: {}
|
|
||||||
button_up_long_loop:
|
|
||||||
name: (Optional) Up button long press - loop until release
|
|
||||||
description: Loop the up button action until the button is released.
|
|
||||||
default: false
|
|
||||||
selector:
|
|
||||||
boolean: {}
|
|
||||||
button_up_long_max_loop_repeats:
|
|
||||||
name: (Optional) Up button long press - Maximum loop repeats
|
|
||||||
description: Maximum number of repeats for the custom action, when looping is
|
|
||||||
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
|
|
||||||
stop event is not received.
|
|
||||||
default: 500
|
|
||||||
selector:
|
|
||||||
number:
|
|
||||||
min: 1.0
|
|
||||||
max: 5000.0
|
|
||||||
mode: slider
|
|
||||||
step: 1.0
|
|
||||||
button_down_long_loop:
|
|
||||||
name: (Optional) Down button long press - loop until release
|
|
||||||
description: Loop the down button action until the button is released.
|
|
||||||
default: false
|
|
||||||
selector:
|
|
||||||
boolean: {}
|
|
||||||
button_down_long_max_loop_repeats:
|
|
||||||
name: (Optional) Down button long press - Maximum loop repeats
|
|
||||||
description: Maximum number of repeats for the custom action, when looping is
|
|
||||||
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
|
|
||||||
stop event is not received.
|
|
||||||
default: 500
|
|
||||||
selector:
|
|
||||||
number:
|
|
||||||
min: 1.0
|
|
||||||
max: 5000.0
|
|
||||||
mode: slider
|
|
||||||
step: 1.0
|
|
||||||
button_up_double_press:
|
|
||||||
name: (Optional) Expose up button double press event
|
|
||||||
description: Choose whether or not to expose the virtual double press event
|
|
||||||
for the up button. Turn this on if you are providing an action for the up
|
|
||||||
button double press event.
|
|
||||||
default: false
|
|
||||||
selector:
|
|
||||||
boolean: {}
|
|
||||||
button_down_double_press:
|
|
||||||
name: (Optional) Expose down button double press event
|
|
||||||
description: Choose whether or not to expose the virtual double press event
|
|
||||||
for the down button. Turn this on if you are providing an action for the down
|
|
||||||
button double press event.
|
|
||||||
default: false
|
|
||||||
selector:
|
|
||||||
boolean: {}
|
|
||||||
helper_double_press_delay:
|
|
||||||
name: (Optional) Helper - Double Press delay
|
|
||||||
description: Max delay between the first and the second button press for the
|
|
||||||
double press event. Provide a value only if you are using a double press action.
|
|
||||||
Increase this value if you notice that the double press action is not triggered
|
|
||||||
properly.
|
|
||||||
default: 500
|
|
||||||
selector:
|
|
||||||
number:
|
|
||||||
min: 100.0
|
|
||||||
max: 5000.0
|
|
||||||
unit_of_measurement: milliseconds
|
|
||||||
mode: box
|
|
||||||
step: 10.0
|
|
||||||
helper_debounce_delay:
|
|
||||||
name: (Optional) Helper - Debounce delay
|
|
||||||
description: Delay used for debouncing RAW controller events, by default set
|
|
||||||
to 0. A value of 0 disables the debouncing feature. Increase this value if
|
|
||||||
you notice custom actions or linked Hooks running multiple times when interacting
|
|
||||||
with the device. When the controller needs to be debounced, usually a value
|
|
||||||
of 100 is enough to remove all duplicate events.
|
|
||||||
default: 0
|
|
||||||
selector:
|
|
||||||
number:
|
|
||||||
min: 0.0
|
|
||||||
max: 1000.0
|
|
||||||
unit_of_measurement: milliseconds
|
|
||||||
mode: box
|
|
||||||
step: 10.0
|
|
||||||
variables:
|
|
||||||
integration: !input integration
|
|
||||||
button_up_long_loop: !input button_up_long_loop
|
|
||||||
button_up_long_max_loop_repeats: !input button_up_long_max_loop_repeats
|
|
||||||
button_up_double_press: !input button_up_double_press
|
|
||||||
button_down_long_loop: !input button_down_long_loop
|
|
||||||
button_down_long_max_loop_repeats: !input button_down_long_max_loop_repeats
|
|
||||||
button_down_double_press: !input button_down_double_press
|
|
||||||
helper_last_controller_event: !input helper_last_controller_event
|
|
||||||
helper_double_press_delay: !input helper_double_press_delay
|
|
||||||
helper_debounce_delay: !input helper_debounce_delay
|
|
||||||
integration_id: '{{ integration | lower }}'
|
|
||||||
adjusted_double_press_delay: '{{ [helper_double_press_delay - helper_debounce_delay,
|
|
||||||
100] | max }}'
|
|
||||||
actions_mapping:
|
|
||||||
deconz:
|
|
||||||
button_up_short:
|
|
||||||
- '1002'
|
|
||||||
button_up_long:
|
|
||||||
- '1001'
|
|
||||||
button_up_release:
|
|
||||||
- '1003'
|
|
||||||
button_down_short:
|
|
||||||
- '2002'
|
|
||||||
button_down_long:
|
|
||||||
- '2001'
|
|
||||||
button_down_release:
|
|
||||||
- '2003'
|
|
||||||
zha:
|
|
||||||
button_up_short:
|
|
||||||
- 'on'
|
|
||||||
button_up_long:
|
|
||||||
- move_with_on_off_0_83
|
|
||||||
button_up_release:
|
|
||||||
- stop
|
|
||||||
button_down_short:
|
|
||||||
- 'off'
|
|
||||||
button_down_long:
|
|
||||||
- move_1_83
|
|
||||||
button_down_release:
|
|
||||||
- stop
|
|
||||||
zigbee2mqtt:
|
|
||||||
button_up_short:
|
|
||||||
- 'on'
|
|
||||||
button_up_long:
|
|
||||||
- brightness_move_up
|
|
||||||
button_up_release:
|
|
||||||
- brightness_stop
|
|
||||||
button_down_short:
|
|
||||||
- 'off'
|
|
||||||
button_down_long:
|
|
||||||
- brightness_move_down
|
|
||||||
button_down_release:
|
|
||||||
- brightness_stop
|
|
||||||
button_up_short: '{{ actions_mapping[integration_id]["button_up_short"] }}'
|
|
||||||
button_up_long: '{{ actions_mapping[integration_id]["button_up_long"] }}'
|
|
||||||
button_up_release: '{{ actions_mapping[integration_id]["button_up_release"] }}'
|
|
||||||
button_down_short: '{{ actions_mapping[integration_id]["button_down_short"] }}'
|
|
||||||
button_down_long: '{{ actions_mapping[integration_id]["button_down_long"] }}'
|
|
||||||
button_down_release: '{{ actions_mapping[integration_id]["button_down_release"]
|
|
||||||
}}'
|
|
||||||
integrations_with_prev_event_storage:
|
|
||||||
- zha
|
|
||||||
- zigbee2mqtt
|
|
||||||
controller_entity: !input controller_entity
|
|
||||||
controller_device: !input controller_device
|
|
||||||
controller_id: '{% if integration_id=="zigbee2mqtt" %}{{controller_entity}}{% else
|
|
||||||
%}{{controller_device}}{% endif %}'
|
|
||||||
mode: restart
|
|
||||||
max_exceeded: silent
|
|
||||||
trigger:
|
|
||||||
- platform: event
|
|
||||||
event_type: state_changed
|
|
||||||
event_data:
|
|
||||||
entity_id: !input controller_entity
|
|
||||||
- platform: event
|
|
||||||
event_type:
|
|
||||||
- deconz_event
|
|
||||||
- zha_event
|
|
||||||
event_data:
|
|
||||||
device_id: !input controller_device
|
|
||||||
condition:
|
|
||||||
- condition: and
|
|
||||||
conditions:
|
|
||||||
- '{%- set trigger_action -%} {%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state
|
|
||||||
}} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%-
|
|
||||||
elif integration_id == "zha" -%} {{ trigger.event.data.command }}{{"_" if trigger.event.data.args|length
|
|
||||||
> 0}}{{ trigger.event.data.args|join("_") }} {%- endif -%} {%- endset -%} {{ trigger_action
|
|
||||||
not in ["","None"] }}'
|
|
||||||
- '{{ integration_id != "zigbee2mqtt" or trigger.event.data.new_state.state != trigger.event.data.old_state.state
|
|
||||||
}}'
|
|
||||||
action:
|
|
||||||
- delay:
|
|
||||||
milliseconds: !input helper_debounce_delay
|
|
||||||
- variables:
|
|
||||||
trigger_action: '{%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state
|
|
||||||
}} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%-
|
|
||||||
elif integration_id == "zha" -%} {{ trigger.event.data.command }}{{"_" if trigger.event.data.args|length
|
|
||||||
> 0}}{{ trigger.event.data.args|join("_") }} {%- endif -%}'
|
|
||||||
trigger_delta: '{{ (as_timestamp(now()) - ((states(helper_last_controller_event)
|
|
||||||
| from_json).t if helper_last_controller_event is not none and (states(helper_last_controller_event)
|
|
||||||
| regex_match("^\{((\"a\": \".*\"|\"t\": \d+\.\d+)(, )?){2}\}$")) else as_timestamp("1970-01-01
|
|
||||||
00:00:00"))) * 1000 }}'
|
|
||||||
last_controller_event: '{{ (states(helper_last_controller_event) | from_json).a
|
|
||||||
if helper_last_controller_event is not none and (states(helper_last_controller_event)
|
|
||||||
| regex_match("^\{((\"a\": \".*\"|\"t\": \d+\.\d+)(, )?){2}\}$")) else "" }}'
|
|
||||||
- service: input_text.set_value
|
|
||||||
data:
|
|
||||||
entity_id: !input helper_last_controller_event
|
|
||||||
value: '{{ {"a":trigger_action,"t":as_timestamp(now())} | to_json }}'
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ trigger_action | string in button_up_short }}'
|
|
||||||
sequence:
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ button_up_double_press }}'
|
|
||||||
sequence:
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
|
|
||||||
and trigger_delta | int <= helper_double_press_delay | int }}'
|
|
||||||
sequence:
|
|
||||||
- service: input_text.set_value
|
|
||||||
data:
|
|
||||||
entity_id: !input helper_last_controller_event
|
|
||||||
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
|
|
||||||
}}'
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_up_double
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_up_double
|
|
||||||
default:
|
|
||||||
- delay:
|
|
||||||
milliseconds: '{{ adjusted_double_press_delay }}'
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_up_short
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_up_short
|
|
||||||
default:
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_up_short
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_up_short
|
|
||||||
- conditions: '{{ trigger_action | string in button_up_long }}'
|
|
||||||
sequence:
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_up_long
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ button_up_long_loop }}'
|
|
||||||
sequence:
|
|
||||||
- repeat:
|
|
||||||
while: '{{ repeat.index < button_up_long_max_loop_repeats | int }}'
|
|
||||||
sequence: !input action_button_up_long
|
|
||||||
default: !input action_button_up_long
|
|
||||||
- conditions:
|
|
||||||
- '{{ trigger_action | string in button_up_release }}'
|
|
||||||
- '{{ not integration_id in integrations_with_prev_event_storage or last_controller_event
|
|
||||||
| string in button_up_long }}'
|
|
||||||
sequence:
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_up_release
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_up_release
|
|
||||||
- conditions: '{{ trigger_action | string in button_down_short }}'
|
|
||||||
sequence:
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ button_down_double_press }}'
|
|
||||||
sequence:
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
|
|
||||||
and trigger_delta | int <= helper_double_press_delay | int }}'
|
|
||||||
sequence:
|
|
||||||
- service: input_text.set_value
|
|
||||||
data:
|
|
||||||
entity_id: !input helper_last_controller_event
|
|
||||||
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
|
|
||||||
}}'
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_down_double
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_down_double
|
|
||||||
default:
|
|
||||||
- delay:
|
|
||||||
milliseconds: '{{ adjusted_double_press_delay }}'
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_down_short
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_down_short
|
|
||||||
default:
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_down_short
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_down_short
|
|
||||||
- conditions: '{{ trigger_action | string in button_down_long }}'
|
|
||||||
sequence:
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_down_long
|
|
||||||
- choose:
|
|
||||||
- conditions: '{{ button_down_long_loop }}'
|
|
||||||
sequence:
|
|
||||||
- repeat:
|
|
||||||
while: '{{ repeat.index < button_down_long_max_loop_repeats | int }}'
|
|
||||||
sequence: !input action_button_down_long
|
|
||||||
default: !input action_button_down_long
|
|
||||||
- conditions:
|
|
||||||
- '{{ trigger_action | string in button_down_release }}'
|
|
||||||
- '{{ not integration_id in integrations_with_prev_event_storage or last_controller_event
|
|
||||||
| string in button_down_long }}'
|
|
||||||
sequence:
|
|
||||||
- event: ahb_controller_event
|
|
||||||
event_data:
|
|
||||||
controller: '{{ controller_id }}'
|
|
||||||
action: button_down_release
|
|
||||||
- choose:
|
|
||||||
- conditions: []
|
|
||||||
sequence: !input action_button_down_release
|
|
@ -1,179 +0,0 @@
|
|||||||
blueprint:
|
|
||||||
source_url: https://github.com/niro1987/homeassistant-config/blob/main/blueprints/automation/niro1987/zha_ikea_tradfri_styrbar_color.yaml
|
|
||||||
name: ZHA - IKEA TRADFRI - STYRBAR - Color Lights
|
|
||||||
description: This automation simulates the use of the IKEA TRADFRI STYRBAR remote
|
|
||||||
control connected through ZHA.
|
|
||||||
domain: automation
|
|
||||||
input:
|
|
||||||
remote:
|
|
||||||
name: IKEA TRADFRI remote control
|
|
||||||
description: Select the remote control you wish to use.
|
|
||||||
selector:
|
|
||||||
device:
|
|
||||||
filter:
|
|
||||||
- integration: zha
|
|
||||||
manufacturer: IKEA of Sweden
|
|
||||||
model: Remote Control N2
|
|
||||||
multiple: false
|
|
||||||
light:
|
|
||||||
name: Light
|
|
||||||
description: Select the light entity you wish to control.
|
|
||||||
selector:
|
|
||||||
entity:
|
|
||||||
filter:
|
|
||||||
- domain:
|
|
||||||
- light
|
|
||||||
multiple: false
|
|
||||||
speed:
|
|
||||||
name: Speed
|
|
||||||
description: The speed in which to update the light when the button is held.
|
|
||||||
selector:
|
|
||||||
number:
|
|
||||||
min: 100.0
|
|
||||||
max: 1000.0
|
|
||||||
step: 100.0
|
|
||||||
unit_of_measurement: milliseconds
|
|
||||||
mode: slider
|
|
||||||
default: 500
|
|
||||||
mode: restart
|
|
||||||
max_exceeded: silent
|
|
||||||
variables:
|
|
||||||
var_light: !input light
|
|
||||||
var_speed: !input speed
|
|
||||||
trigger:
|
|
||||||
- platform: event
|
|
||||||
event_type: zha_event
|
|
||||||
event_data:
|
|
||||||
device_id: !input remote
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "on" }}'
|
|
||||||
- condition: state
|
|
||||||
entity_id: !input light
|
|
||||||
state: 'off'
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
brightness: 254
|
|
||||||
hs_color:
|
|
||||||
- 38.222
|
|
||||||
- 52.941
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "move_with_on_off" }}'
|
|
||||||
sequence:
|
|
||||||
- repeat:
|
|
||||||
while: []
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
brightness_step_pct: 10
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- delay:
|
|
||||||
milliseconds: !input speed
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "off" }}'
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_off
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "move" }}'
|
|
||||||
sequence:
|
|
||||||
- repeat:
|
|
||||||
while: []
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
brightness_step_pct: -10
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- delay:
|
|
||||||
milliseconds: !input speed
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "press" }}'
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.args == [257,13,0] }}'
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
hs_color:
|
|
||||||
- '{{ state_attr(var_light, "hs_color")[0] }}'
|
|
||||||
- "{% if state_attr(var_light, \"hs_color\")[1] - 20 < 0 %}\n {{ state_attr(var_light,
|
|
||||||
\"hs_color\")[1] - 20 + 100 }}\n{% else %}\n {{ state_attr(var_light, \"hs_color\")[1]
|
|
||||||
- 20 }}\n{% endif %}"
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "hold" }}'
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.args == [3329,0] }}'
|
|
||||||
sequence:
|
|
||||||
- repeat:
|
|
||||||
while: []
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
hs_color:
|
|
||||||
- '{{ state_attr(var_light, "hs_color")[0] }}'
|
|
||||||
- "{% if state_attr(var_light, \"hs_color\")[1] - 10 < 0 %}\n {{ state_attr(var_light,
|
|
||||||
\"hs_color\")[1] - 10 + 100 }}\n{% else %}\n {{ state_attr(var_light,
|
|
||||||
\"hs_color\")[1] - 10 }}\n{% endif %}"
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- delay:
|
|
||||||
milliseconds: !input speed
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "press" }}'
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.args == [256,13,0] }}'
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
hs_color:
|
|
||||||
- "{% if state_attr(var_light, \"hs_color\")[0] + 18 > 360 %}\n {{ state_attr(var_light,
|
|
||||||
\"hs_color\")[0] + 18 - 360 }}\n{% else %}\n {{ state_attr(var_light, \"hs_color\")[0]
|
|
||||||
+ 18 }}\n{% endif %}"
|
|
||||||
- '{{ state_attr(var_light, "hs_color")[1] }}'
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.command == "hold" }}'
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ trigger.event.data.args == [3328,0] }}'
|
|
||||||
sequence:
|
|
||||||
- repeat:
|
|
||||||
while: []
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
target:
|
|
||||||
entity_id: !input light
|
|
||||||
data:
|
|
||||||
hs_color:
|
|
||||||
- "{% if state_attr(var_light, \"hs_color\")[0] + 18 > 360 %}\n {{ state_attr(var_light,
|
|
||||||
\"hs_color\")[0] + 18 - 360 }}\n{% else %}\n {{ state_attr(var_light,
|
|
||||||
\"hs_color\")[0] + 18 }}\n{% endif %}"
|
|
||||||
- '{{ state_attr(var_light, "hs_color")[1] }}'
|
|
||||||
transition: '{{ (var_speed / 1000)|float }}'
|
|
||||||
- delay:
|
|
||||||
milliseconds: !input speed
|
|
||||||
default: []
|
|
Loading…
Reference in New Issue
Block a user