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.
- Optional bearer-token authentication is validated during setup and supports Home Assistant reauthentication.
- Credential-bearing query parameters are removed from entity state and persisted resume keys.
- RelayTV services are registered from
services.yaml:smart_urlplay_nowannounceplay_temporaryoverlayplay_syncedsnapshotplay_with_resumeupload_mediaupload_media_playupload_media_enqueue
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), a server/display name, and the optional RelayTV API token.
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. - Upload services target RelayTV
POST /ingest/media,POST /ingest/media/play, andPOST /ingest/media/enqueue. - Upload services accept either a Home Assistant local media source selection or an allowlisted
file_pathvisible inside the Home Assistant container. - 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. - Version 0.4.0 requires Home Assistant 2026.7 or newer.
For fuller documentation and examples, see the repository root README.
License
RelayTV Home Assistant is licensed under the GNU General Public License,
version 3 only (GPL-3.0-only). See the repository root LICENSE file.