cd /news/ai-products/how-i-built-a-single-ios-app-that-co… · home topics ai-products article
[ARTICLE · art-16489] src=dev.to pub= topic=ai-products verified=true sentiment=· neutral

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

A developer built a single iOS app that controls all four Hisense smart-TV platforms—VIDAA, Roku TV, Google TV, and Fire TV—after losing the remote for a Google TV-flavored Hisense set. The app automatically detects the TV's operating system by browsing for local-network service types, pairing via each platform's native protocol without requiring user input. It supports MQTT over TLS for VIDAA, ECP over HTTP for Roku, gRPC with TLS for Google TV, and ADB-over-Wi-Fi for Fire TV, all operating solely over the local area network with no cloud dependency.

read2 min publishedMay 28, 2026

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 — 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, 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.

Happy to answer iOS protocol questions in the comments.

── more in #ai-products 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-i-built-a-single…] indexed:0 read:2min 2026-05-28 ·