Aller au contenu principal

Intégration domotique Android TV / Fire TV (ADB), gratuite et open source

Intégration Android TV / Fire TV (ADB) pour Gladys Assistant

Pilotez Android TV, Google TV, Shield et Fire TV par ADB réseau : marche, applis, lecture, touches.

Pilotez vos Android TV, Google TV, NVIDIA SHIELD, box Android et Amazon Fire TV depuis Gladys, sur le réseau local, par ADB (Android Debug Bridge) : marche/arrêt, application à l'écran, lecture, volume et touches de la télécommande, avec des déclencheurs et des actions de scène et un widget de tableau de bord.

Développée sans le matériel : vos retours sont les bienvenus. L'intégration est testée sur des appareils simulés construits à partir de sorties réelles, pas encore sur chaque modèle. Dites-nous sur le forum ce qui marche chez vous.

Cette intégration n'est affiliée ni à Google, ni à Amazon, ni à NVIDIA (not affiliated with Google, Amazon or NVIDIA). Android, Google TV, Fire TV et SHIELD sont des marques de leurs propriétaires.

Présentation​

Chaque TV ou box devient un appareil dans Gladys, identifié par son numéro de série (et non par son adresse IP). Gladys se connecte au port de débogage réseau de l'appareil (5555), avec une clé à lui que vous autorisez une fois à l'écran. Rien n'est installé sur l'appareil, aucun cloud n'intervient.

Ce que vous obtenez :

  • allumer et éteindre l'écran, et savoir s'il est allumé, en veille ou sur l'économiseur d'écran ;
  • l'application à l'écran, par son nom (Netflix, YouTube, Prime Video, myCANAL…), et l'ouverture de n'importe quelle application installée depuis Gladys ;
  • l'état de lecture (lecture, pause, arrêt) de l'application à l'écran ;
  • le volume, quand l'appareil le donne, et les touches de la télécommande (accueil, retour, flèches, OK, lecture, volume) ;
  • des déclencheurs de scène (« une application passe à l'écran », « la lecture démarre, se met en pause ou s'arrête ») et des actions de scène (« ouvrir une application », « appuyer sur une touche », « ouvrir une adresse »).

En complément d'Android TV Remote​

L'intégration Android TV Remote utilise le protocole de l'application télécommande Google TV (Remote v2). Les deux peuvent être installées ensemble :

BesoinAndroid TV RemoteCette intégration (ADB)
Amazon Fire TVnonoui
Ouvrir n'importe quelle application installéedepuis une listeoui
Savoir quelle application est à l'écrannonoui
État de lecture pour les scènespartieloui
Sans les options pour les développeursouinon
Appairagecode PIN« Autoriser le débogage ? »

Prérequis​

  • Gladys Assistant 5.1.0 ou plus récent.
  • L'appareil et Gladys sur le même réseau local, l'appareil avec une adresse IP fixe (une réservation DHCP dans votre box).
  • Les options pour les développeurs et le débogage réseau activés sur l'appareil (ci-dessous). C'est à faire une seule fois.

Android TV, Google TV, NVIDIA SHIELD​

  1. Paramètres → Préférences de l'appareil → À propos : cliquez sept fois sur Build. « Vous êtes maintenant un développeur » s'affiche.
  2. Paramètres → Préférences de l'appareil → Options pour les développeurs : activez le Débogage USB.
  3. Sur une NVIDIA SHIELD, activez aussi le Débogage réseau dans le même menu : il affiche l'adresse à utiliser. Sur une Chromecast avec Google TV et la plupart des box, le débogage USB ouvre le port 5555 sur le réseau.

