Phased Plan
— TV Welcome Screen (Fire TV → Roku) (2026‑02‑05)
Overall strategy
- Keep all “booking logic” server-side (parse iCal →
compute state).
- Keep the TV as a thin client that simply
loads/renders a URL (Fire TV) or JSON-driven UI (Roku).
- Optimize for a repeatable setup across multiple
units.
Phase 0 (0.5 day):
Requirements + device audit
Goal: prevent surprises from OS/device
constraints.
Collect from James - Fire TV models + Fire OS
versions (or “Fire TV built-in” models) - Roku models (Roku TV vs Roku
stick/box) + Roku OS versions - Network: SSID stability, captive portal,
client isolation - Desired lock-down level - Whether adding a small
always-on controller box is acceptable (for Roku auto-launch)
Exit criteria - A single “target configuration” is
chosen for Fire TV pilot.
Phase 1 (this week):
Fire TV pilot in 1 unit
Scope
- Web welcome screen v1 (TV-optimized)
- iCal-based state switching
- Fire TV configured to auto-open the welcome screen
on boot (best effort)
Implementation plan
(suggested)
- Web welcome screen v1
- Create a display URL per unit (tokenized)
- Basic sections: Welcome, Wi‑Fi + QR, checkout time, key rules,
contact
- Auto-refresh (every 5–15 min)
- iCal ingestion + simple state machine
- Fire TV device setup (choose one approach)
- Preferred: custom Fire TV WebView app loading the welcome URL
- Alternative (if no dev): a signage player app that can load a
website + autostart
- Operational hardening
- Configure Wi‑Fi and disable/suppress sleep/screensaver where
possible
- Ensure the welcome screen can recover after Wi‑Fi loss
Verification / acceptance
tests
Run these tests in the unit (or lab) and record results: -
Cold boot: unplug power → plug in → welcome screen
appears within X seconds. - TV off/on: turn TV off,
wait 30s, on → welcome screen appears. - Network
outage: disconnect Wi‑Fi/router for 2 minutes → device shows
fallback and recovers. - State switch: change iCal (or
use a test calendar) and verify the banner/state changes within polling
interval.
Phase 1 definition of done - A guest can turn on the
TV and see the welcome screen without needing instructions.
Phase 1.5
(optional): Repeatable setup playbook
Goal: make it scalable to multiple units.
- Document a 10-minute setup checklist per Fire TV
- Decide whether autostart requires ADB per device; if yes, create a
“setup rig” process
- Decide how devices are reset between guests (if needed)
Phase 2 (next): Roku version
Scope
- Roku channel that renders the welcome experience from
server-provided JSON + assets
- Decide whether “auto-launch” is required or acceptable to be
manual
Two paths
Path A (simpler): channel + manual launch - Guest
opens the “Welcome” channel from Home - Optional: screensaver channel
for idle display
Path B (true auto-launch): channel + LAN controller using
ECP - Deploy a small always-on controller device per
unit/network - Controller sends
POST /launch/<channelId> when Roku comes online
Roku ECP reference: -
https://developer.roku.com/docs/developer-program/dev-tools/external-control-api.md
Verification / acceptance
tests (Roku)
- Channel loads and renders within X seconds
- Content refresh works
- Video playback works (if required)
- If using ECP controller: power cycle tests + confirm ECP settings
remain enabled
Key dependencies
- Stable per-unit welcome URL + hosting
- iCal feed availability and polling approach
- Asset pipeline (images, QR generation, optional video hosting)
- On-device constraints by model/OS version
Risks to watch
- Fire OS updates breaking autostart behavior
- Roku inability to truly auto-launch without extra hardware
- Guest “escape” from the welcome screen (consumer device
reality)
- YouTube autoplay limitations (prefer hosted video)
Recommendation
(quickest path to a working demo)
- Phase 1: Fire TV pilot with a thin-client WebView
app loading a tokenized URL; server handles iCal/state.
- Phase 2: Roku channel; only add ECP controller if
strict auto-start is non-negotiable.