Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save PaulHibbertMasterOfTheUniverse/e4da731e5a151da55343a488d6191ca4 to your computer and use it in GitHub Desktop.

Select an option

Save PaulHibbertMasterOfTheUniverse/e4da731e5a151da55343a488d6191ca4 to your computer and use it in GitHub Desktop.
Automation to automatically reload a video feed in Fully Kiosk in the background to keep it "warm"
blueprint:
name: Fully Kiosk – Warm Background Reload (v2)
description: >
Keeps Fully Kiosk preloaded on Fire TV by refreshing the last URL at a set interval
while Fully is not the foreground app. Uses a per-minute trigger + modulo check
(because time_pattern doesn't accept templates).
domain: automation
input:
fire_tv_entity:
name: Fire TV Media Player
description: Select your Fire TV entity (media_player)
selector:
entity:
domain: media_player
fully_device:
name: Fully Kiosk Device
description: Select the Fully Kiosk device (from the Fully Kiosk integration)
selector:
device:
integration: fully_kiosk
last_url_helper:
name: Last URL Helper (input_text)
description: The input_text that stores the last loaded URL
selector:
entity:
domain: input_text
interval:
name: Refresh Interval (minutes)
description: Run only every N minutes (e.g., 10)
default: 10
selector:
number:
min: 1
max: 60
mode: slider
unit_of_measurement: minutes
mode: single
variables:
fire_tv: !input fire_tv_entity
fully_dev: !input fully_device
last_url: !input last_url_helper
interval: !input interval
trigger:
# Fire every minute; we'll gate with conditions
- platform: time_pattern
minutes: "*"
condition:
# Only run on minute boundaries that match the chosen interval
- condition: template
value_template: >
{{ (now().minute % (interval | int)) == 0 }}
# Only if Fully is NOT the foreground app
- condition: template
value_template: >
{% set app = state_attr(fire_tv,'app_id') | default('') %}
{% set src = state_attr(fire_tv,'source') | default('') %}
{{ 'de.ozerov.fully' not in [app, src] }}
# Only if we actually have a last-URL value
- condition: template
value_template: >
{{ states(last_url) not in ['', 'unknown', 'unavailable'] }}
action:
- service: fully_kiosk.load_url
target:
device_id: !input fully_device
data:
url: "{{ states(last_url) }}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment