Plugin TV Remote (Jeedom)

:warning: IMPORTANT

S’il n’y a pas d’information sur la mise à jour, c’est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte.


Présentation du Plugin TV Remote

TVRemote - Market

Ce plugin pour Jeedom permet de gérer ses équipements TV sous Android TV (ou Google TV suivant la génération). Il permet de superviser ces équipements et de leur envoyer des commandes (on/off/hdmi/source/app/netflix, etc…).

Le plugin supporte deux protocoles de connexion :

Les deux protocoles peuvent être utilisés simultanément sur un même équipement selon vos besoins.

L’ensemble est accessible via le dashboard de Jeedom, et peut également être utilisé à travers des scénarios.

Exemples de scénarios :

Installation des dépendances et lancement du Démon

TVRemote - Dépendances

Versions supportées pour l’installation :

L’installation des dépendances a été testée sur différents systèmes, dans différentes versions d’OS et de Jeedom. Voici un retour (non exhaustif) de configurations testées :

:warning: ATTENTION

Debian 10 étant en fin de vie (obsolète) depuis juin 2024 : L’installation n’est plus garantie sur cet OS. Dis autrement : Si le système est à jour et accède encore à ses dépôts Linux, alors cela devrait fonctionner, dans le cas contraire, il faudra migrer votre OS vers une version à jour (Debian 11 64bits, Debian 12, Raspbian 11 64bits, Raspbian 12)

:warning: ATTENTION

L’installation ne fonctionnera pas sur un OS 32 bits, par exemple sur un Raspberry 3B+ avec Raspbian 10 ou 11 (32 bits)

Pour vérifier si votre Jeedom (pour un Raspberry par ex.) tourne sur un OS 32 bits ou 64 bits, vous pouvez vous connecter en SSH dessus et lancer la commande uname -m, si le résultat est armv7l votre OS est 32 bits, si le résultat est aarch64 alors votre OS est en 64 bits

Vous pouvez également trouver cette information via le plugin Monitoring, c’est indiqué sur le Dashboard de l’équipement local

Installation des dépendances :

L’installation des dépendances peut prendre du temps, voici à titre d’exemples les temps d’installation sur différents systèmes :

:warning: IMPORTANT

L’installation des dépendances peut prendre du temps (de 2 minutes jusqu’à 40 minutes suivant votre Jeedom) et des ressources (jusqu’à 100% de CPU dans la phase de compilation et 340Mo d’espace disque). Soyez patient (Vous pouvez suivre les phases d’installation des dépendances dans les logs ‘tvremote_update’ du plugin)

PS : L’usage élevé des ressources de votre Jeedom (CPU notamment) ne concerne QUE la phase d’installation des dépendances !

Lancement du Démon :

TVRemote - Démon

Le démon ne se lance pas !

Si le démon refuse de se lancer, c’est qu’il y a certainement eu un problème lors de l’installation des dépendances. (cf. paragraphe suivant)

Dans un premier temps, vérifiez s’il n’y a pas des erreurs dans les logs d’installation des dépendances, via la page de configuration du plugin, en cliquant sur le bouton (bleu) : Tvremote_update

Vérifiez également les logs du démon, toujours sur la page de configuration du plugin, en cliquant sur le bouton (bleu) : Tvremote_daemon

