Aller au contenu principal

Intégration domotique LG Horizon, gratuite et open source

Intégration LG Horizon pour Gladys Assistant

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érateurPaysConnexion
ZiggoPays-Basidentifiant et mot de passe
TelenetBelgiquejeton de rafraîchissement
BASE TVBelgiquejeton de rafraîchissement
Sunrise (ex-UPC)Suissejeton de rafraîchissement
Virgin MediaRoyaume-Unijeton de rafraîchissement
Virgin MediaIrlandeidentifiant et mot de passe
UPCPologneidentifiant 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​

  1. Choisissez votre opérateur.
  2. 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.
  3. 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​

  1. Sur un ordinateur, ouvrez le site TV web de votre opérateur (par exemple telenet.tv, sunrisetv.ch, virgintvgo.virginmedia.com) et connectez-vous.
  2. Ouvrez les outils de développement du navigateur (F12), onglet Application (Chrome, Edge) ou Stockage (Firefox), puis Stockage local du site.
  3. Copiez la valeur de la clé qui contient refreshToken (par exemple flutter._WEB_SECURE_STORAGE_refreshToken sur certains sites).
  4. 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éTypeValeurs
Allumélecture seule1 en marche, 0 en veille ou hors ligne
Joignablelecture seule1 joignable par le cloud (marche ou veille), 0 hors ligne
Chaînetextenom de la chaîne en cours, « — » sinon
Programmetextetitre (et épisode) du programme, de la VOD, de l'enregistrement ou de l'application
En lecturelecture seule1 en lecture, 0 en pause ou éteint
Allumerboutonsort de veille
Mettre en veilleboutonmet en veille
Lecture, Pauseboutonsreprend, met en pause
Chaîne suivante, Chaîne précédenteboutonschange 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ètreTypeObligatoireDescription
Votre compte d'opérateur TVsectionNonAmè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érateurselectOui
Identifiant (Ziggo, Virgin Media Irlande, UPC)stringNonL'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)secretNonGardé 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)secretNonLu 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ésselectNonSert aux noms des fonctionnalités des décodeurs ajoutés désormais.

Comment installer LG Horizon dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : LG Horizon apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. 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).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. 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.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