Refactor daily Alexa announcements automation for improved clarity and efficiency in triggers, conditions, and actions

This commit is contained in:
Joshua King
2025-06-30 21:11:47 -04:00
parent 2bf523f09b
commit c9db0c6d0c

View File

@@ -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 its 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 its 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': Lets 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": Lets 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:
mode: single media_content_id: Reset Alexa Volume
media_content_type: routine
target:
entity_id: media_player.basement_show
mode: single