Aller au contenu principal

Intégration domotique Notifications Android/Fire TV, gratuite et open source

Intégration Notifications Android/Fire TV pour Gladys Assistant

Affichez des notifications sur votre Android TV ou Fire TV : messages, photo de la sonnette…

Affichez des notifications sur votre TV depuis Gladys : un message par-dessus le film, avec une image si vous le voulez. Le grand classique : on sonne à la porte, la photo du visiteur apparaît sur la TV. Mais aussi : la machine à laver a fini, une fenêtre est encore ouverte à l'heure du coucher, « À table ! » envoyé depuis la tablette de la cuisine.

Il suffit d'une appli de notifications gratuite installée sur la TV : Notifications for Android TV (Android TV, Google TV, Nvidia Shield…), Notifications for Fire TV (Amazon Fire TV et Fire TV Stick), PiPup ou TvOverlay. Chaque TV devient un appareil Gladys qui dit si elle est allumée (son appli répond) : une scène peut ainsi choisir entre la TV et un téléphone.

Développée sans le matériel : vos retours sont les bienvenus. L'intégration est couverte par des tests automatiques face à des applis simulées, mais n'a pas encore été essayée avec une vraie TV dans une vraie installation Gladys. Dites-nous sur le forum Gladys comment elle se comporte avec la vôtre.

Cette intégration n'est pas affiliée aux auteurs de ces applis, ni à Google ou Amazon.

Ce que vous obtenez​

  • Un appareil par TV, avec une fonctionnalité, Joignable (capteur de présence, oui/non) : oui quand l'appli de notifications de la TV répond, c'est-à-dire en pratique quand la TV est allumée.
  • Une action de scène, Afficher une notification sur la TV : titre, message (variables de scène acceptées), durée d'affichage, position, couleur de fond, transparence, icône et image téléchargée depuis l'URL d'instantané d'une caméra. Elle indique à la scène si la notification a été affichée.
  • Un widget de tableau de bord, Message sur la TV : l'état de la TV, un bouton Écrire un message qui ouvre un petit formulaire, et jusqu'à trois messages rapides, une touche chacun.
  • Trois boutons dans la configuration : ajouter ou modifier une TV, retirer une TV, envoyer une notification de test.

Prérequis​

  • Gladys Assistant 5.2.0 ou plus récent (le formulaire du widget en a besoin).
  • Une TV sous Android TV, Google TV ou Fire OS, sur le même réseau local que Gladys.
  • Une des applis de notifications installée et ouverte une fois sur la TV (section suivante).
  • L'adresse de la TV : une adresse IP (fixe de préférence : réservez-la dans les réglages DHCP de votre box) ou un nom DNS. Les noms .local (mDNS) ne sont pas résolus par l'intégration.

Installer l'appli sur la TV​

Android TV, Google TV, Nvidia Shield​

Installez Notifications for Android TV depuis le Google Play Store de la TV (cherchez « Notifications for Android TV »), puis ouvrez-la une fois : elle affiche l'adresse IP de la TV et demande l'autorisation de s'afficher par-dessus les autres applis. Laissez l'appli installée : elle reste à l'écoute en arrière-plan sur le port 7676. Vérifiez sur sa fiche du store les options incluses dans sa version gratuite.

Fire TV​

Installez Notifications for Fire TV depuis l'Amazon Appstore du Fire TV, puis ouvrez-la une fois. C'est la même appli pour le Fire TV, avec le même protocole : choisissez « Notifications for Android TV / Fire TV » dans Gladys.

PiPup ou TvOverlay à la place​

  • PiPup (port 7979) est une alternative open source. Installée hors du Play Store, elle a besoin de l'autorisation de s'afficher par-dessus les autres applis, donnée une fois par ADB : adb shell appops set nl.rogro82.pipup SYSTEM_ALERT_WINDOW allow.
  • TvOverlay (port 5001), du Play Store, a besoin de la même autorisation (même commande ADB avec com.tabdeveloper.tvoverlay). L'aspect de ses notifications (couleurs, mise en page) se choisit dans l'appli elle-même.

Nos intégrations Android TV Remote et Android TV ADB pilotent la TV (marche, volume, applis) ; celle-ci affiche des messages dessus. Elles fonctionnent côte à côte sur la même TV. Si ADB est déjà configuré pour la seconde, la commande ci-dessus s'envoie depuis votre ordinateur avec le même accès ADB.

Configuration​

Réglages​

RéglagePar défautUsage
LangueFrançaisnoms des fonctionnalités, messages des actions, texte de la notification de test
Tester les TV toutes les30 sfréquence à laquelle l'intégration vérifie que chaque TV répond
Injoignable après1 minutedurée sans aucune réponse avant qu'une TV soit indiquée injoignable (le Wi-Fi rate un test)

