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