- Add complete homeassistant skill source to skills/ directory - Includes all scripts, references, and automation templates - Matches format of other skills in repository
8.4 KiB
8.4 KiB
Common Home Assistant Automation Patterns
Motion-Activated Lighting
Turn on lights when motion detected, turn off after no motion:
automation:
- alias: "Motion Light - Hallway"
id: motion_light_hallway
trigger:
- trigger: state
entity_id: binary_sensor.hallway_motion
to: "on"
condition:
- condition: state
entity_id: sun.sun
state: "below_horizon"
action:
- action: light.turn_on
target:
entity_id: light.hallway
- wait_for_trigger:
- trigger: state
entity_id: binary_sensor.hallway_motion
to: "off"
for:
minutes: 5
- action: light.turn_off
target:
entity_id: light.hallway
Time-Based Automation
Execute actions at specific times:
automation:
- alias: "Morning Routine"
id: morning_routine
trigger:
- trigger: time
at: "07:00:00"
condition:
- condition: state
entity_id: binary_sensor.workday
state: "on"
action:
- action: light.turn_on
target:
entity_id: light.bedroom
data:
brightness: 50
- action: cover.open_cover
target:
entity_id: cover.bedroom_blinds
- action: climate.set_temperature
target:
entity_id: climate.bedroom
data:
temperature: 21
Sunset/Sunrise Automation
React to sun position:
automation:
- alias: "Lights at Sunset"
id: lights_at_sunset
trigger:
- trigger: sun
event: sunset
offset: "-00:30:00" # 30 min before sunset
action:
- action: light.turn_on
target:
area_id: living_room
data:
brightness: 180
Presence Detection
React to people arriving/leaving:
automation:
- alias: "Welcome Home"
id: welcome_home
trigger:
- trigger: state
entity_id: person.john
from: "not_home"
to: "home"
action:
- action: light.turn_on
target:
area_id: entrance
- action: climate.set_temperature
target:
entity_id: climate.living_room
data:
temperature: 22
- action: notify.mobile_app
data:
message: "Welcome home, John!"
Temperature-Based Climate Control
Adjust heating/cooling based on temperature:
automation:
- alias: "Auto Climate Control"
id: auto_climate_control
trigger:
- trigger: numeric_state
entity_id: sensor.living_room_temperature
below: 19
condition:
- condition: state
entity_id: person.john
state: "home"
action:
- action: climate.set_hvac_mode
target:
entity_id: climate.living_room
data:
hvac_mode: heat
- action: climate.set_temperature
target:
entity_id: climate.living_room
data:
temperature: 21
Door/Window Alert
Notify when doors/windows left open:
automation:
- alias: "Window Open Alert"
id: window_open_alert
trigger:
- trigger: state
entity_id: binary_sensor.living_room_window
to: "on"
for:
minutes: 30
condition:
- condition: numeric_state
entity_id: sensor.outdoor_temperature
below: 10
action:
- action: notify.notify
data:
message: "Living room window has been open for 30 minutes and it's {{ states('sensor.outdoor_temperature') }}°C outside"
title: "Window Alert"
Low Battery Notification
Alert when device batteries are low:
automation:
- alias: "Low Battery Alert"
id: low_battery_alert
trigger:
- trigger: numeric_state
entity_id: sensor.motion_sensor_battery
below: 20
action:
- action: notify.notify
data:
message: "{{ trigger.to_state.attributes.friendly_name }} battery is at {{ trigger.to_state.state }}%"
title: "Low Battery"
Conditional Lighting by Time
Different brightness based on time of day:
automation:
- alias: "Motion Light with Time-Based Brightness"
id: motion_light_time_based
trigger:
- trigger: state
entity_id: binary_sensor.kitchen_motion
to: "on"
action:
- choose:
- conditions:
- condition: time
after: "22:00:00"
before: "06:00:00"
sequence:
- action: light.turn_on
target:
entity_id: light.kitchen
data:
brightness: 30
- conditions:
- condition: time
after: "06:00:00"
before: "22:00:00"
sequence:
- action: light.turn_on
target:
entity_id: light.kitchen
data:
brightness: 255
Vacation Mode
Randomize lights when away:
automation:
- alias: "Vacation Mode - Random Lights"
id: vacation_mode_lights
trigger:
- trigger: time_pattern
hours: "/1" # Every hour
condition:
- condition: state
entity_id: input_boolean.vacation_mode
state: "on"
- condition: sun
after: sunset
before: sunrise
action:
- action: light.turn_on
target:
entity_id: "{{ ['light.living_room', 'light.bedroom', 'light.kitchen'] | random }}"
- delay:
minutes: "{{ range(30, 120) | random }}"
- action: light.turn_off
target:
entity_id: all
Media Player Automation
Pause media when phone rings:
automation:
- alias: "Pause Media on Phone Call"
id: pause_media_phone_call
trigger:
- trigger: state
entity_id: sensor.phone_state
to: "ringing"
action:
- action: media_player.media_pause
target:
entity_id: all
Garden Watering Schedule
Water garden based on weather and schedule:
automation:
- alias: "Garden Watering"
id: garden_watering
trigger:
- trigger: time
at: "06:00:00"
condition:
- condition: state
entity_id: sensor.weather_forecast
state: "sunny"
- condition: numeric_state
entity_id: sensor.outdoor_temperature
above: 20
- condition: numeric_state
entity_id: sensor.soil_moisture
below: 30
action:
- action: switch.turn_on
target:
entity_id: switch.garden_sprinkler
- delay:
minutes: 30
- action: switch.turn_off
target:
entity_id: switch.garden_sprinkler
Reminder Notifications
Remind to perform tasks:
automation:
- alias: "Trash Day Reminder"
id: trash_day_reminder
trigger:
- trigger: time
at: "20:00:00"
condition:
- condition: time
weekday:
- sun
action:
- action: notify.notify
data:
message: "Don't forget to put out the trash tonight!"
title: "Trash Day Tomorrow"
Smart Doorbell
Announce doorbell press and record:
automation:
- alias: "Doorbell Press"
id: doorbell_press
trigger:
- trigger: state
entity_id: binary_sensor.doorbell
to: "on"
action:
- action: media_player.play_media
target:
entity_id: media_player.home_speaker
data:
media_content_id: "local/doorbell.mp3"
media_content_type: "music"
- action: camera.snapshot
target:
entity_id: camera.front_door
data:
filename: "/config/www/snapshots/doorbell_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
- action: notify.mobile_app
data:
message: "Someone is at the door"
data:
image: "/local/snapshots/doorbell_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
Energy Saving
Turn off devices when nobody home:
automation:
- alias: "Energy Saving - Away Mode"
id: energy_saving_away
trigger:
- trigger: state
entity_id: group.all_persons
to: "not_home"
for:
minutes: 15
action:
- action: light.turn_off
target:
entity_id: all
- action: climate.set_hvac_mode
target:
entity_id: all
data:
hvac_mode: "off"
- action: media_player.turn_off
target:
entity_id: all