Refactor daily Alexa announcements automation for improved clarity and efficiency in triggers, conditions, and actions
This commit is contained in:
290
automations.yaml
290
automations.yaml
@@ -1223,164 +1223,170 @@
|
||||
- id: '1744503044809'
|
||||
alias: Daily Alexa Announcements for Kids
|
||||
description: Schedule of Alexa announcements for structured daily routine
|
||||
triggers:
|
||||
- at: 09:00:00
|
||||
trigger: time
|
||||
- at: '10:00:00'
|
||||
trigger: time
|
||||
- at: '10:15:00'
|
||||
trigger: time
|
||||
- at: '11:00:00'
|
||||
trigger: time
|
||||
- at: '12:00:00'
|
||||
trigger: time
|
||||
- at: '12:30:00'
|
||||
trigger: time
|
||||
- at: '13:00:00'
|
||||
trigger: time
|
||||
- at: '13:30:00'
|
||||
trigger: time
|
||||
- at: '14:00:00'
|
||||
trigger: time
|
||||
- at: '19:29:00'
|
||||
trigger: time
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: '{{ ''no camp'' in (state_attr(''calendar.family_events'', ''summary'')
|
||||
| lower) }}'
|
||||
actions:
|
||||
- variables:
|
||||
messages:
|
||||
08:00:00: Time for breakfast and a little TV!
|
||||
09:00:00: Outside play time! If it’s 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': Let’s move! Try a Minecraft brain break!
|
||||
'14:30:00': Time to relax with mindfulness or yoga.
|
||||
'19:29:00': Turds.
|
||||
- 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'')] }}'
|
||||
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: "19:29:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ 'no camp' in [
|
||||
item.summary.lower()
|
||||
for item in (state_attr('calendar.family_events', 'data') or [])
|
||||
if 'summary' in item
|
||||
] }}
|
||||
action:
|
||||
- variables:
|
||||
messages:
|
||||
"08:00:00": Time for breakfast and a little TV!
|
||||
"09:00:00": Outside play time! If it’s 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": Let’s move! Try a Minecraft brain break!
|
||||
"14:30:00": Time to relax with mindfulness or yoga.
|
||||
"19:29:00": Turds.
|
||||
- service: notify.alexa_media
|
||||
data:
|
||||
type: announce
|
||||
method: all
|
||||
action: notify.alexa_media
|
||||
target:
|
||||
# - media_player.living_room
|
||||
# - media_player.declan_s_room
|
||||
# - media_player.jordyn_s_room
|
||||
# - media_player.kitchen
|
||||
# - media_player.tv_alexa
|
||||
- media_player.parents_room
|
||||
message: "{{ messages[now().strftime('%H:%M:%S')] }}"
|
||||
data:
|
||||
type: announce
|
||||
method: all
|
||||
mode: single
|
||||
- id: '1744503044813'
|
||||
alias: Announce day camp preparation and pause TV
|
||||
trigger:
|
||||
- platform: time
|
||||
at: 08:30:00
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: "{{ 'camp' in (state_attr('calendar.family_events', 'summary')
|
||||
| lower) and 'no' not in (state_attr('calendar.family_events', 'summary')
|
||||
| lower) }}"
|
||||
- platform: time
|
||||
at: "08:30:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ state_attr('calendar.family_events', 'data') | selectattr('summary', 'defined') | map(attribute='summary') | map('lower') | select('search', 'camp') | select('search', 'no', invert=True) | list | count > 0 }}
|
||||
action:
|
||||
- service: media_player.play_media
|
||||
data:
|
||||
media_content_id: Pause kids TV
|
||||
media_content_type: routine
|
||||
target:
|
||||
entity_id: media_player.kitchen_echo
|
||||
- service: notify.alexa_media
|
||||
data:
|
||||
- service: media_player.play_media
|
||||
data:
|
||||
media_content_id: Pause kids TV
|
||||
media_content_type: routine
|
||||
target:
|
||||
- media_player.living_room
|
||||
- media_player.declan_s_room
|
||||
- media_player.jordyn_s_room
|
||||
- media_player.kitchen
|
||||
- media_player.tv_alexa
|
||||
message: 'Time to prepare for day camp. Please do the following: Fill water
|
||||
bottles, Put on deodorant, Brush hair for Jordyn, Brush teeth.'
|
||||
entity_id: media_player.kitchen_echo
|
||||
- service: notify.alexa_media
|
||||
data:
|
||||
target:
|
||||
# - media_player.living_room
|
||||
# - media_player.declan_s_room
|
||||
# - media_player.jordyn_s_room
|
||||
# - media_player.kitchen
|
||||
# - media_player.tv_alexa
|
||||
- media_player.parents_room
|
||||
message: >
|
||||
Time to prepare for day camp. Please do the following:
|
||||
Fill water bottles, Put on deodorant, Brush teeth, and Jordyn Brush your hair.
|
||||
- id: '1744503044814'
|
||||
alias: Announce time to leave for day camp and turn off TV
|
||||
trigger:
|
||||
- platform: time
|
||||
at: 08:45:00
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: "{{ 'camp' in (state_attr('calendar.family_events', 'summary')
|
||||
| lower) and 'no' not in (state_attr('calendar.family_events', 'summary')
|
||||
| lower) }}"
|
||||
- platform: time
|
||||
at: "08:45:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ state_attr('calendar.family_events', 'data')
|
||||
| selectattr('summary', 'defined') | map(attribute='summary')
|
||||
| map('lower') | select('search', 'camp')
|
||||
| select('search', 'no', invert=True) | list | count > 0 }}
|
||||
action:
|
||||
- service: media_player.play_media
|
||||
data:
|
||||
media_content_id: Turn Kids TV Off
|
||||
media_content_type: routine
|
||||
target:
|
||||
entity_id: media_player.basement_show
|
||||
- service: notify.alexa_media
|
||||
data:
|
||||
- service: media_player.play_media
|
||||
data:
|
||||
media_content_id: Turn Kids TV Off
|
||||
media_content_type: routine
|
||||
target:
|
||||
# - media_player.living_room
|
||||
# - media_player.declan_s_room
|
||||
# - media_player.jordyn_s_room
|
||||
# - media_player.kitchen
|
||||
# - media_player.tv_alexa
|
||||
- media_player.parents_room
|
||||
message: 'It is time to leave for day camp. Please do the following: Put on
|
||||
shoes, Get lunch, Get water bottle, Get bag if needed.'
|
||||
entity_id: media_player.basement_show
|
||||
- service: notify.alexa_media
|
||||
data:
|
||||
target:
|
||||
- media_player.parents_room
|
||||
message: >
|
||||
It is time to leave for day camp. Please do the following:
|
||||
Put on shoes, Get lunch, Get water bottle, Get bag if needed.
|
||||
- id: '1744503044145'
|
||||
alias: Reet Alexa Announcement Volume - Camp Days
|
||||
alias: Reset Alexa Announcement Volume - Camp Days
|
||||
description: Set Alexa announcement volume for structured daily routine
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: time
|
||||
at: 09:15:00
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: "{{ 'camp' in (state_attr('calendar.family_events', 'summary')
|
||||
| lower) and 'no' not in (state_attr('calendar.family_events', 'summary')
|
||||
| lower) }}"
|
||||
- platform: time
|
||||
at: "09:15:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ state_attr('calendar.family_events', 'data') | selectattr('summary', 'defined') | map(attribute='summary') | map('lower') | select('search', 'camp') | select('search', 'no', invert=True) | list | count > 0 }}
|
||||
action:
|
||||
- service: media_player.play_media
|
||||
data:
|
||||
media_content_id: Reset Alexa Volume
|
||||
media_content_type: routine
|
||||
target:
|
||||
entity_id: media_player.basement_show
|
||||
- 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
|
||||
triggers:
|
||||
- at: '19:17:00'
|
||||
trigger: time
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: '{{ ''no camp'' in (state_attr(''calendar.family_events'', ''summary'')
|
||||
| lower) }}'
|
||||
actions:
|
||||
- data:
|
||||
media_content_id: Reset Alexa Volume
|
||||
media_content_type: routine
|
||||
target:
|
||||
entity_id: media_player.basement_show
|
||||
action: media_player.play_media
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "19:17:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.m365_family_events
|
||||
state: 'on'
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ 'no camp' in [
|
||||
item.summary.lower()
|
||||
for item in (state_attr('calendar.family_events', 'data') or [])
|
||||
if 'summary' in item
|
||||
] }}
|
||||
action:
|
||||
- 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
|
||||
Reference in New Issue
Block a user