ReviewOS

home-lang/home-os

Phone remote: mDNS-advertised HTTP + WebSocket control API on the device, and an stx web app (served by the device) with D-pad, text input, now-playing, and cast-to-device

#100
Open chris opened this 8 days ago ·
8 days ago

Epic: #113 · Milestone: MC7 — TV shell

Why

Text entry and library browsing from a phone is the biggest usability win after CEC, and the same API is what the HIL scripts use to drive playback (#88). Own tech: HomeOS HTTP server (none exists — net/http.home is client-only), net/websocket.home (unrun), stx for the web remote (runs in the phone's browser, not on the device).

Tasks

  • Minimal HTTP/1.1 server + WebSocket server in Home (static files from the boot partition, JSON API, auth by a 6-digit pairing code shown on screen, per-device tokens).
  • API: /api/keys (remote grammar), /api/text, /api/now-playing, /api/play {id|url}, /api/library/..., /api/perf (used by gates), events over WS.
  • Web remote in stx (apps/tv/remote-web/), built to static assets at build time, ≤ 200 KB; opens via the QR code in Settings; mDNS name homeos-tv.local (#105).
  • Rate limiting and LAN-only binding by default.

Acceptance

Phone browser controls the shell on the Pi over Ethernet; HIL scripts use the API to start the reference clips.

Size: M · Depends on: #69, #105, #92 · Blocks: #88 (automation)

Sign in to comment on this issue.