- 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'') }} ' 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 }} '