Android — coming very soon Learn more

Bonjour zero-config pairing

OneTV advertises itself on your local network as `_noopytv._tcp`. Home Assistant's Integration UI shows your Apple TV in the discovery list within seconds. No token, no IP to type, no manual JSON. One click and you're done.

REST API on port 8765

A small HTTP server lives inside OneTV exposing four endpoints: `GET /api/v1/channels` (the full channel list), `GET /api/v1/categories` (the category tree), `GET /api/v1/player` (live state + metadata), `GET /api/v1/player/state` (compact state). Pre-encoded JSON caches make polling free.

Sub-second SSE push

Subscribe to `GET /api/v1/events/stream` and get Server-Sent Events as soon as the channel changes, playback starts/stops or a sport context is detected. Home Assistant automations can react in real time without polling.

media_player entity

Once paired, OneTV appears in Home Assistant as a `media_player` entity exposing `state` (playing/paused/idle), `media_title`, `media_artist`, `media_image_url`, `source` (channel name), `source_list` (all channels) and the standard `media_play`, `media_pause`, `media_stop`, `media_next_track` services.

Bi-directional control

Read OneTV's state from Home Assistant dashboards, change channels from Lovelace tiles, switch audio or subtitle tracks from an automation, or trigger a stream by URL — all without leaving the smart home UI.

Local-only, no cloud

OneTV's REST server only listens on the local network — there is no exposed token, no cloud relay, no third-party. Home Assistant talks directly to your Apple TV over LAN. Your data never leaves your home.

How do I enable it?

Open Settings → Home Assistant in OneTV on your Apple TV (or iPhone/iPad) and toggle "Expose to Home Assistant". The Bonjour advertisement starts immediately. In Home Assistant, go to Settings → Devices & Services → Add Integration, search for "OneTV Connect", click your device.

What automations can I build?

Anything that reads state or sends commands. A few real examples: "When OneTV plays a sport channel, dim the living-room lights to 30 %." "At 8:00 pm on weekdays, switch OneTV to the news channel." "If OneTV is playing and the doorbell rings, pause it." "When the iPhone Live Activity reports a goal, flash the kitchen light."

Will it slow down the Apple TV?

No. The REST server pre-encodes JSON caches when state changes and serves them straight from memory. We measured a 0 ms hit on the KSPlayer main thread even with Home Assistant polling every 5 seconds.

Does it work with HomeKit too?

Not directly — HomeKit's media-player profile is restrictive. But you can bridge HomeKit through Home Assistant (or any other automation hub that speaks REST/SSE) and reach the same outcome.

I don't use Home Assistant. Is the API still useful?

Yes. Any device on your network that can speak HTTP can talk to OneTV — Shortcuts on iOS, Node-RED, openHAB, Athom Homey, a Raspberry Pi running a Python script, etc. The contract is plain JSON + SSE.

Your TV, finally part of the smart home.

Free to download. Home Assistant integration available on every tier.

Download on the App Store