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