Zum Hauptinhalt springen

LG Horizon Smart-Home-Integration, kostenlos und Open Source

LG Horizon-Integration für Gladys Assistant

LG Horizon boxes of Ziggo, Telenet, BASE, Sunrise, Virgin Media and UPC, via the operator cloud.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

This integration brings the LG Horizon set-top boxes (Mediabox Next, Next Mini, TV Box, 360 Box…) of your operator account into Gladys, through the operator's cloud: the same API (REST and MQTT) as the app and the web TV site.

Warning: this integration has never been tested with a real account. It was written from the lghorizon library and tested against simulated answers only. Feedback is welcome on the Gladys forum.

Unofficial, not affiliated with LG, Liberty Global or the operators named here.

Operators​

OperatorCountryLogin
ZiggoNetherlandsuser name and password
TelenetBelgiumrefresh token
BASE TVBelgiumrefresh token
Sunrise (formerly UPC)Switzerlandrefresh token
Virgin MediaUnited Kingdomrefresh token
Virgin MediaIrelanduser name and password
UPCPolanduser name and password

What the reference library tells (lghorizon 0.12.2, October 2026):

  • Ziggo and Telenet are the most followed: recent fixes (July 2026 for Ziggo) and issues opened in 2026. A Telenet issue of September 2026 reports a login that hangs with a refresh token, unsolved so far.
  • Sunrise and Virgin Media (UK and Ireland) had refused logins early in 2026, fixed since according to the closed issues.
  • BASE TV and UPC Poland are in the code without recent feedback.
  • Magenta TV (Austria) is not supported: it was never in lghorizon (no API address known for it), and no issue mentions it.

Configuration​

  1. Choose your operator.
  2. Depending on the operator:
    • Ziggo, Virgin Media Ireland, UPC: type the user name (often the e-mail address) and the password of the account.
    • Telenet, BASE, Sunrise, Virgin Media UK: paste a refresh token, see below.
  3. Save. The boxes of the account show in the Discovery tab: add the ones you want.

The password and the token are kept by Gladys in its database, never shown again, and sent only to the auth service of your operator.

Getting a refresh token​

  1. On a computer, open the web TV site of your operator (for example telenet.tv, sunrisetv.ch, virgintvgo.virginmedia.com) and log in.
  2. Open the developer tools of the browser (F12), Application tab (Chrome, Edge) or Storage (Firefox), then the Local storage of the site.
  3. Copy the value of the key that holds refreshToken (for example flutter._WEB_SECURE_STORAGE_refreshToken on some sites).
  4. Paste it in the Refresh token field and save.

The token changes at every use: the integration keeps the newest one in its /data volume (a file only the integration can read) and uses it after a restart. Logging out of the web site may end the token: paste a new one then.

What each box shows​

FeatureKindValues
Powerread only1 running, 0 standby or offline
Reachableread only1 reachable through the cloud (running or standby), 0 offline
Channeltextname of the channel shown, "—" otherwise
Programtexttitle (and episode) of the program, VOD, recording or application
Playingread only1 playing, 0 paused or off
Wake upbuttonleaves standby
Standbybuttongoes to standby
Play, Pausebuttonsresume, pause
Next channel, Previous channelbuttonschange the channel

No volume: the operator's cloud has no volume key (the volume is set on the TV).

Feature names are in French or English, following the "Language of the feature names" option.

Commands​

The box only knows one power key (a toggle) and one play/pause key (a toggle). So that a press never does the opposite of what was asked:

  • the key is sent only when the state the box reported live is the opposite of the one asked ("Wake up" on a running box does nothing);
  • when the state is unknown (box offline, live link down, or no state received yet), nothing is sent and Gladys shows an error;
  • after a press, any other power command is ignored until the box reports the new state (45 s at most); the same for play/pause (10 s at most).

Power and standby are buttons, not a switch: an "everything off" of a voice assistant or a scene cannot trigger them.

Status and errors​

  • Credentials refused: the integration stops and does not try again by itself (a password tried again and again can lock the account). The stop is kept across restarts. Fix the configuration (new credentials are tried at once) or click Reconnect (a single attempt).
  • Too many requests (429): a pause of 1 minute to 6 hours, kept across restarts.
  • Cloud unreachable: tried again after 1, 2, 5, 15 then 30 minutes.
  • Live link down: tried again after 30 s, 1, 2, 5, 10 then 15 minutes; a link that opens then drops at once never loops.

The session is renewed by a timer, one day before the refresh token expires (every 12 hours at most).

Privacy​

The integration only talks to the cloud of your operator: over HTTPS for the API and over a secure WebSocket (TLS) for MQTT. It reads the list of boxes, the channel list and the title of what is watched. It sends to the boxes, over the operator's MQTT: the keys asked, the announcement of its client at each connection (like the app, a "running" status on its own topic), and requests for the display state (CPE.getUiStatus) at connection, after a command, at the end of a program and every 15 minutes.

Credits​

JavaScript port of lghorizon (MIT), the library of the Home Assistant integration.

Konfigurationseinstellungen​

Diese Einstellungen fragt LG Horizon in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Your TV operator accountsectionNeinBrings the LG Horizon set-top boxes of your account into Gladys, through the cloud of your operator: power state, channel and program shown, playing or paused, and buttons to wake up, put in standby, play, pause, and go to the next or previous channel. Ziggo, Virgin Media Ireland and UPC (Poland) accounts log in with the user name and password; Telenet, BASE, Sunrise and Virgin Media UK only with a refresh token read from the operator's web TV site (see the guide). No volume: the operator's cloud cannot change it. Never tested with a real account. Unofficial, not affiliated with LG, Liberty Global or the operators.
OperatorselectJa
User name (Ziggo, Virgin Media Ireland, UPC)stringNeinThe e-mail address or user name of your operator account. Leave empty for the operators that use a refresh token.
Password (Ziggo, Virgin Media Ireland, UPC)secretNeinKept by Gladys in its database, never shown again, sent only to the auth service of your operator.
Refresh token (Telenet, BASE, Sunrise, Virgin Media UK)secretNeinRead from the operator's web TV site once logged in (see the guide). It changes at every use: the integration keeps the newest one in its /data volume. A new one pasted here replaces it. Kept by Gladys in its database, never shown again, sent only to your operator.
Language of the feature namesselectNeinUsed for the names of the features of the boxes added from now on.

So installierst du LG Horizon in Gladys​

  1. Öffne in Gladys Integrationen: LG Horizon erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-lg-horizon:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-lg-horizon.

LG Horizon benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

LG Horizon ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