Un test est une connexion à l'appli de la TV : rien ne s'affiche à l'écran, et la TV n'est pas réveillée. Les applis n'ont ni compte ni quota : l'intégration ne leur parle que sur votre réseau local, jamais par Internet.

Ajouter une TV​

  1. Dans Intégrations → Notifications Android/Fire TV → Configuration, remplissez Ajouter ou modifier une TV : un nom, l'adresse IP affichée par l'appli, et l'appli installée. Laissez le port vide, sauf si vous l'avez changé dans l'appli.
  2. La réponse indique si l'appli répond. Sinon, allumez la TV, ouvrez l'appli une fois, et relancez l'action.
  3. Ouvrez l'onglet Découverte et créez l'appareil de la TV.

La même action avec le même nom ou la même adresse met la TV à jour (nouvelle adresse, autre appli) : son appareil reste le même. Retirer une TV arrête les tests ; supprimez aussi son appareil dans Gladys s'il ne sert plus.

Tester​

Envoyer une notification de test, avec la TV choisie dans la liste, affiche un court message à l'écran. La réponse dit ce qui s'est passé : affiché, la TV ne répond pas, ou l'appli a refusé la notification (mauvaise appli choisie, ou autre port).

Appareils​

Chaque TV est un appareil avec une fonctionnalité :

FonctionnalitéType dans GladysAffiche
Joignablecapteur de présence (oui/non)oui quand l'appli de la TV répond (la TV est allumée), non sinon

Sur le tableau de bord, Gladys nomme une fonctionnalité seule de son type par le nom du type : la boîte de l'appareil peut afficher « Présence » au lieu de « Joignable ». La valeur est la même.

L'état est rafraîchi par l'intégration elle-même à l'intervalle choisi, et publié seulement quand il change (plus une fois toutes les 12 heures, pour que le tableau de bord n'affiche jamais « Pas de valeur récente »). Une notification affichée marque aussi la TV joignable aussitôt.

Certaines TV gardent leur réseau actif en veille : l'appli peut continuer à répondre un moment après l'extinction de l'écran. L'état dit « la TV peut afficher une notification », ce dont une scène a besoin.

Widget de tableau de bord​

