A native Sailfish OS remote control for LG webOS televisions. It speaks the LG SSAP WebSocket protocol (over TLS) directly - d-pad, volume, channels, inputs, media keys, a pointer/touchpad, a number pad and app launching - and powers the TV on with Wake-on-LAN. TVs are found by SSDP discovery (or a quick port scan), and several TVs can be stored and switched between.
Everything runs on the device and stays on your own network: it talks only to the TV you paired with. The first connection shows a pairing prompt on the TV; the key the TV returns is stored locally on the phone. No account, no cloud, no telemetry.
FEATURES
- Full remote: d-pad, OK/back/home, volume and channel, inputs, media transport keys
- Pointer / touchpad mode and a number pad
- Six quick-launch tiles: five you assign yourself (press and hold one and pick
any app or input the TV reports), plus a fixed one that takes a screenshot of
the TV and puts it in the gallery
- Apps and inputs listed with the icons the TV serves, sorted by name
- Wake-on-LAN power-on; SSDP discovery, with a fallback scan of the local subnet
- Store several TVs and switch between them
- Auto-reconnect: the connection keeps itself alive and comes back on its own
- The TV's certificate is pinned on the first connection and checked from then on
STATUS
Proof of concept / work in progress, shared as is, no warranty. Built and used on a Sony Xperia 10 III (Sailfish OS 5.x). English user interface with a German translation. Works with newer LG webOS models that speak SSAP.
ARCHITECTURES
aarch64 (Sailfish OS 5.0+). No armv7hl build.
Written with Claude Code (Anthropic).
Source, issues, releases: https://github.com/JimKnopfIoT/harbour-ilg-remote
| Attachment | Size | Date |
|---|---|---|
| 110.34 KB | 18/08/2026 - 16:23 | |
| 171.72 KB | 22/08/2026 - 10:09 |
- User interface in English, with a German translation.
- Quick launch on the number pad is now a 2x3 block: five freely assignable
tiles (press and hold to assign an app or input) and a fixed sixth tile that
takes a screenshot of the TV and stores it in the gallery.
- Apps and inputs are listed with the icons the TV serves, sorted by name -
the TV hands them out unsorted, which buried Live TV near the end.
- More reliable discovery: the SSDP search is repeated on every network
interface, and if nothing answers the local subnet is probed on port 3001.
- The TV certificate is remembered on the first connection and checked from
then on; a mismatch stops the connection instead of being ignored. The same
check covers the icon and screenshot downloads.
- The TLS version is no longer pinned to 1.2; the TV takes 1.2 and 1.3 alike.
Downloads from the TV are retried, because it refuses a handshake now and
then - measured at roughly one in five.
- A Sailjail profile (Internet, Pictures) instead of no declaration at all.
- Pointer movements are sent in batches, and without a configured device the
app no longer retries in a loop.
- Apps and inputs are requested independently, so one rejected query no
longer leaves the list empty.
Comments
Vieno
Fri, 2026/08/21 - 19:50
Permalink
Hi,
this app work brilliant with my LG TV. Auto discovery didn't work, but after keying in the IP and MAC all was good. Thanks a lot for sharing it.
Best regards,
Wolfgang
JimKnopfIoT
Sat, 2026/08/22 - 10:20
Permalink
@Vieno You may retry auto discover with the actual version (=> 1.0.1).