Update fireplace automation time and add new kids' routines and announcements

This commit is contained in:
Joshua King
2026-08-30 20:56:39 -04:00
parent fdca03e50b
commit 916dd91e0e
3 changed files with 279 additions and 134 deletions
+108 -108
View File
@@ -1,111 +1,111 @@
- id: '1772978762478'
alias: Kiosk Rotate Dashboards
description: During 8:30 AM-4:00 PM, show summer schedule only on weekdays with
no camp event today; otherwise rotate normally.
triggers:
- minutes: /1
trigger: time_pattern
actions:
- action: 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
- variables:
camp_events: '{{ (agenda[''calendar.family_events''][''events''] | default([]))
| selectattr(''summary'', ''defined'') | map(attribute=''summary'') | map(''lower'')
| select(''search'', ''camp'') | list | count }}'
should_show_summer: '{{ now().weekday() < 5 and today_at(''08:29:59'') <= now()
< today_at(''16:00'') and (camp_events | int(0)) == 0 }}'
current_view: '{{ states(''input_select.kiosk_view'') }}'
- choose:
- conditions:
- condition: template
value_template: '{{ should_show_summer | bool }}'
sequence:
- action: input_select.select_option
target:
entity_id: input_select.kiosk_view
data:
option: summer-schedule-kiosk
- conditions:
- condition: template
value_template: '{{ current_view == ''summer-schedule-kiosk'' and not (should_show_summer
| bool) }}'
sequence:
- action: input_select.select_next
target:
entity_id: input_select.kiosk_view
data:
cycle: true
default:
- action: input_select.select_next
target:
entity_id: input_select.kiosk_view
data:
cycle: true
mode: single
- id: '1772978826069'
alias: Kiosk Navigate Display
description: ''
triggers:
- trigger: state
entity_id: input_select.kiosk_view
actions:
- data:
browser_id:
- raspberry-kiosk
path: /{{ states('input_select.kiosk_view') }}
action: browser_mod.navigate
mode: restart
- id: '1774407470375'
alias: ESPHome Fleet Update
description: ''
triggers:
- at: 03:00:00
trigger: time
- event_type: esphome_fleet_update_trigger
trigger: event
conditions:
- condition: template
value_template: "{{ expand(integration_entities('esphome'))\n | selectattr('entity_id',\
\ 'contains', 'update')\n | selectattr('state', 'eq', 'on')\n | list | count\
\ > 0 }}\n"
actions:
- variables:
pending_devices: "{{ expand(integration_entities('esphome'))\n | selectattr('entity_id',\
\ 'contains', 'update')\n | selectattr('state', 'eq', 'on')\n | map(attribute='entity_id')\
\ | list }}\n"
pending_names: "{{ expand(integration_entities('esphome'))\n | selectattr('entity_id',\
\ 'contains', 'update')\n | selectattr('state', 'eq', 'on')\n | map(attribute='name')\
\ | join(', ') }}\n"
- action: notify.persistent_notification
data:
title: ESPHome Fleet Update Starting
message: 'Updating {{ pending_devices | count }} device(s): {{ pending_names
}}
# - id: '1772978762478'
# alias: Kiosk Rotate Dashboards
# description: During 8:30 AM-4:00 PM, show summer schedule only on weekdays with
# no camp event today; otherwise rotate normally.
# triggers:
# - minutes: /1
# trigger: time_pattern
# actions:
# - action: 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
# - variables:
# camp_events: '{{ (agenda[''calendar.family_events''][''events''] | default([]))
# | selectattr(''summary'', ''defined'') | map(attribute=''summary'') | map(''lower'')
# | select(''search'', ''camp'') | list | count }}'
# should_show_summer: '{{ now().weekday() < 5 and today_at(''08:29:59'') <= now()
# < today_at(''16:00'') and (camp_events | int(0)) == 0 }}'
# current_view: '{{ states(''input_select.kiosk_view'') }}'
# - choose:
# - conditions:
# - condition: template
# value_template: '{{ should_show_summer | bool }}'
# sequence:
# - action: input_select.select_option
# target:
# entity_id: input_select.kiosk_view
# data:
# option: summer-schedule-kiosk
# - conditions:
# - condition: template
# value_template: '{{ current_view == ''summer-schedule-kiosk'' and not (should_show_summer
# | bool) }}'
# sequence:
# - action: input_select.select_next
# target:
# entity_id: input_select.kiosk_view
# data:
# cycle: true
# default:
# - action: input_select.select_next
# target:
# entity_id: input_select.kiosk_view
# data:
# cycle: true
# mode: single
# - id: '1772978826069'
# alias: Kiosk Navigate Display
# description: ''
# triggers:
# - trigger: state
# entity_id: input_select.kiosk_view
# actions:
# - data:
# browser_id:
# - raspberry-kiosk
# path: /{{ states('input_select.kiosk_view') }}
# action: browser_mod.navigate
# mode: restart
# - id: '1774407470375'
# alias: ESPHome Fleet Update
# description: ''
# triggers:
# - at: 03:00:00
# trigger: time
# - event_type: esphome_fleet_update_trigger
# trigger: event
# conditions:
# - condition: template
# value_template: "{{ expand(integration_entities('esphome'))\n | selectattr('entity_id',\
# \ 'contains', 'update')\n | selectattr('state', 'eq', 'on')\n | list | count\
# \ > 0 }}\n"
# actions:
# - variables:
# pending_devices: "{{ expand(integration_entities('esphome'))\n | selectattr('entity_id',\
# \ 'contains', 'update')\n | selectattr('state', 'eq', 'on')\n | map(attribute='entity_id')\
# \ | list }}\n"
# pending_names: "{{ expand(integration_entities('esphome'))\n | selectattr('entity_id',\
# \ 'contains', 'update')\n | selectattr('state', 'eq', 'on')\n | map(attribute='name')\
# \ | join(', ') }}\n"
# - action: notify.persistent_notification
# data:
# title: ESPHome Fleet Update Starting
# message: 'Updating {{ pending_devices | count }} device(s): {{ pending_names
# }}
'
- repeat:
for_each: '{{ pending_devices }}'
sequence:
- action: update.install
target:
entity_id: '{{ repeat.item }}'
continue_on_error: true
- wait_template: '{{ not is_state(repeat.item, ''on'') }}
# '
# - repeat:
# for_each: '{{ pending_devices }}'
# sequence:
# - action: update.install
# target:
# entity_id: '{{ repeat.item }}'
# continue_on_error: true
# - wait_template: '{{ not is_state(repeat.item, ''on'') }}
'
timeout: 00:05:00
continue_on_timeout: true
- delay:
minutes: 2
- action: notify.persistent_notification
data:
title: ESPHome Fleet Update Complete
message: 'Finished updating {{ pending_devices | count }} device(s): {{ pending_names
}}
# '
# timeout: 00:05:00
# continue_on_timeout: true
# - delay:
# minutes: 2
# - action: notify.persistent_notification
# data:
# title: ESPHome Fleet Update Complete
# message: 'Finished updating {{ pending_devices | count }} device(s): {{ pending_names
# }}
'
# '