Certains appareils Android 11+ ne proposent que le « Débogage sans fil » (code d'appairage, port aléatoire) : ce mode n'est pas pris en charge. Sur un tel appareil, lancez une fois adb tcpip 5555 depuis un ordinateur qui y est connecté (valable jusqu'au prochain redémarrage de l'appareil).

Amazon Fire TV​

  1. Paramètres → Ma Fire TV → À propos : cliquez sept fois sur le nom de l'appareil.
  2. Paramètres → Ma Fire TV → Options pour les développeurs : activez le Débogage ADB.

Configuration​

Dans Gladys : Intégrations → Android TV / Fire TV (ADB) → Configuration.

  • Adresses IP des appareils : une adresse par TV ou box, séparées par des virgules, par exemple 192.168.1.50, 192.168.1.51. Le port est 5555, sauf si vous en ajoutez un autre (192.168.1.50:5556).
  • Rafraîchissement allumé : la fréquence de lecture d'un appareil allumé, de 5 à 60 secondes (10 par défaut). Un appareil en veille est lu une fois par minute.
  • Langue des noms de fonctionnalités : les noms donnés aux fonctionnalités à l'ajout d'un appareil (ils ne changent plus ensuite), et les noms d'applications envoyés avec les événements de scène. Français par défaut.

Enregistrez, puis ajoutez les appareils depuis l'onglet Découverte.

Autoriser Gladys sur l'appareil​

À la première connexion, l'écran de l'appareil demande « Autoriser le débogage USB ? » avec l'empreinte de la clé de Gladys. Cochez « Toujours autoriser cet ordinateur » et acceptez. Sans la case cochée, la question revient à chaque connexion.

Gladys pose la question une fois de lui-même, juste après l'enregistrement de l'adresse. Si vous l'avez manquée (écran éteint, personne devant la TV), allumez la TV et lancez l'action Connecter les appareils en bas de l'écran Configuration : la question réapparaît, et le résultat indique, pour chaque adresse, si Gladys est connecté. Il affiche aussi l'empreinte de la clé, à comparer avec celle de l'écran.

Appareils​

Chaque TV ou box est un appareil, nommé d'après son modèle (vous pouvez le renommer). Ses fonctionnalités :

FonctionnalitéTypeCe qu'elle fait
AlimentationMarche/arrêt TV1 quand l'écran est allumé (économiseur compris), 0 en veille ; la basculer réveille ou met en veille
ApplicationSélectionl'application à l'écran ; en choisir une autre l'ouvre
État de lectureSélection (lecture)lecture en cours, en pause, arrêtée, aucune lecture, économiseur d'écran, en veille
VolumeVolume TV (%)le volume multimédia, quand l'appareil le donne ; le régler le change
Accueil, Retour, flèches, OKBoutons TVles touches de navigation
Menu, Lecture, Pause, StopBoutons TVles touches de menu et de lecture
Suivant, Précédent, Retour rapide, Avance rapideBoutons TVles touches multimédia
Volume +, Volume -, MuetBoutons TVles touches de volume (sur une box, transmises à la TV par HDMI-CEC)

La liste Application contient les applications installées qui s'ouvrent depuis l'écran d'accueil, avec leur nom pour les plus courantes (Netflix, YouTube, Prime Video, Disney+, myCANAL, Molotov, france.tv, Arte, Spotify, Deezer, Plex, Kodi, VLC…) et le nom de paquet pour les autres. Elle est relue toutes les six heures.

Rafraîchissement​

Gladys lit chaque appareil de lui-même (il ne compte pas sur l'interrogation du cœur) : toutes les 10 secondes (votre réglage) quand l'écran est allumé, par une connexion gardée ouverte pour que les touches répondent tout de suite ; une fois par minute en veille, en fermant la connexion après chaque lecture. Une lecture est une seule commande sur l'appareil (alimentation, activité, session multimédia et état audio) : la charge est faible. Seules les valeurs qui changent sont envoyées à Gladys, plus un rappel toutes les six heures. Pas de compte, pas de cloud, pas de quota.

Widget​

Tableau de bord → Modifier → ajoutez le widget Télécommande ADB et choisissez l'appareil. Il affiche l'état (allumé, économiseur d'écran, en veille, injoignable), l'application à l'écran, l'état de lecture et le volume, et quatre boutons au choix (réglages « Bouton 1 » à « Bouton 4 » : retour, accueil, lecture/pause et marche/arrêt par défaut). Quatre est le nombre de boutons que Gladys accepte par widget : ajoutez un second widget pour d'autres touches.

Déclencheurs de scène​

  • Une application passe à l'écran : l'application au premier plan a changé. Filtres : l'appareil, une application connue, ou n'importe quel nom de paquet (ex. org.videolan.vlc). La scène peut utiliser le nom de l'application, le nom de paquet et le nom de l'appareil.
  • La lecture démarre, se met en pause ou s'arrête : la session multimédia de l'application à l'écran a changé d'état. Filtres : l'appareil et l'état. La scène peut utiliser l'état, l'application et le nom de l'appareil.

Les deux sont lus au rythme du rafraîchissement (10 secondes par défaut), et seulement écran allumé. Certaines applications ne publient pas leur état de lecture : les déclencheurs de lecture restent alors muets pour elles.

Actions de scène​

  • Ouvrir une application sur la TV : une application connue de la liste (sur une Fire TV, la version Fire TV est choisie), ou n'importe quel nom de paquet.
  • Appuyer sur une touche : accueil, retour, flèches, OK, menu, lecture/pause, lecture, pause, stop, suivant, précédent, retour rapide, avance rapide, volume, muet, marche/arrêt, paramètres, recherche ; de un à vingt appuis.
  • Ouvrir une adresse sur la TV : une adresse http, https, rtsp ou rtmp, ouverte par l'application adaptée (un lien YouTube ouvre YouTube), ou par le paquet que vous indiquez (ex. org.videolan.vlc pour le flux d'une caméra).

Il n'y a pas d'action « exécuter une commande shell », volontairement : un shell ADB peut installer, supprimer ou lire n'importe quoi sur l'appareil, et une scène est modifiable par tout administrateur de Gladys. Home Assistant en propose une ; cette intégration non.

Exemples de scènes​

  • Mode cinéma : quand Netflix, Prime Video ou Disney+ passe à l'écran après 20 h, baissez les lumières du salon à 20 %.
  • Pause, lumière : quand la lecture se met en pause sur la TV du salon, montez les lumières à 60 % ; quand elle reprend, revenez à 20 %.
  • Infos du matin : à 7 h 30 en semaine, allumez la TV de la cuisine et ouvrez l'adresse d'un direct d'information sur YouTube.
  • Coucher des enfants : quand YouTube Kids passe à l'écran de la TV des enfants après 21 h, envoyez un message aux parents, ou mettez la TV en veille.

Dépannage​

  • « Jamais joint » : vérifiez l'adresse, que l'appareil est allumé et que le débogage réseau est activé. Certaines TV (Philips) n'acceptent la première autorisation qu'en Wi-Fi : autorisez une fois en Wi-Fi, la connexion filaire marche ensuite aussi.
  • « Pas encore autorisé » : acceptez la question à l'écran en cochant « Toujours autoriser », ou lancez Connecter les appareils écran allumé. Android 11+ oublie une autorisation inutilisée pendant sept jours : Options pour les développeurs → « Désactiver l'expiration des autorisations adb ».
  • « Port de débogage sans fil (appairage) » : l'adresse pointe vers le port du débogage sans fil d'Android 11, pas vers le débogage réseau sur 5555 (voir Prérequis).
  • Le volume affiche toujours 100 % : sur une box reliée en HDMI, le volume est celui de la TV (HDMI-CEC), et la box sort un volume fixe. Utilisez les touches Volume +/-, que la box transmet à la TV.
  • Une application manque dans la liste : elle n'a pas d'entrée sur l'écran d'accueil (un service, une entrée). Utilisez l'action « Ouvrir une application » avec son nom de paquet.
  • Un autre client ADB ne se connecte pas : certains appareils n'acceptent qu'une connexion ADB à la fois. Écran allumé, Gladys en garde une ouverte.
  • L'appareil ne sort pas de veille : en veille profonde, certaines TV coupent leur réseau, plus rien ne les joint. Activez l'option de veille réseau de la TV (« Réveil par le réseau », « Démarrage rapide »).
  • Plus de détails : réglez LOG_LEVEL=debug sur l'intégration pour voir chaque lecture dans ses journaux.

Pour retirer l'autorisation de Gladys d'un appareil : Options pour les développeurs → « Révoquer les autorisations de débogage USB ».

Limites​

  • Développée sans le matériel : les formats des réponses des appareils viennent des bibliothèques de Home Assistant et des sources d'Android, et varient selon les modèles et les versions. Vos retours sont les bienvenus.
  • Pas de découverte automatique : les appareils n'annoncent pas leur port de débogage réseau de façon fiable, et l'intégration ne peut pas écouter le réseau local par elle-même. Saisissez les adresses.
  • Un appareil dont le réseau dort en veille ne peut pas être allumé par Gladys.
  • L'état de lecture dépend de l'application qui le publie (Netflix, YouTube, Plex, Spotify, VLC oui ; certaines non).
  • Pas de changement d'entrée HDMI, pas de chaîne, pas de capture d'écran, pas de commande shell libre.
  • Le débogage sans fil d'Android 11+ (code d'appairage) n'est pas pris en charge.

Sécurité et vie privée​

  • La clé de Gladys (une clé RSA, comme celle de l'outil adb) est créée au premier démarrage et gardée dans le volume de données de l'intégration (/data/adbkey). Elle n'en sort jamais et n'apparaît jamais dans les journaux. Quiconque la détient, et joint l'appareil sur le réseau, peut piloter l'appareil : gardez vos sauvegardes de Gladys privées.
  • /data/androidtv-adb.json garde les appareils identifiés : adresse, numéro de série ou adresse MAC, modèle, version d'Android, applications installées.
  • L'intégration n'envoie que les commandes fixes décrites ici, lit l'état de l'appareil et ne lit jamais vos fichiers. Tout le trafic reste sur votre réseau local.

Paramètres de configuration​

Voici les paramètres demandés par Android TV / Fire TV (ADB) dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Avant de commencersectionNonSur la TV ou la box : activez les options pour les développeurs (7 clics sur le numéro de build), puis le débogage réseau (Fire TV : débogage ADB). Saisissez son adresse IP ci-dessous et enregistrez : l'écran demande « Autoriser le débogage ? ». Cochez « Toujours autoriser » et acceptez. Complète l'intégration Android TV Remote : l'ADB marche aussi sur Fire TV, ouvre n'importe quelle appli et lit celle à l'écran.
Adresses IP des appareilsstringNonUne adresse par TV ou box, séparées par des virgules. Port 5555 par défaut (ajoutez :port sinon). Donnez à chaque appareil une adresse fixe dans votre box.
Rafraîchissement allumé (secondes)numberNonFréquence de lecture d'un appareil allumé (5 à 60 s). En veille, une fois par minute.
Langue des noms de fonctionnalitésselectNonNoms donnés aux fonctionnalités à l'ajout d'un appareil, et textes des événements de scène.

Comment installer Android TV / Fire TV (ADB) dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Android TV / Fire TV (ADB) 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/guim31/gladys-androidtv-adb:1.0.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/guim31/gladys-androidtv-adb.

Android TV / Fire TV (ADB) 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​

Android TV / Fire TV (ADB) 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 guim31, 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 🙂