Files
Home-Assistant/automations/04_kids_and_announcements.yaml
T
2026-06-28 14:27:20 -04:00

428 lines
11 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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