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,200 @@
|
||||
blueprint:
|
||||
name: Motion-activated Light extended
|
||||
description: Turn on a light when a movement occurs
|
||||
domain: automation
|
||||
source_url: https://github.com/giannisigalotti/HomeAssistant/blob/main/blueprints/motion-activated-light.yaml
|
||||
input:
|
||||
motion_entity:
|
||||
name: Motion sensor
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- binary_sensor
|
||||
multiple: false
|
||||
light_target:
|
||||
name: Light
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
- domain:
|
||||
- light
|
||||
no_motion_wait:
|
||||
name: Wait time
|
||||
description:
|
||||
The time to wait before turning off the light after no movement
|
||||
is detected.
|
||||
default: 120
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 3600.0
|
||||
unit_of_measurement: seconds
|
||||
mode: slider
|
||||
step: 1.0
|
||||
skip_if_light_is_on:
|
||||
name:
|
||||
Do not execute if the light is already on (prevent auto-turn-off if the
|
||||
light was turned on manually).
|
||||
selector:
|
||||
boolean: {}
|
||||
default: false
|
||||
no_sunset_handling:
|
||||
name: Disable day/night management?
|
||||
description:
|
||||
When you turn this option to off, you can define how many hour
|
||||
before sunset and after sunshine the automation turn on the light
|
||||
selector:
|
||||
boolean: {}
|
||||
default: false
|
||||
wheater_handling:
|
||||
name: Enable meteo managment?
|
||||
description:
|
||||
Does it also take weather into account to enable/disable motion
|
||||
sensors (use the time range only when it's sunny and disable otherwise)?
|
||||
selector:
|
||||
boolean: {}
|
||||
default: false
|
||||
wheater_entity:
|
||||
name: Weather status sensor
|
||||
description:
|
||||
This sensor is used only with the Meteo managment option to determine
|
||||
if the weather is sunny or not (useful if you are in a room usually dark in
|
||||
case of bad weather condition
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- weather
|
||||
multiple: false
|
||||
default: weather.home
|
||||
sunset_start_hh:
|
||||
name: Pre-sunset hours activation
|
||||
description:
|
||||
How many hours before sunset does the management activate (negative
|
||||
numbers indicate a delay)?
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 12.0
|
||||
unit_of_measurement: hours
|
||||
mode: slider
|
||||
step: 1.0
|
||||
default: 0
|
||||
sunset_start_mm:
|
||||
name: Pre-sunset minutes activation
|
||||
description:
|
||||
How many minutes before sunset does the management activate (negative
|
||||
numbers indicate a delay)?
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 59.0
|
||||
unit_of_measurement: minutes
|
||||
mode: slider
|
||||
step: 1.0
|
||||
default: 0
|
||||
sunrise_start_hh:
|
||||
name: Post-sunrise hours activation
|
||||
description:
|
||||
How many hours after sunrise does the management deactivate (negative
|
||||
numbers indicate an advance)?
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 12.0
|
||||
unit_of_measurement: hours
|
||||
mode: slider
|
||||
step: 1.0
|
||||
default: 0
|
||||
sunrise_start_mm:
|
||||
name: Post-sunrise minutes activation
|
||||
description:
|
||||
How many minutes after sunrise does the management deactivate (negative
|
||||
numbers indicate an advance)?
|
||||
selector:
|
||||
number:
|
||||
min: 0.0
|
||||
max: 59.0
|
||||
unit_of_measurement: minutes
|
||||
mode: slider
|
||||
step: 1.0
|
||||
default: 0
|
||||
timeout:
|
||||
name: Deactivation timeout?
|
||||
description:
|
||||
After how many minutes does the switch turn off automatically (-1
|
||||
if no timeout)
|
||||
selector:
|
||||
number:
|
||||
min: -1.0
|
||||
max: 60.0
|
||||
unit_of_measurement: minutes
|
||||
mode: slider
|
||||
step: 1.0
|
||||
default: 5
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: !input motion_entity
|
||||
from: "off"
|
||||
to: "on"
|
||||
variables:
|
||||
dusk_start_hour: !input sunset_start_hh
|
||||
dusk_start_minute: !input sunset_start_mm
|
||||
rising_start_hour: !input sunrise_start_hh
|
||||
rising_start_minute: !input sunrise_start_mm
|
||||
use_weather: !input wheater_handling
|
||||
skip_light_on: !input skip_if_light_is_on
|
||||
target_lights: !input light_target
|
||||
force_skip:
|
||||
"{{ skip_light_on and\n (expand(\n (([] if target_lights.device_id
|
||||
is undefined\n else target_lights.device_id | device_entities\n if
|
||||
target_lights.device_id is string\n else target_lights.device_id
|
||||
| map('device_entities') | sum(start=[]) )\n +\n ([]
|
||||
if target_lights.entity_id is undefined\n else [target_lights.entity_id]\n
|
||||
\ if target_lights.entity_id is string\n else target_lights.entity_id
|
||||
))\n | select('search', '^light\\.') | list\n ) | selectattr('state',
|
||||
'eq', 'on') | list | length > 0)\n}}\n"
|
||||
sun_rising:
|
||||
"{% if (states.sun.sun.state == \"above_horizon\") %}\n {{ states.sun.sun.last_changed
|
||||
}}\n{%- else -%}\n {{ states.sun.sun.attributes.next_rising }}\n{%- endif %}\n"
|
||||
sun_dusk:
|
||||
"{% if (states.sun.sun.state == \"above_horizon\") %}\n {{ states.sun.sun.attributes.next_dusk
|
||||
}}\n{%- else -%}\n {{ states.sun.sun.last_changed }}\n{%- endif %}\n"
|
||||
wheater_sensor: !input wheater_entity
|
||||
no_sunny_wheater: "{{ states(wheater_sensor) != 'sunny' and use_weather }}
|
||||
|
||||
"
|
||||
condition:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: "{{ not force_skip }}"
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: !input no_sunset_handling
|
||||
- condition: template
|
||||
value_template: "{{ no_sunny_wheater }}"
|
||||
- condition: and
|
||||
conditions:
|
||||
- "{{ as_timestamp(now()) >= ((as_timestamp(sun_dusk) - dusk_start_hour*3600
|
||||
- dusk_start_minute*60) )}}"
|
||||
- "{{ as_timestamp(now()) < ((as_timestamp(sun_rising) + rising_start_hour*3600
|
||||
+ rising_start_minute*60) )}}"
|
||||
action:
|
||||
- service: light.turn_on
|
||||
target: !input light_target
|
||||
- wait_for_trigger:
|
||||
platform: state
|
||||
entity_id: !input motion_entity
|
||||
from: "on"
|
||||
to: "off"
|
||||
timeout:
|
||||
hours: 0
|
||||
minutes: !input timeout
|
||||
seconds: 0
|
||||
milliseconds: 0
|
||||
- delay: !input no_motion_wait
|
||||
- service: light.turn_off
|
||||
target: !input light_target
|
||||
Reference in New Issue
Block a user