Message sur la TV affiche :

  • l'état de la TV (allumée et joignable, éteinte ou injoignable) ;
  • Écrire un message : une touche ouvre un petit formulaire (message et durée d'affichage), Envoyer l'affiche sur la TV ;
  • jusqu'à trois messages rapides, écrits une fois dans les réglages du widget (« À table ! », « Au lit ! »), affichés d'une touche.

Réglages : la TV (vide : la première TV de l'intégration) et les trois messages rapides. Après chaque message, une courte note dit s'il a été affiché.

Action de scène et déclencheurs​

Afficher une notification sur la TV (catégorie « Intégrations » de l'éditeur de scènes) :

ChampUsage
TVla TV (obligatoire)
Titrefacultatif ; Notifications for Android TV affiche « Gladys » s'il est vide
Messagele texte (obligatoire) ; variables de scène acceptées, par ex. le nom d'un appareil ou une température
Durée d'affichage (secondes)1 à 300, 10 par défaut
Positionun coin de l'écran ou son centre (TvOverlay : coins seulement)
Couleur de fondneuf couleurs (pas avec TvOverlay, qui utilise sa propre mise en page)
Transparence du fondd'opaque à totalement transparent (pas avec TvOverlay)
Icônesonnette, caméra, colis, lave-linge, repas… (pas avec PiPup)
URL d'une imagefacultative : une image téléchargée à chaque notification, voir plus bas

L'action renvoie Notification affichée (1 ou 0). Une TV éteinte n'est pas une erreur : la valeur vaut 0 et la scène continue, de sorte qu'une étape Continuer seulement si peut envoyer le message à un téléphone à la place. Seuls un appareil d'une autre intégration, ou une notification sans texte, font échouer l'action.

L'intégration ne déclare aucun déclencheur de scène : ce qui arrive à la TV, c'est sa fonctionnalité Joignable, utilisable dans le déclencheur habituel « changement d'état d'un appareil » (la TV s'allume ou s'éteint).

Image d'une caméra​

L'intégration ne peut pas lire l'image d'un appareil caméra de Gladys : Gladys ne donne accès à une intégration qu'à ses propres appareils. Elle télécharge donc l'image depuis l'URL d'instantané de la caméra, au moment de la notification. Exemples :

  • la plupart des caméras IP : http://192.168.1.40/snapshot.jpg, ou l'URL donnée par leur notice (Hikvision http://192.168.1.40/ISAPI/Streaming/channels/101/picture, Reolink http://192.168.1.40/cgi-bin/api.cgi?cmd=Snap&channel=0&user=…&password=…) ;
  • Frigate : http://192.168.1.50:5000/api/front_door/latest.jpg ;
  • go2rtc : http://192.168.1.50:1984/api/frame.jpeg?src=front_door.

Un nom d'utilisateur et un mot de passe peuvent être écrits dans l'URL (http://viewer:[email protected]/…) : l'intégration répond avec eux au défi Basic ou Digest de la caméra, et ne les écrit jamais dans ses journaux. Une scène est lisible par tous les utilisateurs de Gladys : créez pour cet usage un compte caméra limité à la consultation.

L'image doit être un JPEG, PNG, GIF ou WebP de 4 Mo au plus, téléchargé en 6 secondes au plus. Si le téléchargement échoue, la notification s'affiche sans l'image.

Exemples de scènes​

  • Qui sonne à la porte : déclencheur « le bouton de la sonnette est pressé » → Afficher une notification sur la TV avec le titre « Sonnette », le message « Quelqu'un sonne à la porte », l'icône sonnette, 30 secondes d'affichage et l'URL d'instantané de la caméra de l'entrée. La photo du visiteur apparaît par-dessus le film.
  • TV ou téléphone : même scène, suivie de Continuer seulement si « Notification affichée » vaut 0, puis Envoyer un message à votre téléphone : quand la TV est éteinte, le téléphone prend le relais.
  • Lessive terminée : déclencheur « la puissance de la prise du lave-linge passe sous 5 W » → notification « La lessive est terminée » avec l'icône lave-linge, seulement si la fonctionnalité Joignable de la TV vaut oui.
  • Au lit : à 21 h les jours d'école → notification « Au lit dans 10 minutes ! » au centre de l'écran, en ambre.

Dépannage​

  • « ne répond pas » : la TV est éteinte, en veille profonde, ou l'appli ne tourne pas. Ouvrez l'appli une fois sur la TV ; sur certaines TV, autorisez son démarrage en arrière-plan ou désactivez l'optimisation de batterie pour elle. Vérifiez l'adresse IP affichée par l'appli.
  • « a refusé la notification (HTTP 404 ou 400) » : une autre appli répond sur ce port. Vérifiez l'appli choisie dans Ajouter ou modifier une TV, et le port si vous l'avez changé dans l'appli.
  • Rien à l'écran mais « affichée » : l'appli n'a pas l'autorisation de s'afficher par-dessus les autres applis (voir la commande ADB plus haut), ou une appli plein écran masque les superpositions.
  • Pas d'image : ouvrez l'URL d'instantané dans le navigateur d'un ordinateur du même réseau ; vérifiez le nom d'utilisateur et le mot de passe, et les journaux de l'intégration (un avertissement par URL en échec, mot de passe masqué).
  • L'état reste injoignable alors que la TV est allumée : la machine Gladys et la TV doivent être sur le même réseau, sans isolation des clients (le Wi-Fi invité la bloque souvent).
  • Plus de détails : réglez LOG_LEVEL=debug sur l'intégration pour voir chaque test et chaque notification.

Limites​

  • Réseau local uniquement : l'intégration parle à l'appli de la TV en HTTP sur votre réseau ; ni cloud, ni compte.
  • Pas d'image d'un appareil caméra de Gladys lui-même (voir plus haut) : il faut une URL d'instantané.
  • Les applis diffèrent : ni couleurs, ni transparence, ni position centrale avec TvOverlay, pas d'icône avec PiPup.
  • Ni lecture de ce qu'affiche la TV, ni pilotage de la TV : voyez nos intégrations Android TV Remote et Android TV ADB pour cela.
  • Les notifications s'affichent par-dessus la plupart des contenus, mais certaines applis protégées ou plein écran peuvent les masquer.
  • Pas encore essayée sur de vraies TV (voir la note en tête) : vos retours sont les bienvenus.

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Vos TVsectionNonInstallez une appli de notifications sur chaque TV (« Notifications for Android TV » ou « for Fire TV », PiPup, TvOverlay) et ouvrez-la une fois : elle affiche l'adresse de la TV. Ajoutez la TV avec « Ajouter ou modifier une TV » et créez son appareil dans l'onglet Découverte.
LangueselectNonLangue des noms de fonctionnalités, des messages des actions et de la notification de test.
Tester les TV toutes lesselectNonUne connexion à l'appli de notifications de chaque TV : rien ne s'affiche à l'écran.
Injoignable aprèsselectNonDurée sans aucune réponse avant qu'une TV soit indiquée injoignable. Une TV en Wi-Fi rate parfois un test.

Comment installer Notifications Android/Fire TV dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Notifications Android/Fire TV 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-tv-notify: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-tv-notify.

Notifications Android/Fire TV nécessite Gladys >=5.2.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​

Notifications Android/Fire TV 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 🙂