# How I built a single iOS app that controls all four Hisense smart-TV platforms

> Source: <https://dev.to/hisuperdev/how-i-built-a-single-ios-app-that-controls-all-four-hisense-smart-tv-platforms-30ef>
> Published: 2026-05-28 13:27:48+00:00

Hisense ships TVs with four different operating systems — VIDAA,

Roku TV, Google TV, and Fire TV. The official "Remote for Hisense

TV" you find in their app store only works with VIDAA. When I lost

my own remote, I had a Google TV-flavored Hisense, so I built a

single-app solution that pairs with whichever platform the user has.

Here's how each of the four local-network protocols works, and how

the app picks the right one without asking the user.

| Platform | Local protocol | Pairing |
|---|---|---|
| VIDAA | MQTT over TLS | Direct local connection |
| Roku TV | ECP over HTTP | Open by default on port 8060 |
| Google TV | gRPC, TLS) | 4-digit PIN |
| Fire TV | ADB-over-Wi-Fi | One-time TV-side prompt |

All four are LAN-only — no cloud involvement once paired.

VIDAA TVs accept TLS connections on port 36669 and speak MQTT

underneath. The control message format publishes button presses as

small JSON payloads — `{"key": "KEY_VOLUMEUP"}`

etc. — to predictable

topics scoped by the TV's MAC address. Other developers in the Home

Assistant community have written about this in detail; my Swift

implementation is on top of that prior work.

Almost too easy. Roku publishes the External Control Protocol

publicly. Every Roku and Hisense Roku TV listens on port 8060:

`curl -X POST http://192.168.1.100:8060/keypress/Home`

curl -X POST http://192.168.1.100:8060/keypress/VolumeUp

curl http://192.168.1.100:8060/query/active-app

curl http://192.168.1.100:8060/query/device-info

curl -X POST http://192.168.1.100:8060/launch/12

No pairing. No PIN. If your phone and the TV are on the same LAN,

you can drive it from a curl one-liner. This is why I shipped an [in-browser Roku remote](https://hiremote.app/hisense-roku-tv-remote#remote) — for Hisense Roku TV owners, you don't actually need an app at all. The page implements ECP from JavaScript and runs in any modern browser. Cannibalises my own install funnel for that segment, but it's the right call for the user.

Google TV uses gRPC over TLS with cert pinning. Pairing exchanges a

4-digit PIN through paired proto messages — the Android TV Remote v2

protocol. The .proto definitions are discussed in various developer

communities; from there it's standard gRPC client work.

Fire TV runs Android and supports network-mode ADB on port 5555.

After the user enables developer-friendly settings on the TV, the

app authorizes once via a permission prompt on the TV screen.

The app browses for service types:

The first responder wins. The user never picks "what kind of Hisense

TV is this" unless detection fails.

The implementation ships as [Remote for Hisense TV on the App Store](https://apps.apple.com/us/app/remote-for-hisense-tv/id6740401390), free with a Pro tier ($9.99/year) that adds the Apple Watch app, Lock Screen widget, and removes ads. The marketing site with deeper troubleshooting articles is at [hiremote.app](https://hiremote.app).

Happy to answer iOS protocol questions in the comments.
