Initial commit with existing blueprints
This commit is contained in:
142
Common/Day Scene Controller.yaml
Normal file
142
Common/Day Scene Controller.yaml
Normal file
@@ -0,0 +1,142 @@
|
||||
blueprint:
|
||||
name: "Custom: Day Scene Controller"
|
||||
description: "Allows to control time of day scenes"
|
||||
domain: automation
|
||||
|
||||
input:
|
||||
states_group:
|
||||
name: States
|
||||
collapsed: false
|
||||
input:
|
||||
time_of_day_state:
|
||||
name: Time of Day state selector
|
||||
description: The input_select entity that holds the current time-of-day state
|
||||
selector:
|
||||
entity:
|
||||
domain: input_select
|
||||
|
||||
control_switch:
|
||||
name: Control Switch
|
||||
description: Controls if scenes switch must work or default scene should be applied
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- binary_sensor
|
||||
- input_boolean
|
||||
|
||||
scenes_group:
|
||||
name: Scenes
|
||||
collapsed: false
|
||||
input:
|
||||
scenes:
|
||||
name: Scenes
|
||||
description: Ordered list of scenes (each scene per time of day state list)
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- scene
|
||||
multiple: true
|
||||
|
||||
default_scene:
|
||||
name: Default Scene
|
||||
description: Scene enabled when enable switch is off
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- scene
|
||||
|
||||
enable_default_scene_on_transition:
|
||||
name: Enable Default Scene On Transition
|
||||
description: Controls if default scene should be enabled on scene transition (i.e. before moving to other scene use default scene)
|
||||
default: true
|
||||
selector:
|
||||
boolean:
|
||||
|
||||
actions_group:
|
||||
name: Actions
|
||||
collapsed: true
|
||||
input:
|
||||
scene_applied_callback:
|
||||
name: Scene Applied Callback
|
||||
description: Set of action invoked whenever active scene is applied
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
|
||||
default_scene_applied_callback:
|
||||
name: Default Scene Applied Callback
|
||||
description: Set of action invoked whenever default scene is applied
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
|
||||
mode: restart
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: !input time_of_day_state
|
||||
|
||||
- platform: state
|
||||
entity_id: !input control_switch
|
||||
|
||||
variables:
|
||||
# Constants
|
||||
is_debug: false
|
||||
|
||||
# Declarations
|
||||
control_switch: !input control_switch
|
||||
time_of_day_state: !input time_of_day_state
|
||||
enable_default_scene_on_transition: !input enable_default_scene_on_transition
|
||||
|
||||
# Values
|
||||
tod_state: "{{ states(time_of_day_state) }}"
|
||||
tod_options: "{{ state_attr(time_of_day_state, 'options') or [] }}"
|
||||
tod_index: "{{ tod_options.index(tod_state) if tod_state in tod_options else -1 }}"
|
||||
control_on: "{{ states(control_switch) in ['on','true','1'] }}"
|
||||
scenes_list: !input scenes
|
||||
default_scene: !input default_scene
|
||||
|
||||
action:
|
||||
# Debug info (log if required)
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: "{{ is_debug }}"
|
||||
sequence:
|
||||
- service: persistent_notification.create
|
||||
data:
|
||||
title: "Debug Info"
|
||||
message: >
|
||||
tod_index = {{ tod_index }},
|
||||
control_ok = {{ control_ok }}
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: "{{ tod_index == -1 }}"
|
||||
sequence:
|
||||
stop: "Scene index is invalid. Check your state-to-scene mapping"
|
||||
default:
|
||||
sequence:
|
||||
- variables:
|
||||
result_scene: >
|
||||
{% if control_on %}
|
||||
{{ scenes_list[tod_index] }}
|
||||
{% else %}
|
||||
{{ default_scene }}
|
||||
{% endif %}
|
||||
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: "{{ enable_default_scene_on_transition and result_scene != default_scene }}"
|
||||
sequence:
|
||||
- service: scene.turn_on
|
||||
target:
|
||||
entity_id: "{{ default_scene }}"
|
||||
|
||||
- service: scene.turn_on
|
||||
target:
|
||||
entity_id: "{{ result_scene }}"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user