RelayTV Home Assistant Integration
This integration provides a RelayTV media_player entity, RelayTV service actions, and an optional Home Assistant sidebar panel embedding RelayTV UI.
Implemented Behavior
media_playerplatform is enabled (custom_components/relaytv/media_player.py).- Hybrid state updates:
- bootstrap/reconnect uses RelayTV
GET /status - RelayTV
GET /ui/eventsSSE provides hot-state updates statusevents are treated as authoritative full snapshotsplayback/queue/jellyfinevents trigger fast updates or targeted refreshes
- bootstrap/reconnect uses RelayTV
- Sidebar panel is registered via Home Assistant frontend iframe panel APIs.
- RelayTV services are registered from
services.yaml:smart_urlplay_nowannounceplay_temporaryoverlayplay_syncedsnapshotplay_with_resume
Setup
-
Place this folder at:
/config/custom_components/relaytv/ -
Restart Home Assistant.
-
Add integration: Settings -> Devices & Services -> Add Integration -> RelayTV.
-
Provide RelayTV base URL (example:
http://relaytv-host:8787) and a server/display name.
Options
panel_enabledpanel_target_entry_idsensor_stream_mappings
Notes
smart_urluses RelayTVPOST /smart, which enqueues while already playing and otherwise starts playback immediately.play_nowandannouncecurrently target RelayTVPOST /play.- RelayTV also exposes
POST /play_now, but this integration does not currently use its preserve-current behavior. - Overlay requires
textorimage_url. - Snapshot requires active playback on the RelayTV server.
- Snapshot responses are normalized to absolute URLs for Home Assistant entity attributes.
- The integration keeps
/statusas bootstrap/fallback and does not treat/ui/eventsas a replay log.
For fuller documentation and examples, see the repository root README.