5f01411780
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.
201 lines
6.4 KiB
YAML
201 lines
6.4 KiB
YAML
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
|