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.1.2-1.aarch64.rpm179.44 KB22/08/2026 - 20:28
Changelog: 

- The TV certificate is picked out of the chain properly. The TV sends its own certificate together with the intermediate that issued it, and the order of the errors is not ours to choose - taking the first one compared the intermediate against the pinned fingerprint and locked the app out entirely. - Reconnect timing matched to the TV: it accepts at most six connections at a time and reclaims abandoned attempts only slowly, so retrying quickly locked the app out of its own TV. Attempts are now spaced further apart. - The key channel is requested again when it drops. Until now a single drop left the D-pad, the arrow keys and the number pad greyed out until a restart. - The YouTube tile works again. Recent firmware answers system.launcher/ getAppState with "403 access denied" for every app, and the failed query left the pending launch waiting forever, so nothing happened at all. - Text field: separate buttons for text and for search. Without a text field reported by the TV, no ENTER is sent any more - in apps that draw their own keyboard, YouTube among them, it only pressed the highlighted key. - The keyboard stays open on the pointer page and the pointer area keeps its size instead of growing and shrinking. - System data is grouped in fixed sections regardless of the order the TV answers in: device, network, ports, sound, inputs. New: the negotiated encryption. The tuner sits with the inputs, and mute reads on/off since it is a state, not a capability. - Pull-down menu reordered; connect and disconnect moved to the device list, which now also shows model, serial number and MAC address. - Portrait only - no page rotates any more.

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.

JimKnopfIoT's picture

@projectmoon Please try the new 1.1.2 Version. The app wakes the TV with a magic packet that needs its MAC address which is now stored.

Try a long press — it opens the list of inputs and apps and switches directly. The short tap sends the remote's input key, which not every model acts on.

Text is a webOS limitation. Some apps draw their own keyboard that can't be skipped or i didn't found a way to skip it. YouTube is one of them. On top of that the app used to press ENTER first to open the keyboard,
and when no field was focused that simply hit whatever was highlighted.

The text row now (1.1.2)  has two separate buttons: the check mark sends text into a field on the TV, and the magnifier sends your term to YouTube as a launch parameter, without any keyboard involved.

That second one is the reliable way to search. 

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).