Intégration domotique LG Horizon, gratuite et open source

Décodeurs LG Horizon de Ziggo, Telenet, BASE, Sunrise, Virgin Media et UPC, par le cloud opérateur.
Cette intégration amène dans Gladys les décodeurs LG Horizon (Mediabox Next, Next Mini, TV Box, 360 Box…) de votre compte d'opérateur, par le cloud de l'opérateur : la même API (REST et MQTT) que l'application et le site TV web.
Attention : cette intégration n'a jamais été testée avec un vrai compte. Elle a été écrite d'après la bibliothèque lghorizon et testée seulement avec des réponses simulées. Vos retours sont les bienvenus sur le forum de Gladys.
Non officielle, sans lien avec LG, Liberty Global ni les opérateurs cités.
Opérateurs
| Opérateur | Pays | Connexion |
|---|---|---|
| Ziggo | Pays-Bas | identifiant et mot de passe |
| Telenet | Belgique | jeton de rafraîchissement |
| BASE TV | Belgique | jeton de rafraîchissement |
| Sunrise (ex-UPC) | Suisse | jeton de rafraîchissement |
| Virgin Media | Royaume-Uni | jeton de rafraîchissement |
| Virgin Media | Irlande | identifiant et mot de passe |
| UPC | Pologne | identifiant et mot de passe |
Ce que dit la bibliothèque de référence (lghorizon 0.12.2, octobre 2026) :
- Ziggo et Telenet sont les plus suivis : des correctifs récents (juillet 2026 pour Ziggo) et des tickets ouverts en 2026. Un ticket Telenet de septembre 2026 signale une connexion qui reste bloquée avec un jeton de rafraîchissement, sans solution à ce jour.
- Sunrise et Virgin Media (UK et Irlande) ont connu des refus de connexion début 2026, réglés depuis selon les tickets fermés.
- BASE TV et UPC Pologne figurent dans le code sans retour récent.
- Magenta TV (Autriche) n'est pas pris en charge : il n'a jamais figuré dans lghorizon (aucune adresse d'API connue pour lui), et aucun ticket ne le mentionne.
Configuration
- Choisissez votre opérateur.
- Selon l'opérateur :
- Ziggo, Virgin Media Irlande, UPC : saisissez l'identifiant (souvent l'adresse e-mail) et le mot de passe du compte.
- Telenet, BASE, Sunrise, Virgin Media UK : collez un jeton de rafraîchissement (refresh token), voir ci-dessous.
- Enregistrez. Les décodeurs du compte apparaissent dans l'onglet Découverte : ajoutez ceux que vous voulez.
Le mot de passe et le jeton sont gardés par Gladys dans sa base, jamais réaffichés, et envoyés seulement au service de connexion de votre opérateur.
Obtenir un jeton de rafraîchissement
- Sur un ordinateur, ouvrez le site TV web de votre opérateur (par exemple telenet.tv, sunrisetv.ch, virgintvgo.virginmedia.com) et connectez-vous.
- Ouvrez les outils de développement du navigateur (F12), onglet Application (Chrome, Edge) ou Stockage (Firefox), puis Stockage local du site.
- Copiez la valeur de la clé qui contient
refreshToken(par exempleflutter._WEB_SECURE_STORAGE_refreshTokensur certains sites). - Collez-la dans le champ Jeton de rafraîchissement et enregistrez.
Le jeton change à chaque usage : l'intégration garde le plus récent dans son
volume /data (fichier lisible seulement par l'intégration) et s'en sert aux
redémarrages. Si vous vous déconnectez du site web, le jeton peut cesser de
fonctionner : collez-en un nouveau.
Ce que montre chaque décodeur
| Fonctionnalité | Type | Valeurs |
|---|---|---|
| Allumé | lecture seule | 1 en marche, 0 en veille ou hors ligne |
| Joignable | lecture seule | 1 joignable par le cloud (marche ou veille), 0 hors ligne |
| Chaîne | texte | nom de la chaîne en cours, « — » sinon |
| Programme | texte | titre (et épisode) du programme, de la VOD, de l'enregistrement ou de l'application |
| En lecture | lecture seule | 1 en lecture, 0 en pause ou éteint |
| Allumer | bouton | sort de veille |
| Mettre en veille | bouton | met en veille |
| Lecture, Pause | boutons | reprend, met en pause |
| Chaîne suivante, Chaîne précédente | boutons | change de chaîne |
Pas de volume : le cloud de l'opérateur n'a pas de touche de volume (le volume se règle sur le téléviseur).
Les noms des fonctionnalités sont en français ou en anglais selon l'option « Langue des noms des fonctionnalités ».
Commandes
Le décodeur ne connaît qu'une touche marche/veille (bascule) et une touche lecture/pause (bascule). Pour éviter qu'un appui fasse l'inverse de ce qui est demandé :
- la touche part seulement si l'état reçu en direct du décodeur est l'inverse de ce qui est demandé (« Allumer » sur un décodeur déjà allumé ne fait rien) ;
- si l'état est inconnu (décodeur hors ligne, liaison en direct coupée ou pas encore d'état reçu), rien n'est envoyé et Gladys affiche une erreur ;
- après un appui, toute autre commande marche/veille est ignorée jusqu'à ce que le décodeur annonce le nouvel état (45 s au plus), de même pour lecture/pause (10 s au plus).
Marche et veille sont des boutons, pas un interrupteur : un « tout éteindre » d'un assistant vocal ou d'une scène ne peut pas les déclencher.
Statut et erreurs
- Identifiants refusés : l'intégration s'arrête et ne réessaie pas toute seule (un mot de passe essayé encore et encore peut bloquer le compte). Cet arrêt est gardé après un redémarrage. Corrigez la configuration (de nouveaux identifiants sont essayés aussitôt) ou cliquez sur Se reconnecter (un seul essai).
- Trop de requêtes (429) : une pause de 1 minute à 6 heures, gardée après un redémarrage.
- Cloud injoignable : nouvel essai après 1, 2, 5, 15 puis 30 minutes.
- Liaison en direct coupée : nouvel essai après 30 s, 1, 2, 5, 10 puis 15 minutes ; une liaison qui s'ouvre puis se coupe aussitôt ne fait pas de boucle.
La session est renouvelée par un minuteur, un jour avant l'expiration du jeton de rafraîchissement (toutes les 12 heures au plus).
Confidentialité
L'intégration parle seulement au cloud de votre opérateur : en HTTPS pour l'API
et par une WebSocket sécurisée (TLS) pour le MQTT. Elle lit la liste des
décodeurs, la liste des chaînes et le titre de ce qui est regardé. Elle
envoie aux décodeurs, par le MQTT de l'opérateur : les touches demandées,
l'annonce de son client à chaque connexion (comme l'application, un statut
« en marche » sur son propre sujet), et des demandes d'état d'affichage
(CPE.getUiStatus) à la connexion, après une commande, à la fin d'un
programme et toutes les 15 minutes.
Remerciements
Port en JavaScript de lghorizon (MIT), la bibliothèque de l'intégration Home Assistant.
Paramètres de configuration
Voici les paramètres demandés par LG Horizon dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre compte d'opérateur TV | section | Non | Amène dans Gladys les décodeurs LG Horizon de votre compte, par le cloud de votre opérateur : état allumé ou en veille, chaîne et programme affichés, lecture ou pause, et des boutons pour allumer, mettre en veille, lire, mettre en pause, passer à la chaîne suivante ou précédente. Les comptes Ziggo, Virgin Media Irlande et UPC (Pologne) se connectent avec l'identifiant et le mot de passe ; Telenet, BASE, Sunrise et Virgin Media UK seulement avec un jeton de rafraîchissement lu sur le site TV web de l'opérateur (voir le guide). Pas de volume : le cloud de l'opérateur ne sait pas le changer. Jamais testé avec un vrai compte. Non officiel, sans lien avec LG, Liberty Global ni les opérateurs. |
| Opérateur | select | Oui | |
| Identifiant (Ziggo, Virgin Media Irlande, UPC) | string | Non | L'adresse e-mail ou l'identifiant de votre compte d'opérateur. Laissez vide pour les opérateurs à jeton de rafraîchissement. |
| Mot de passe (Ziggo, Virgin Media Irlande, UPC) | secret | Non | Gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement au service de connexion de votre opérateur. |
| Jeton de rafraîchissement (Telenet, BASE, Sunrise, Virgin Media UK) | secret | Non | Lu sur le site TV web de l'opérateur une fois connecté (voir le guide). Il change à chaque usage : l'intégration garde le plus récent dans son volume /data. Un nouveau collé ici le remplace. Gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement à votre opérateur. |
| Langue des noms des fonctionnalités | select | Non | Sert aux noms des fonctionnalités des décodeurs ajoutés désormais. |
Comment installer LG Horizon dans Gladys
- Dans Gladys, ouvrez Intégrations : LG Horizon apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/lm1lc3n7/gladys-lg-horizon:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-lg-horizon.
LG Horizon nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
LG Horizon est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation