iLG remote

Rating: 
5
Your rating: None Average: 5 (1 vote)

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

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-lgremote-1.0.1-1.aarch64.rpm110.34 KB18/08/2026 - 16:23
File harbour-lgremote-1.1.0-1.aarch64.rpm171.72 KB22/08/2026 - 10:09
Changelog: 

- 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

projectmoon's picture

Oh also, sending text to TV doesn't seem to send the text, but it seems to press a key on the onscreen keyboard.

projectmoon's picture

Generally seems to work. Can't turn my TV on with it (app only seems to find TV while it'd on). And source input button doesn't work. Everything else important does.

Vieno's picture

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's picture

@Vieno You may retry auto discover with the actual version (=> 1.0.1).