Files
Home-Assistant/automations/04_kids_and_announcements.yaml
T

428 lines
11 KiB
YAML
Raw Normal View History

2026-06-28 14:27:20 -04:00
# Kids routines, school prep, and announcement automations.
- id: '1743380000904'
alias: Jordyn-Bedtime-Snack-Notification-Weekend
description: Triggers an Alexa notification at 8:00 PM if the Google Calendar event
is 'Girls at Home'
triggers:
- at: '20:00:00'
trigger: time
enabled: true
conditions:
- condition: time
weekday:
- sat
- sun
- condition: state
entity_id: calendar.family_events
state: 'on'
- condition: template
value_template: '{{ state_attr(''calendar.family_events'', ''message'') == ''Girls
at Home'' }}'
actions:
- data:
message: Jordyn, time to put away screens and get a bedtime snack.
action: notify.alexa_media_living_room
mode: single
- id: '1743381226135'
alias: Jordyn-Bedtime-Snack-Notification
description: Triggers an Alexa notification at 7:30 PM if the Google Family Calendar
event is 'Girls at Home'
triggers:
- trigger: time
at: '20:00:00'
enabled: true
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- condition: state
entity_id: calendar.family_events
state: 'on'
- condition: template
value_template: '{{ state_attr(''calendar.family_events'', ''message'') == ''Girls
at Home'' }}'
actions:
- target:
entity_id: media_player.living_room
data:
media:
media_content_id: Jordyn Weekday Bedtime Routine
media_content_type: routine
metadata: {}
action: media_player.play_media
mode: single
- id: '1743385356527'
alias: Jordyns Light on at 7PM
description: ''
triggers:
- trigger: time
at: '19:00:00'
conditions:
- condition: time
weekday:
- mon
- tue
actions:
- type: turn_on
device_id: ef731a5e6e666bf4fc20cc321f596029
entity_id: 9629035816fddf7de8926e4e4c29aa34
domain: switch
mode: single
- id: '1743385432089'
alias: Jordyns light on weekend
description: ''
triggers:
- trigger: time
at: '19:00:00'
conditions:
- condition: and
conditions:
- condition: time
weekday:
- fri
- sat
- sun
- condition: template
value_template: '{{ now().strftime(''%U'') | int % 2 == 1 }}'
actions:
- type: turn_on
device_id: ef731a5e6e666bf4fc20cc321f596029
entity_id: 9629035816fddf7de8926e4e4c29aa34
domain: switch
mode: single
- id: '1744560941050'
alias: Jordyns Lamp on at 730
description: ''
triggers:
- trigger: time
at: '19:30:00'
conditions: []
actions:
- type: turn_on
device_id: ef731a5e6e666bf4fc20cc321f596029
entity_id: 9629035816fddf7de8926e4e4c29aa34
domain: switch
mode: single
- id: '1744503044129'
alias: Set Alexa Announcement Volume
description: Set Alexa announcement volume for structured daily routine
triggers:
- at: 08:15:00
trigger: time
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
actions:
- data:
media:
media_content_id: Set kids speakers to 6
media_content_type: routine
metadata: {}
action: media_player.play_media
target:
device_id: 7c55da01c1d0e4ee7900852bb7621b1e
mode: single
- id: '1744503044809'
alias: Daily Alexa Announcements for Kids
description: Schedule of Alexa announcements for structured daily routine
trigger:
- platform: time
at: 09:00:00
- platform: time
at: '10:00:00'
- platform: time
at: '10:15:00'
- platform: time
at: '11:00:00'
- platform: time
at: '12:00:00'
- platform: time
at: '12:30:00'
- platform: time
at: '13:00:00'
- platform: time
at: '13:30:00'
- platform: time
at: '14:00:00'
- platform: time
at: '14:30:00'
- platform: time
at: '19:29:00'
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: calendar.get_events
target:
entity_id: calendar.family_events
data:
start_date_time: '{{ today_at(''00:00'') }}'
end_date_time: '{{ today_at(''00:00'') + timedelta(days=1) }}'
response_variable: agenda
- condition: template
value_template: "{{ (agenda['calendar.family_events']['events'] | default([]))\n
\ | selectattr('summary', 'defined')\n | map(attribute='summary')\n | map('lower')\n
\ | select('search', 'camp')\n | list | count == 0 }}\n"
- variables:
messages:
08:00:00: Time for breakfast and a little TV!
09:00:00: Outside play time! If its bad weather, do your learning activities
inside.
'10:00:00': Snack time!
'10:15:00': Time for quiet play or outside fun.
'11:00:00': Creative time! Draw, color, or write something cool!
'12:00:00': Lunch time! Wash up and head to the table.
'12:30:00': Happy Helper Time! Do your chores like a champ!
'13:00:00': TV break — relax and enjoy.
'13:30:00': Time to read a book or listen to a story.
'14:00:00': Lets move! Try a Minecraft brain break!
'14:30:00': Time to relax with mindfulness or yoga.
- service: notify.alexa_media
data:
target:
- media_player.living_room
- media_player.jordyn_s_room
- media_player.chloe_s_room
- media_player.declan_s_room
- media_player.kitchen
message: '{{ messages[now().strftime(''%H:%M:%S'')] }}'
data:
type: announce
method: all
mode: single
- id: '1744503044813'
alias: Announce day camp preparation and pause TV
triggers:
- at: 08:25:00
trigger: time
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
actions:
- service: calendar.get_events
target:
entity_id: calendar.family_events
data:
start_date_time: '{{ today_at(''00:00'') }}'
end_date_time: '{{ today_at(''00:00'') + timedelta(days=1) }}'
response_variable: agenda
- condition: template
value_template: "{{ (agenda['calendar.family_events']['events'] | default([]))\n
\ | selectattr('summary', 'defined')\n | map(attribute='summary')\n | map('lower')\n
\ | select('search', 'camp')\n | list | count > 0 }}\n"
- target:
entity_id: media_player.hisense_g204x_cd41
action: media_player.media_pause
data: {}
- data:
target:
- media_player.living_room
- media_player.declan_s_room
- media_player.jordyn_s_room
- media_player.kitchen
message: 'Time to prepare for day camp. Please do the following: Fill water
bottles, put on deodorant, brush teeth, and Jordyn, brush your hair.
'
action: notify.alexa_media
mode: single
- id: '1744503044814'
alias: Announce time to leave for day camp and turn off TV
triggers:
- at: 08:40:00
trigger: time
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
actions:
- service: calendar.get_events
target:
entity_id: calendar.family_events
data:
start_date_time: '{{ today_at(''00:00'') }}'
end_date_time: '{{ today_at(''00:00'') + timedelta(days=1) }}'
response_variable: agenda
- condition: template
value_template: "{{ (agenda['calendar.family_events']['events'] | default([]))\n
\ | selectattr('summary', 'defined')\n | map(attribute='summary')\n | map('lower')\n
\ | select('search', 'camp')\n | list | count > 0 }}\n"
- target:
entity_id: media_player.basement_show
data:
media_content_id: Turn Kids TV Off
media_content_type: routine
action: media_player.play_media
- data:
target:
- media_player.living_room
message: 'It is time to leave for day camp. Please do the following: Put on
shoes, get lunch, get water bottle, and grab your bag if needed.
'
action: notify.alexa_media
- target:
entity_id: media_player.hisense_g204x_cd41
action: media_player.turn_off
data: {}
mode: single
- id: '1744503044145'
alias: Reset Alexa Announcement Volume - Camp Days
description: Set Alexa announcement volume for structured daily routine
trigger:
- platform: time
at: 09:15:00
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: calendar.get_events
target:
entity_id: calendar.family_events
data:
start_date_time: '{{ today_at(''00:00'') }}'
end_date_time: '{{ today_at(''00:00'') + timedelta(days=1) }}'
response_variable: agenda
- condition: template
value_template: "{{ (agenda['calendar.family_events']['events'] | default([]))\n
\ | selectattr('summary', 'defined')\n | map(attribute='summary')\n | map('lower')\n
\ | select('search', 'camp')\n | list | count > 0 }}\n"
- service: media_player.play_media
data:
media_content_id: Reset Alexa Volume
media_content_type: routine
target:
entity_id: media_player.basement_show
mode: single
- id: '1744503044146'
alias: Reset Alexa Announcement Volume - No Camp Days
description: Set Alexa announcement volume for structured daily routine
trigger:
- platform: time
at: '19:17:00'
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: calendar.get_events
target:
entity_id: calendar.family_events
data:
start_date_time: '{{ today_at(''00:00'') }}'
end_date_time: '{{ today_at(''00:00'') + timedelta(days=1) }}'
response_variable: agenda
- condition: template
value_template: "{{ (agenda['calendar.family_events']['events'] | default([]))\n
\ | selectattr('summary', 'defined')\n | map(attribute='summary')\n | map('lower')\n
\ | select('search', 'camp')\n | list | count == 0 }}\n"
- service: media_player.play_media
data:
media_content_id: Reset Alexa Volume
media_content_type: routine
target:
entity_id: media_player.basement_show
mode: single
- id: '1756211568290'
alias: School Prep Announcement
description: ''
triggers:
- at: 08:20:00
trigger: time
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
actions:
- target:
entity_id: media_player.hisense_g204x_cd41
action: media_player.media_pause
data: {}
- data:
target:
- media_player.living_room
- media_player.declan_s_room
- media_player.jordyn_s_room
- media_player.kitchen
message: This is your reminder to pack your snack, fill your water bottles,
put on deodorant, socks, and brush your teeth. Jordyn please make sure your
hair is brushed nicely.
action: notify.alexa_media
mode: single
- id: '1756211855375'
alias: Time for School Announcement
description: ''
triggers:
- at: 08:42:00
trigger: time
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
actions:
- target:
entity_id: media_player.hisense_g204x_cd41
action: media_player.turn_off
data: {}
- data:
target:
- media_player.living_room
- media_player.declan_s_room
- media_player.jordyn_s_room
- media_player.kitchen
message: Time for school! Last call for water bottles, snacks, and socks. Have
a great day!!
action: notify.alexa_media
mode: single