chore: initial baseline before refactoring
Initial snapshot of Home Assistant config (HAOS 2026.4.4)
prior to dashboard restructuring and helper YAML migration.
Pre-commit cleanup applied:
- Removed blueprints/switch_manager/ (9.4 MB stale, component already gone)
- Removed .storage/switch_manager
- Removed home-assistant.log.{1,old,fault}
- Removed zigbee2mqtt/configuration_backup_v{1..4}.yaml
- Removed zigbee2mqtt/database.db.tmp.2024-09-27 (1.5y old)
- Created empty themes/ to satisfy configuration.yaml include
.gitignore uses allowlist strategy for .storage/ to keep
all tokens, keys, and PINs out of version control.
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
blueprint:
|
||||
name: Scene Toggle
|
||||
description: '
|
||||
|
||||
## Features
|
||||
|
||||
- toggle through scenes by order or last activated timestamp
|
||||
|
||||
- define a transition time
|
||||
|
||||
- select scenes by area and/or include/exclude specific scenes
|
||||
|
||||
- timeout for beginning at start if using static order
|
||||
|
||||
|
||||
**Help & FAQ**: [Simple Scene Toggle](https://community.home-assistant.io/t/simple-scene-toggle)
|
||||
|
||||
|
||||
**Version**: 3.2
|
||||
|
||||
|
||||
If you like my work and support feel free to support me.
|
||||
|
||||
|
||||
[](https://ko-fi.com/Q5Q3QEH52)
|
||||
|
||||
'
|
||||
source_url: https://github.com/panhans/homeassistant/blob/main/blueprints/script/scene_toggle.yaml
|
||||
domain: script
|
||||
input:
|
||||
area:
|
||||
name: Name of area
|
||||
description: Name of the area where you want to toggle scenes
|
||||
default: ''
|
||||
selector:
|
||||
area: {}
|
||||
included_scenes:
|
||||
name: Included Scenes
|
||||
description: Additional scenes to be included
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
- domain:
|
||||
- scene
|
||||
multiple: true
|
||||
excluded_scenes:
|
||||
name: Excluded Scenes
|
||||
description: Scenes to be excluded
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
- domain:
|
||||
- scene
|
||||
multiple: true
|
||||
transition:
|
||||
name: Transition time
|
||||
description: Transition time when switching between scenes
|
||||
default: 1
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 10.0
|
||||
step: 0.1
|
||||
unit_of_measurement: s
|
||||
mode: slider
|
||||
use_static_order:
|
||||
name: Static order
|
||||
description: This automation is based on timestamps of the activation of the
|
||||
scenes. If this option is enabled a static order will be used instead of the
|
||||
dynamic one.
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
reset_after:
|
||||
name: Reset After
|
||||
description: If the static order is activated, a timeout can be set after which
|
||||
the order is reset to the first scene. If 0 is set the timeout is disabled.
|
||||
default: 0
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 120.0
|
||||
step: 1.0
|
||||
unit_of_measurement: s
|
||||
mode: slider
|
||||
mode: queued
|
||||
variables:
|
||||
area: !input area
|
||||
included_scenes: !input included_scenes
|
||||
excluded_scenes: !input excluded_scenes
|
||||
reset_after: !input reset_after
|
||||
use_static_order: !input use_static_order
|
||||
last_triggered: '{{ as_timestamp(iif(state_attr(this.entity_id,''last_triggered'')
|
||||
== none, now(), state_attr(this.entity_id,''last_triggered''))) }}'
|
||||
sequence:
|
||||
- service: scene.turn_on
|
||||
data_template:
|
||||
transition: !input transition
|
||||
entity_id: "{% set area_scenes = states.scene | selectattr('entity_id', 'in',
|
||||
area_entities(area)) | map(attribute='entity_id') | list %} {% set all_scenes
|
||||
= (area_scenes | reject('in', excluded_scenes) | list) + included_scenes %}\n{%
|
||||
if use_static_order == true %}\n\n {% set is_reset = reset_after > 0 and (as_timestamp(now())
|
||||
- last_triggered >= reset_after) %}\n\n {% if is_reset == true %}\n {{ all_scenes[0]
|
||||
}}\n {% else %}\n \n {% set unknown_scenes = expand(all_scenes) | selectattr('state',
|
||||
'eq', 'unknown') | map(attribute='entity_id') | list %}\n {% set scenes_sorted_by_activation
|
||||
= expand(all_scenes) | sort(attribute='state', reverse = true) | map(attribute='entity_id')
|
||||
| reject('in', unknown_scenes) | list %}\n {% set last_activated_scene =
|
||||
scenes_sorted_by_activation[0] %}\n {% set index_of_last_activated_scene
|
||||
= all_scenes.index(last_activated_scene) %}\n {% set new_index = index_of_last_activated_scene
|
||||
+ 1 %}\n\n {% if new_index == all_scenes | count %}\n {{ all_scenes[0]
|
||||
}}\n {% else %}\n {{ all_scenes[new_index] }}\n {% endif %}\n {%
|
||||
endif %}\n{% else %} \n {% set unknown_scenes = expand(all_scenes) | selectattr('state',
|
||||
'eq', 'unknown') | map(attribute='entity_id') | list %}\n {% if unknown_scenes
|
||||
| count > 0 %}\n {{ unknown_scenes[0] }} \n {% else %}\n {% set known_scenes
|
||||
= expand(all_scenes) | sort(attribute='state', reverse = false) | map(attribute='entity_id')
|
||||
| list %}\n {{ known_scenes[0] }}\n {% endif %}\n{% endif %}\n"
|
||||
Reference in New Issue
Block a user