Added zigbee blueprints.
This commit is contained in:
		
							
								
								
									
										426
									
								
								blueprints/automation/EPMatt/ikea_e1743.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										426
									
								
								blueprints/automation/EPMatt/ikea_e1743.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,426 @@ | ||||
| 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 | ||||
| @@ -0,0 +1,179 @@ | ||||
| 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: [] | ||||
		Reference in New Issue
	
	Block a user