Postez un message sur le forum Community (avec le tag #plugin-tvremote), en fournissant toutes les informations nécessaires :

Réparation des dépendances :

Si l’installation des dépendances échoue, ou bien si celles-ci semblent s’être bien déroulées mais que le démon refuse de démarrer, vous pouvez utiliser les options avancées de la page de configuration du plugin pour procéder à la “réparation” de ces dépendances.

Si votre système (OS) sur lequel est installé votre Jeedom n’est pas à jour, il va manquer des librairies systèmes nécessaires au bon fonctionnement de Python et donc du plugin TVRemote.

3 options sont à votre disposition dans la page de configuration du plugin pour réparer les dépendances et mettre à jour votre système (OS) :

TVRemote - Réparation des Dépendances

Le principe pour utiliser ces options est le suivant :

:warning: IMPORTANT

Après avoir lancé l’installation des dépendances, ces options que vous avez coché juste avant peuvent se désactiver automatiquement.

C’est tout à fait normal. Cela permet de s’assurer que ces options ne sont utilisées qu’une seule fois lors de l’installation des dépendances

(1) “Force les mises à jour Système” :

Cette option est un équivalent des commandes que vous pourriez également lancer par vous-même en vous connectant en SSH sur l’OS de votre Jeedom : sudo apt update + sudo apt upgrade

:warning: IMPORTANT

Il est important de maintenir à jour régulièrement votre système (OS) sur lequel tourne votre Jeedom !

Le système de “mises à jour systèmes” (OS) est là pour “simplifier” les actions de l’utilisateur et lui éviter d’avoir à se connecter sur son système (OS) en SSH pour le mettre à jour.

Cette action de mises à jour automatiques, si elle ne se déroule pas comme attendu, peut corrompre votre système et rendre votre Jeedom totalement inutilisable.

Je ne saurais être tenu responsable si votre Jeedom n’est plus opérationnel après le lancement de ces options !

Il est déconseillé d’utiliser cette option sur une Box Jeedom officielle.

(2) “Force la réinitialisation de PyEnv” :

(3) “Force la réinitialisation de Venv” :

Il est conseillé de procéder en deux temps et ne pas cocher les 3 options simultanément :

N’hésitez pas à demander conseil sur le forum Community de Jeedom en cas de doute sur la procédure à suivre.

Options de configuration

:warning: IMPORTANT

Toute option suivie d’un “triangle orange (warning)” nécessite le redémarrage du démon après modification

TVRemote - Config

Plugin :

Dépendances :

Démon :

Remote TV (Télécommande)

:warning: ATTENTION

Si vous effacez le certificat, vous ne pourrez plus vous connecter à vos TV déjà appairées ! Il vous faudra refaire la procédure d’appairage.

Scan des TV Google

Avant de scanner vos TV, assurez vous qu’elles sont bien allumées, sinon elles risquent de ne pas être détectées.

Vos TV doivent se trouver sur le même réseau que votre Jeedom, sinon elles ne seront pas détectées !

:information_source: ASTUCE

Si vos TV se trouvent sur un autre réseau que celui de Jeedom, et que vous avez accès à la configuration avancée de votre routeur, vous pouvez activer la diffusion du protocole mDNS (“multicast DNS” aussi appelé “ZéroConf”) entre vos deux réseaux. Cela permettra à Jeedom de communiquer avec vos TV Google.

TVRemote - Scan

Rendez-vous sur la page du plugin et cliquez sur le bouton “Scan” pour détecter automatiquement les TV Google présentes sur votre réseau. Le plugin va alors les ajouter dans Jeedom.

Lorsque vos TV ont bien été détectées, cliquez sur le bouton “Stop Scan” ou attendez 60 secondes pour arrêter automatiquement le Scan et rafraîchir la page.

Vos équipements détectés apparaissent alors sur la page.

Commandes des équipements

Une fois la TV Google ajoutée à Jeedom, vous devez lancer un appairage entre votre TV et Jeedom, pour permettre à ce dernier d’aller se connecter sur la TV et permettre ensuite de récupérer des informations ou encore d’envoyer des commandes dessus.

Le plugin offre deux méthodes d’appairage selon vos besoins :

Choix du protocole : TVRemote ou ADB ?

TVRemote (Recommandé) :

ADB (Android Debug Bridge) :

:information_source: BON À SAVOIR

Vous pouvez utiliser les deux protocoles simultanément sur un même équipement. Par exemple, utilisez TVRemote pour les commandes classiques et ADB pour des fonctionnalités avancées.

Appairage TVRemote avec une TV Google

TVRemote - Equipement

Pour appairer (“Pairing”) une TV avec votre Jeedom en utilisant le protocole TVRemote, rendez-vous sur la page de l’équipement correspondant à votre TV.

TVRemote - Pairing

Pour appairer la Google TV avec votre Jeedom (procédure à ne faire qu’une seule fois) :

Un message va s’afficher sur votre TV, avec un code à noter.

:warning: ATTENTION

Vous disposez de 5 minutes pour entrer le code affiché sur votre TV. Passé ce délai, il faudra relancer la procédure d’appairage.

Si tout s’est bien passé, votre TV est maintenant appairée avec votre Jeedom. (Un message s’affiche sur votre TV indiquant que la procédure s’est bien déroulée)

:warning: IMPORTANT

Si le code envoyé n’était pas le bon, vous trouverez des messages dans les logs du démon du plugin l’indiquant. La procédure aura alors échoué.

Il faudra alors recommencer la procédure d’appairage.

Appairage ADB avec une TV Google

Pour utiliser le protocole ADB, vous devez d’abord activer le mode développeur sur votre TV Android :

1. Activation du mode développeur sur la TV

  1. Allez dans ParamètresÀ propos (ou SystemAbout)
  2. Appuyez 7 fois sur Build (ou Version selon le modèle)
  3. Un message confirme l’activation des options développeur

2. Activation du débogage ADB

  1. Allez dans ParamètresOptions pour les développeurs
  2. Activez Débogage USB (ou ADB debugging)
  3. Activez Autoriser le débogage réseau (ou Network debugging) si cette option est présente

:information_source: BON À SAVOIR

L’option Autoriser le débogage réseau n’apparaît pas sur tous les modèles de TV. Si elle n’est pas présente dans votre menu, c’est qu’elle est implicitement incluse dans le débogage USB. Il n’y a rien d’autre à faire.

Pour que les commandes (TVRemote ou ADB) fonctionnent lorsque la TV est en veille, assurez-vous que les paramètres d’économie d’énergie de votre TV ne coupent pas complètement la connexion réseau (WiFi ou Ethernet) pendant le mode veille.

3. Appairage ADB depuis Jeedom

Sur la page de l’équipement dans Jeedom :

  1. Cochez la case Utiliser ADB dans la section ADB
  2. Choisissez le mode de connexion avec l’option Maintenir Connexion :
    • Décoché (mode par défaut) : La connexion se ferme automatiquement après une période d’inactivité pour économiser les ressources
    • Coché : La connexion ADB reste ouverte en permanence (commandes instantanées, détection d’état en temps réel)
  3. Si vous avez décoché “Maintenir Connexion” (mode par défaut), définissez le Délai d’inactivité (en minutes, entre 1 et 60, valeur par défaut : 5)
  4. Sauvegardez l’équipement pour enregistrer vos modifications
  5. Cliquez sur le bouton (vert) Appairer dans la section ADB
  6. Un message s’affiche sur votre TV avec une demande d’autorisation
  7. Cochez la case “Toujours autoriser sur cet ordinateur”
  8. Validez l’autorisation sur votre TV

:warning: ATTENTION

Vous disposez de 1 minute pour valider l’autorisation sur votre TV. Passé ce délai, il faudra relancer la procédure d’appairage.

Important : Pensez bien à cocher la case pour autoriser définitivement l’accès ADB, sinon vous devrez revalider l’autorisation à chaque reconnexion.

4. Modes de connexion ADB

Le plugin propose deux modes de gestion de la connexion ADB :

Mode À la Demande (Maintenir Connexion : Décoché) - Mode par défaut :

Mode Persistant (Maintenir Connexion : Coché) - Recommandé pour les usages intensifs :

:information_source: BON À SAVOIR

Le mode persistant vérifie automatiquement l’état de la connexion toutes les 20 secondes pour éviter les déconnexions dues à l’inactivité. En cas de déconnexion (révocation d’autorisation depuis la TV, redémarrage, etc.), le démon tente automatiquement de se reconnecter. Une nouvelle demande d’autorisation apparaîtra sur l’écran de la TV qu’il faudra accepter pour rétablir la connexion.

Le statut d’appairage ADB est affiché sur la page de l’équipement :

:information_source: ASTUCE

Si l’appairage ADB échoue, vérifiez que :

  • Le débogage USB est bien activé sur la TV
  • Le pare-feu de votre TV ne bloque pas la connexion
  • La TV et Jeedom sont bien sur le même réseau

Paramètres avancés

Clavier Virtuel (IME)

:warning: ATTENTION

La modification de ce paramètre nécessite un redémarrage du démon pour être prise en compte.

Cette option contrôle si le plugin s’enregistre comme clavier virtuel (IME) sur la TV.

Commandes disponibles pour votre TV Google

Une fois l’appairage réussi (TVRemote et/ou ADB), vous aurez accès à des informations ainsi que la possibilité d’envoyer des commandes à votre TV.

:warning: ATTENTION

Les commandes disponibles dans le plugin ne seront certainement pas toutes opérationnelles. Cela dépend des modèles de TV, de leur génération mais également du constructeur et de la manière dont il a implémenté les protocoles “Remote TV” et “ADB”

Commandes disponibles via le Dashboard :

TVRemote - Dashboard

Liste des commandes :

Liste des applications :

Commande Key Code

Cette commande personnalisable permet d’envoyer un code (correspondant à une action ou une touche de la télécommande) ou une chaîne de caractères sur la TV ciblée.

:information_source: ASTUCE

Les codes correspondent à ceux définis dans le protocole “Android TV Remote 2”.

Le texte à envoyer doit être préfixé avec la chaîne text: suivi des caractères souhaités.

:information_source: CHOIX DU PROTOCOLE

Par défaut, cette commande utilise le protocole TVRemote. Vous pouvez forcer l’utilisation du protocole ADB en ajoutant "protocol":"adb" dans le champ “Options” de la commande.

Exemple : Pour envoyer le code KEYCODE_POWER via ADB, ajoutez dans “Options” :

"protocol":"adb"

Exemple de code à rentrer dans la commande :

Exemple de texte à envoyer via la commande :

Exemple d’usage dans un scénario :

TVRemote - Scenario Key/App

Commande App Code

Cette commande personnalisable permet d’envoyer l’URI ou le nom du paquet Android à lancer sur la TV ciblée.

Exemple d’une URI et d’un nom de paquet pour cette commande :

:information_source: CHOIX DU PROTOCOLE

Par défaut, cette commande utilise le protocole TVRemote. Vous pouvez forcer l’utilisation du protocole ADB en ajoutant "protocol":"adb" dans le champ “Options” de la commande.

Exemple : Pour lancer Netflix via ADB, ajoutez dans “Options” :

"protocol":"adb"

Note : L’utilisation du protocole ADB nécessite que l’appairage ADB soit activé et fonctionnel.

Exemple d’usage dans un scénario :

TVRemote - Scenario Key/App

Commande ADB Shell

:warning: ATTENTION

Cette commande nécessite que l’appairage ADB soit activé et fonctionnel.

Cette nouvelle commande permet d’exécuter des commandes shell personnalisées directement sur votre TV Android via le protocole ADB. Le résultat de la commande est affiché dans la colonne dédiée de l’onglet Commandes.

Exemples d’utilisation courante :

Obtenir la version Android de la TV :

getprop ro.build.version.release

Voir le modèle de la TV :

getprop ro.product.model

Lister les applications installées :

pm list packages

Simuler l’appui sur une touche (Home) :

input keyevent KEYCODE_HOME

Simuler l’appui sur la touche Power :

input keyevent KEYCODE_POWER

Lancer une application (exemple : Netflix) :

am start -n com.netflix.ninja/.MainActivity

Lancer YouTube :

am start -a android.intent.action.VIEW -d https://www.youtube.com

Changer vers l’entrée HDMI 1 :

am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.android.tv%2F.TvInputService%2FHW1

Changer vers l’entrée HDMI 1 (TV Philips) :

am start -n org.droidtv.playtv/.PlayTvActivity -a android.intent.action.VIEW -d "tv://com.google.android.tv/.dtvinput/.TvInputServiceHW5/5"

Lancer une application avec Monkey (exemple : YouTube avec 1 événement) :

monkey -p com.google.android.youtube.tv -c android.intent.category.LAUNCHER 1

Redémarrer la TV :

reboot

:information_source: BON À SAVOIR

Le résultat de la commande shell s’affiche automatiquement dans l’interface après exécution via la commande info “Sortie ADB Shell”. Vous pouvez ainsi vérifier que la commande s’est bien exécutée et consulter son résultat.

Cette commande info peut également être utilisée dans vos scénarios pour récupérer et exploiter le résultat d’une commande ADB Shell.

Attention : Les commandes ADB Shell ont un accès direct au système Android de votre TV. N’utilisez que des commandes dont vous connaissez l’effet. Des commandes inappropriées peuvent affecter le fonctionnement de votre TV.

Exemple d’usage dans un scénario : Vous pouvez utiliser cette commande pour automatiser des actions simples comme redémarrer la TV à une heure précise ou vérifier sa version Android.

Commande Refresh

Cette commande permet de rafraîchir les commandes info personnalisées qui utilisent des commandes ADB Shell.

Lorsque vous créez des commandes info avec des commandes ADB Shell personnalisées, vous pouvez utiliser cette commande pour forcer la mise à jour de toutes ces commandes en une seule fois, sans avoir à les exécuter individuellement.

Vous pouvez l’utiliser dans un scénario pour mettre à jour périodiquement les informations récupérées via vos commandes ADB Shell personnalisées.

Créer des commandes personnalisées

Le plugin permet de créer vos propres commandes personnalisées de type ADB Shell ou Refresh Cmd directement depuis l’onglet Commandes de votre équipement.

Commandes de type “ADB Shell”

Les commandes de type “ADB Shell” vous permettent d’ajouter des commandes action qui exécutent des commandes shell spécifiques. Vous pouvez également créer des commandes info qui récupèrent et affichent automatiquement le résultat d’une commande shell.

Pour créer une commande ADB Shell personnalisée :

  1. Dans l’onglet Commandes de votre équipement, cliquez sur “Ajouter une commande”
  2. Donnez un nom à votre commande
  3. Sélectionnez le type de commande (Action ou Info)
  4. Dans le champ “Type Cmd”, sélectionnez “ADB Shell”
  5. Dans le champ “Commande ADB Shell”, entrez la commande shell à exécuter (exemple : getprop ro.product.model)
  6. Si vous créez une commande info, cochez “Historiser” si vous souhaitez conserver l’historique des valeurs

Exemples de commandes info personnalisées :

:information_source: BON À SAVOIR

Les commandes info de type ADB Shell sont automatiquement rafraîchies lorsque vous utilisez la commande “Refresh”. Cela vous permet de mettre à jour toutes vos informations personnalisées en une seule action, idéal dans un scénario périodique.

Commandes de type “Refresh Cmd”

Les commandes de type “Refresh Cmd” permettent de créer des commandes action qui rafraîchissent une commande info spécifique, plutôt que toutes les commandes info en même temps.

Pour créer une commande Refresh Cmd personnalisée :

  1. Dans l’onglet Commandes, cliquez sur “Ajouter une commande”
  2. Donnez un nom à votre commande (exemple : “Rafraîchir Version Android”)
  3. Dans le champ “Type Cmd”, sélectionnez “Refresh Cmd”
  4. Dans le champ “Cmd ADB Shell / Refresh”, sélectionnez dans la liste déroulante la commande info à rafraîchir

:information_source: BON À SAVOIR

Les commandes Refresh Cmd sont utiles lorsque vous souhaitez rafraîchir une commande info spécifique à la demande ou dans un scénario, sans avoir à rafraîchir toutes les autres commandes info en même temps. Vous pouvez créer autant de commandes Refresh Cmd que nécessaire, une pour chaque commande info que vous souhaitez pouvoir rafraîchir individuellement.

Commande Custom Cmd

Cette commande personnalisée permet d’utiliser toutes les commandes en mode “texte” via une syntaxe JSON structurée. Elle est particulièrement utile dans les scénarios pour offrir une personnalisation et un contrôle plus fin sur les commandes.

Utilisation :

Dans un scénario, ajoutez une commande Action de type Message, sélectionnez la commande “Custom Cmd” de votre équipement, et entrez votre commande au format JSON dans le champ message.

Variables disponibles :

:information_source: BON À SAVOIR

Le paramètre "protocol" permet de forcer l’utilisation d’un protocole spécifique. Par défaut, les commandes keycode et appcode utilisent le protocole TVRemote, mais vous pouvez forcer l’utilisation d’ADB en ajoutant "protocol": "adb". Pour les commandes shell, le protocole ADB est obligatoire.

Actions possibles :

Pour "action": "keycode", valeurs possibles de "value" :

Pour "action": "appcode", valeurs possibles de "value" :

Pour "action": "shell" (nécessite ADB) :

Exemples d’utilisation :

Allumer/éteindre la TV :

"action": "keycode", "value": "power"

Lancer Netflix :

"action": "appcode", "value": "netflix"

Augmenter le volume via ADB :

"action": "keycode", "value": "volume_up", "protocol": "adb"

Exécuter une commande shell ADB :

"action": "shell", "value": "reboot", "protocol": "adb"

:information_source: BON À SAVOIR

La commande Custom Cmd est idéale pour créer des scénarios complexes où vous avez besoin d’enchaîner différentes actions de manière dynamique ou de forcer l’utilisation d’un protocole spécifique.

Autres variables :

Voici des exemples d’usage de la commande “Custom Cmd” :

FAQ

Quelle est la différence entre TVRemote et ADB ?

TVRemote est le protocole officiel Google pour contrôler les Android TV, similaire à une télécommande virtuelle. C’est la méthode recommandée pour un usage standard.

ADB est un outil de débogage Android qui donne accès à des fonctionnalités système plus avancées. Il est utile pour :

Puis-je utiliser les deux protocoles en même temps ?

Oui ! Vous pouvez activer et utiliser simultanément TVRemote et ADB sur un même équipement. Par exemple :

Mon TV ne supporte pas TVRemote, que faire ?

Si votre TV Android ne supporte pas le protocole TVRemote, elle ne pourra malheureusement pas être détectée par le scan automatique du plugin, car celui-ci se base uniquement sur le protocole TVRemote pour détecter les équipements.

À l’heure actuelle, l’utilisation d’ADB seul (sans TVRemote) n’est pas possible. Le support d’une détection basée uniquement sur ADB pourrait être envisagé dans une future version du plugin.

L’appairage ADB échoue, que faire ?

Vérifiez que :

  1. Le débogage USB est activé dans les options développeur
  2. L’autorisation de débogage réseau est activée
  3. Votre TV et Jeedom sont sur le même réseau local
  4. Aucun pare-feu ne bloque la connexion
  5. L’option “Rester activé” est activée (sur certains modèles)

Si le problème persiste, consultez les logs du démon pour plus d’informations.

Quelles commandes shell ADB puis-je utiliser ?

Voici une liste de commandes ADB Shell courantes et utiles :

Informations système :

Gestion des applications :

Gestion de la TV :

Réseau :

Espace de stockage :

:warning: ATTENTION

Évitez les commandes qui modifient le système (comme rm, su, chmod, etc.) sauf si vous savez exactement ce que vous faites. Ces commandes peuvent rendre votre TV instable.

Est-ce que l’utilisation d’ADB est sûre ?

ADB donne un accès système à votre TV Android. Utilisé correctement avec des commandes appropriées, il est parfaitement sûr. Cependant, évitez d’exécuter des commandes dont vous ne comprenez pas l’effet, car elles pourraient affecter le fonctionnement de votre TV.

Le démon consomme-t-il plus de ressources avec ADB activé ?

Non, l’activation d’ADB n’augmente pas significativement la consommation de ressources du démon. Les connexions ADB sont ouvertes uniquement lors de l’exécution de commandes.

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.