109 lines
4.2 KiB
YAML
109 lines
4.2 KiB
YAML
#:########################################################################################:#
|
|
# Package: Away-Light Security Simulation
|
|
# File: simulation_lights.yaml
|
|
# Version: v1.0.0
|
|
# Date: 2026-07-24
|
|
#
|
|
# Purpose:
|
|
# Simulates household activity while the away routine is active and all
|
|
# configured family members are away. Every five minutes after sunset, the
|
|
# automation selects a configured entity and operates it for a random period.
|
|
#
|
|
# Version History:
|
|
# - v1.0.0 (2026-07-24): Consolidated the simulation groups, away automation, and timed helper
|
|
# script into one feature package.
|
|
# - Preserved the existing automation ID, group keys, and script key.
|
|
# - Aligned the automation with the existing simulation_lights_all group.
|
|
#:########################################################################################:#
|
|
|
|
group:
|
|
#:######################################################################################:#
|
|
# FAMILY PRESENCE
|
|
#:######################################################################################:#
|
|
family_away:
|
|
name: "All Family Members Away"
|
|
entities:
|
|
- !secret person_1
|
|
- !secret person_2
|
|
- !secret person_3
|
|
|
|
#:######################################################################################:#
|
|
# SIMULATION ENTITIES
|
|
#:######################################################################################:#
|
|
simulation_lights_all:
|
|
name: "Simulation Lights (All)"
|
|
entities:
|
|
- group.downstairs_flat_lights
|
|
- switch.esp_centralstairs_top_relay_2_stair_footer_lights
|
|
- switch.esp_centralstairs_bottom_relay_1_main_stair_lights_lower
|
|
- switch.esp_entrancebathrmlights_relay_1_main_lights
|
|
- switch.esp_entrancelightswitch_relay_1_entrance_lights
|
|
- switch.esp_mainkitchenlights_relay_1_main_lights
|
|
- switch.esp_mainkitchenlights_relay_2_benchtop_lights
|
|
- switch.main_hallway_lightswitch_relay_1_main_hallway_lights
|
|
- light.esp_lounge6chdimmer_lounge_downlights_centre
|
|
- light.esp_lounge6chdimmer_lounge_downlights_south
|
|
- light.esp_lounge6chdimmer_lounge_rafter_buttons
|
|
- light.esp_loungepelmetleds2_lounge_pelmet_leds_a
|
|
- light.esp_lounge6chdimmer_couch_spots_left
|
|
- light.esp_lounge6chdimmer_couch_spots_right
|
|
|
|
script:
|
|
#:######################################################################################:#
|
|
# RANDOM-DURATION ENTITY CONTROL
|
|
#:######################################################################################:#
|
|
light_duration:
|
|
description: "Turns an entity on for a supplied duration and then turns it off."
|
|
mode: parallel
|
|
fields:
|
|
light:
|
|
description: "Entity to operate."
|
|
example: light.bedroom
|
|
duration:
|
|
description: "How long the entity should remain on."
|
|
example: "00:25:00"
|
|
sequence:
|
|
- action: logbook.log
|
|
data:
|
|
name: "Script Notice"
|
|
message: "Light {{ light }} will be turned on for {{ duration }}"
|
|
|
|
- action: homeassistant.turn_on
|
|
target:
|
|
entity_id: "{{ light }}"
|
|
|
|
- delay: "{{ duration }}"
|
|
|
|
- action: homeassistant.turn_off
|
|
target:
|
|
entity_id: "{{ light }}"
|
|
|
|
automation:
|
|
#:######################################################################################:#
|
|
# AWAY-LIGHT SIMULATION
|
|
#:######################################################################################:#
|
|
- id: do_random_actions_when_away
|
|
alias: "Activate Random Actions for Security"
|
|
description: >
|
|
Periodically runs the timed simulation script after sunset when the away
|
|
routine is active and all configured family members are away.
|
|
mode: parallel
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: "/5"
|
|
conditions:
|
|
- condition: sun
|
|
after: sunset
|
|
after_offset: "-00:30:00"
|
|
- condition: state
|
|
entity_id: input_boolean.away_occupied_routine
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: group.family_away
|
|
state: "not_home"
|
|
actions:
|
|
- action: script.light_duration
|
|
data:
|
|
light: "{{ state_attr('group.simulation_lights_all', 'entity_id') | random }}"
|
|
duration: "00:{{ '{:02}'.format(range(5, 29) | random | int) }}:00"
|