Integración externa - Control remoto de Android TV

On ne m’arrête plus :joy: … je me suis aussi lancé dans une intégration Android TV Remote.

Elle permet de connecter et piloter les téléviseurs et boîtiers Android TV et Google TV (Nvidia Shield, Chromecast avec Google TV, Sony, Xiaomi Mi Box, TCL, etc.) directement sur votre réseau local.


Fonctionnalités clés

  • Protocole Natif Remote v2 (TLS) : Connexion sécurisée sur les ports 6466/6467. Pas besoin d’activer le mode développeur ou ADB sur la TV.
  • Appairage facile par code PIN : Procédure guidée en 2 étapes directement dans l’interface Gladys (affichage du code PIN sur l’écran de la TV).
  • Retour d’état en temps réel : Remontée instantanée dans Gladys de l’état marche/arrêt, du niveau de volume et du statut sourdine.
  • Gestion Multi-TV : Appairez et contrôlez plusieurs téléviseurs indépendamment.
  • Contrôle complet :
    • Interrupteur Marche / Arrêt
    • Gestion du Volume et Mute
    • Touches de Navigation (D-Pad) : Haut, Bas, Gauche, Droite, OK, Retour, Accueil, Menu
    • Touches Médias : Lecture, Pause, Stop, Précédent, Suivant, Avancer, Reculer
  • Raccourcis d’Applications (optionnels) : Lancement direct de vos apps préférées (Netflix, YouTube, Prime Video, Disney+, Spotify, Plex, Arte, Molotov, myCANAL). Une option dans les paramètres permet de les désactiver si vous souhaitez épurer votre carte d’appareil.

Ergonomie & Conseil d’utilisation (Scènes)

:information_source: À savoir sur l’affichage sur le Dashboard :
Gladys Assistant ne disposant pas actuellement de widget « Télécommande / Lecteur Média » dédié avec pavé directionnel visuel, l’appareil apparaît sous la forme du widget générique « Appareils » (liste verticale de boutons).

Pour un usage fluide au quotidien, il est vivement conseillé de passer par les Scènes Gladys :

  • Créez des scènes pour vos actions clés (« Allumer TV », « Mode Cinéma », « Mettre en Pause », « Lancer Plex »).
  • Placez des cartes / boutons de Scènes sur votre tableau de bord Gladys pour déclencher ces actions proprement en 1 clic.
  • Pour la navigation manuelle rapide dans les menus TV (parcourir le catalogue Netflix, taper du texte), l’application officielle Google TV ou la télécommande physique reste le compagnon idéal.

Exemples de Scènes Gladys

  • :popcorn: Mode Cinéma : Allumer la TV + régler le volume à 20% + tamiser l’éclairage du salon.
  • :door: Départ / Mode Nuit : Éteindre automatiquement la TV quand la maison passe en mode absent ou nuit.
  • :bell: Pause automatique : Mettre la TV en pause sur détection d’appel ou de la sonnette connectée.

Installation & Configuration

  1. Ajoutez l’intégration externe dans votre instance Gladys Assistant :
    https://github.com/guim31/gladys-integration-android-tv-remote
    
  2. Rendez-vous dans Intégrations > Android TV Remote :
    • Étape 1 : Saisissez l’adresse IP de votre TV et lancez l’action. Un code PIN à 6 caractères s’affiche sur la TV.
    • Étape 2 : Saisissez le code PIN et validez.
  3. Lancez une Recherche d’appareils dans l’onglet Découverte pour ajouter la TV à vos appareils.

Liens & Code Source

Je rappelle que je ne suis pas développeur de métier, je fais confiance à l’IA car je n’ai pas les compétences pour tout comprendre. N’hésitez pas à me dire si des choses ne vont pas / manquent … !

On ne t’arrête plus ! Bienvenue côté développeur, et t’inquiète pas à l’ère de l’IA, la seule chose qui compte c’est la motivation :grin: La technique est parfaitement gérée par Claude :wink:

Bonsoir @guim31

Merci de pour cette intégration que je viens de tester … et pour laquelle je bloque au moment de la saisie de l’adresse IP :

Etat de l’intégration :

image

Lorsque je rafraîchie la page des intégrations de Gladys :

image

Pourtant le conteneur est bien démarré :

Je ne comprends en revanche pas la raison pour laquelle il n’arrive pas à se connecter à Gladys via WS://gladys:8082, car le port est bien disponible et en écoute :

image

Merci par avance pour ton retour,

Jean

Bonsoir Jean, merci pour le retour détaillé !
Bonne nouvelle : l’intégration elle-même n’est pas en cause.
Tes logs montrent que le conteneur n’arrive pas à ouvrir le WebSocket vers Gladys (connect ETIMEDOUT 172.30.0.2:8082) — il n’a donc jamais pu s’enregistrer, d’où l’échec de l’action et le toggle qui retombe.

Un ETIMEDOUT (et non « connection refused ») signifie que les paquets sont jetés en route : c’est typiquement un problème de réseau entre les deux conteneurs, pas de port.

Pour vérifier :

  1. Compare les réseaux des deux conteneurs :
docker inspect -f '{{json .NetworkSettings.Networks}}' <conteneur-gladys> | jq
docker inspect -f '{{json .NetworkSettings.Networks}}' gladys-ext-guim31-gladys-integration-android-tv-remote | jq 

S’ils ne partagent aucun réseau (sous-réseaux différents), c’est la cause : Docker isole les bridges entre eux.

  1. Teste depuis le conteneur d’intégration :
docker exec gladys-ext-guim31-gladys-integration-android-tv-remote wget -qO- --timeout=5 http://gladys:8082 || echo KO 
  1. Comment as-tu installé Gladys ?
    L’installation officielle fait tourner le conteneur Gladys en network_mode: host — c’est la configuration attendue pour les intégrations externes. D’après ta capture, ton Gladys tourne en bridge (IP 172.30.0.2, mapping 8082:8082) : si c’est le cas, repasser en réseau host devrait résoudre le problème.

  2. Si les réseaux sont bons, regarde le pare-feu de l’hôte/NAS (ufw, firewalld…), qui peut bloquer le trafic inter-conteneurs.

Dis-moi ce que donnent les points 1 et 3 — et dès que la connexion passe, l’intégration se connectera toute seule (elle réessaie en continu), pas besoin de la redémarrer.

Bonjour @guim31

Merci pour ta réponse, voici déjà le résultat de ta question 1 :

Réponse à la question 2 :

image

Et à la question 3 :

Le conteneur Gladys a été relancé en ayant été modifié afin que le réseau soit bien de type « host ».

Malgré cela, le conteneur ne parvient toujours pas à se connecter au WS :

Je reste à ton écoute, et te remercie par avance pour ton aide,

Belle fin de matinée,

Jean

Merci, tes captures confirment tout !

(si jamais le prochain coup tu pouvais faire du copier/coller des logs, ce serait plus simple à exploiter qu’avec des captures d’écran :wink: )

Regarde tes logs : l’erreur n’est plus ETIMEDOUT mais getaddrinfo ENOTFOUND gladys — le nom gladys ne se résout plus.
C’est logique : avant, ce nom était un alias du conteneur Gladys sur le réseau gladys-integrations ; en passant en réseau host, ton conteneur Gladys a quitté ce réseau et l’alias a disparu. Et le compteur (« attempt 753 ») montre que le conteneur de l’intégration n’a pas été recréé depuis ta bascule : il tourne toujours avec la configuration de connexion générée pour l’ancienne topologie — elle est figée à la création du conteneur, un redémarrage ne la régénère pas.

Donc :

  1. Dans Gladys → Intégrations → Android TV Remote → Supervision → « Forcer la mise à jour » (ce bouton recrée le conteneur, c’est ce qu’on veut). À défaut : désinstalle/réinstalle l’intégration.
  2. Regarde ensuite les logs : tu dois voir soit la connexion s’établir, soit au minimum une nouvelle cible (plus ws://gladys:8082 vers un nom mort).
  3. Si jamais ça échoue encore, deux tests pour trancher :
    • depuis le conteneur : docker exec gladys-ext-guim31-gladys-integration-android-tv-remote wget -qO- --timeout=5 http://172.30.0.1:8082 (172.30.0.1 = ton hôte vu depuis le bridge — ça teste la joignabilité en contournant le DNS) ;
    • sur l’hôte : ss -tlnp | grep 8082 (vérifier que Gladys écoute bien sur toutes les interfaces et pas seulement 127.0.0.1).
      Si le premier échoue alors que le second est bon, c’est ton pare-feu qui bloque le trafic bridge → hôte sur 8082 (avec ufw : sudo ufw allow from 172.30.0.0/24 to any port 8082).

Tiens-moi au courant après le « Forcer la mise à jour » !

Re-bonjour @guim31

Suite à l’ensemble de tes instructions, tout fonctionne à présent parfaitement au niveau de l’intégration : TV associée :heart:

Merci à toi, je vais maintenant jouer avec cette intégration : si possible ajouter de quoi piloter la TV depuis l’interface de Gladys (depuis mon smartphone/tablette du salon) et définir des scènes afin d’en limiter l’usage en journée à mini-moi :smiley:

Belle journée,

Jean

Génial !

Je pense que tant qu’on a pas un widget de type « télécommande » l’essentiel se joue avec les scènes :slight_smile:

Re-bonjour @guim31

Je me permets encore quelques retours, à toutes fins utiles permettant des corrections et évolutions profitables à tous :smiling_face_with_sunglasses:

Lorsque la télé est éteinte, l’intégration tente continuellement de la contacter :

Egalement, si la télé est éteinte, et qu’on tente une interaction avec l’interface de l’intégration, des erreurs apparaissent :

Egalement, si j’ajoute un bouton « TV (Power) » à un tableau de bord et que je tente d’allumer la télé, l’intégration se lance là encore dans une longue tentative de connexions infructueuses …

Belle fin de nournée,

Jean

¡Iniciativa excelente! Tengo una caja Android TV en casa, voluntario para probar.

Analizado con la ayuda de Claude (IA), revisado y validado por mí mismo.

¡Hola @jean_bruder! ¡Todas mis disculpas, no había visto tu mensaje!

¡Muchas gracias por estos comentarios detallados, con capturas incluidas — es exactamente lo que se necesita para corregir. :folded_hands:

Buena noticia: los tres problemas en realidad venían de una misma causa, y está corregido.

Lo que pasaba: la librería que gestiona el protocolo Android TV reinicia la conexión cada segundo, indefinidamente, tan pronto como la TV es inalcanzable. TV apagada = logs inundados de EHOSTUNREACH (tu primera captura) y red solicitada continuamente. Además, enmascara los errores de conexión, por lo que un clic en « Power » desde un dashboard seguía bloqueado durante largos segundos antes de fallar… reiniciando el bucle detrás.

Lo que cambia:

  • TV apagada, la integración se calma: intenta de nuevo en segundo plano con un retraso que se duplica con cada fallo (5 s, 10 s, 20 s… limitado a 2 minutos). Tan pronto como la TV vuelve a ser alcanzable (encendido, retorno de la red de espera), se retoma automáticamente y el ritmo vuelve a cero. Fin del diluvio de logs.
  • Un clic en « Power » (o cualquier comando) con la TV apagada intenta una conexión inmediata y falla limpiamente en 2-3 segundos con un mensaje claro, en lugar de quedar bloqueado. Pequeño recordatorio: el protocolo Remote v2 solo puede despertar una TV en modo de espera de red — una TV completamente sin corriente debe ser encendida con el control remoto o a través de HDMI-CEC.
  • Eliminar el dispositivo en Gladys ahora también corta su conexión y sus intentos de reconexión en la integración.

Respecto al error « al eliminar este dispositivo » (tu segunda captura): este mensaje proviene del núcleo de Gladys, no de la integración. La corrección elimina la causa más probable, pero si lo vuelves a ver TV encendida después de la actualización, no dudes en decírmelo con los logs — entonces habría que investigar en Gladys.

La corrección está publicada: actualiza la integración a la versión 1.0.5 (o :latest) y reinicia el contenedor.

¡Buen día, y gracias de nuevo por tu comentario! :smiling_face_with_sunglasses:

No encuentro esta integración en Gladys :sweat_smile:
¿Te habrás olvidado del tema? :thinking::face_savoring_food:

¿No hay manera de hacer una búsqueda en la red para ver las TVs Android?
En LG uso el SSDP para buscar en la red

¿No podrías tener el select dinámico como para lg para las aplicaciones a lanzar?

En lg:
24563

Bueno, de todos modos no hay push en las aplicaciones, por lo que no se pueden lanzar y el resto haré mis pruebas poco a poco :victory_hand:

Mi mibox está en marcha y el power está a 0 en la interfaz ^^.
¿No hay forma de recuperar el estado? ¿Quizás un simple ping? :thinking:

¡Exacto! Se me había olvidado el tema ^^ ¡gracias!

Lo miro para tu regreso

Re @spenceur ,

Los tres puntos se han tratado, está disponible en la 1.1.0 :slightly_smiling_face:

El selector de aplicaciones: los botones por aplicación se han reemplazado por un selector « Aplicación » único, utilizable desde el panel de control y las escenas. Y esto también explica tu « sin push »: los antiguos botones se declaraban en una categoría que Gladys trata como un sensor (como un botón Zigbee que envía clics), por lo que nada era clicable — el selector corrige esto. La aplicación en curso incluso se muestra como selección cuando la TV la remite. Después de la actualización: reinicia una búsqueda de dispositivos y haz clic en « Actualizar » en tu MiBox para obtener el selector.

El power a 0 MiBox encendida: la MiBox nunca anuncia su estado de alimentación, a diferencia de las TV. He implementado tu idea del ping: una TV inalcanzable se marca como apagada, y un dispositivo que acepta la conexión sin anunciar su estado se considera encendido después de 5 s. Tu MiBox debería pasar a 1 en la próxima conexión.

La guinda del pastel: si proporcionas la dirección MAC de tu MiBox (nueva acción « Proporcionar la dirección MAC de una TV emparejada »), « Encender » enviará un Wake-on-LAN cuando esté completamente apagada.

Algunos comentarios.
Tuve que desinstalar la integración y volver a instalarla para recuperar mi TV (no tenía ninguna propuesta de actualización).

Muy bien para la selección de aplicaciones, pero tengo aplicaciones en la lista que no tengo y otras que no están presentes


Otra información: el WOL no funciona (¿a qué dirección lo envías? ¿A la TV? ¿O a x.x.x.255?):

Los registros con dos o tres cosas raras

Gladys Assistant
Android TV Remote
Dispositivos
Descubrimiento
Configuración
Supervisión
Registros
Registros
[2026-08-17T16:47:23.419Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:8455)
[2026-08-17T16:47:23.456Z] [INFO] [AndroidTV] Integración iniciada
[2026-08-17T16:47:43.623Z] [INFO] [AndroidTV] Ejecutando acción: start_pairing
[2026-08-17T16:47:43.624Z] [INFO] [AndroidTV] Iniciando secuencia de emparejamiento con el TV en 192.168.1.128...
Start Pairing Connect
Error: connect ECONNREFUSED 192.168.1.128:6467
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1611:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '192.168.1.128',
  port: 6467
}
192.168.1.128 Conexión de emparejamiento cerrada true
false
[2026-08-17T16:50:36.847Z] [INFO] [AndroidTV] Ejecutando acción: start_pairing
[2026-08-17T16:50:36.848Z] [INFO] [AndroidTV] Iniciando secuencia de emparejamiento con el TV en 192.168.1.57...
Start Pairing Connect
192.168.1.57 Conexión de emparejamiento conectada
192.168.1.57 Conexión segura de emparejamiento
Recibido : 7,8,2,16,200,1,90,0
Recibido : {"protocolVersion":2,"status":"STATUS_OK","pairingRequestAck":{}}
Recibido : 16,8,2,16,200,1,162,1,8,18,4,8,3,16,6,24,1
Recibido : {"protocolVersion":2,"status":"STATUS_OK","pairingOption":{"outputEncodings":[{"type":"ENCODING_TYPE_HEXADECIMAL","symbolLength":6}],"preferredRole":"ROLE_TYPE_INPUT"}}
Recibido : 8,8,2,16,200,1,250,1,0
Recibido : {"protocolVersion":2,"status":"STATUS_OK","pairingConfigurationAck":{}}
[2026-08-17T16:50:37.882Z] [INFO] [AndroidTV] Código PIN mostrado en la pantalla del TV en 192.168.1.57.
[2026-08-17T16:50:59.437Z] [INFO] [AndroidTV] Ejecutando acción: submit_pin
[2026-08-17T16:50:59.438Z] [INFO] [AndroidTV] Enviando código PIN al TV en 192.168.1.57...
Enviando código :  1EAF7B
Recibido : 42,8,2,16,200,1,202,2,34,10,32,30,35,42,82,32,208,136,221,246,38,107,114,167,70,149,177,3,204,230,48,75,245,33,202,214,129,211,176,30,183,34,224
Recibido : {"protocolVersion":2,"status":"STATUS_OK","pairingSecretAck":{"secret":"HiMqUiDQiN32Jmtyp0aVsQPM5jBL9SHK1oHTsB63IuA="}}
192.168.1.57 ¡Emparejado!
192.168.1.57 Conexión de emparejamiento cerrada false
Start Remote Connect
192.168.1.57 Remote secureConnect
192.168.1.57 Recibido : {"remoteConfigure":{"code1":639,"deviceInfo":{"model":"MIBOX4","vendor":"Xiaomi","unknown1":1,"unknown2":"9","packageName":"com.google.android.tv.remote.service","appVersion":"6.9.906821247"}}}
Crear Remote {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
Enviar {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
[2026-08-17T16:51:00.813Z] [INFO] [AndroidTV] Sesión remota lista con 192.168.1.57
[2026-08-17T16:51:00.816Z] [INFO] [AndroidTV] Emparejamiento con 192.168.1.57 completado, certificado obtenido.
192.168.1.57 Recibido : {"remoteSetActive":{}}
Crear Remote {"remoteSetActive":{"active":622}}
Enviar {"remoteSetActive":{"active":622}}
192.168.1.57 Recibido : {"remoteStart":{"started":true}}
192.168.1.57 Recibido : {"remoteSetVolumeLevel":{"unknown1":11,"unknown2":9,"playerModel":"MIBOX4","unknown4":1}}
192.168.1.57 Recibido : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.google.android.tvlauncher"}}}
[2026-08-17T16:51:29.269Z] [INFO] [AndroidTV] Ejecutando acción: set_mac
[2026-08-17T16:51:37.047Z] [INFO] [AndroidTV] Ejecutando acción: test_connection
[2026-08-17T16:51:57.806Z] [INFO] [AndroidTV] Escaneo solicitado, publicando dispositivos descubiertos
[2026-08-17T16:51:57.822Z] [INFO] [AndroidTV] Publicando 1 TV(s) emparejado(s).
[2026-08-17T16:53:36.787Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = plex
[2026-08-17T16:53:36.788Z] [INFO] [AndroidTV] Abriendo app plex:// en 192.168.1.57
Crear Remote {"remoteAppLinkLaunchRequest":{"appLink":"plex://"}}
Enviar {"remoteAppLinkLaunchRequest":{"appLink":"plex://"}}
192.168.1.57 Recibido : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.plexapp.android"}}}
[2026-08-17T16:53:47.593Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = spotify
[2026-08-17T16:53:47.593Z] [INFO] [AndroidTV] Abriendo app spotify:// en 192.168.1.57
Crear Remote {"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}
Enviar {"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}
192.168.1.57 Recibido : {"remoteError":{"value":true,"message":{"remoteAppLinkLaunchRequest":{"appLink":"spotify://"}}}}
[2026-08-17T16:53:47.784Z] [ERROR] [AndroidTV] Error de protocolo reportado por 192.168.1.57: RemoteError {
  value: true,
  message: RemoteMessage {
    remoteAppLinkLaunchRequest: RemoteAppLinkLaunchRequest { appLink: 'spotify://' }
  }
}
192.168.1.57 Conexión remota cerrada  false
[2026-08-17T16:53:47.788Z] [WARN] [AndroidTV] Conexión cerrada para 192.168.1.57
[2026-08-17T16:53:52.792Z] [INFO] [AndroidTV] Conectando a 192.168.1.57..
```.
Iniciar Conexión Remota
192.168.1.57 Conexión Segura Remota
192.168.1.57 Recibido : {"remoteConfigure":{"code1":639,"deviceInfo":{"model":"MIBOX4","vendor":"Xiaomi","unknown1":1,"unknown2":"9","packageName":"com.google.android.tv.remote.service","appVersion":"6.9.906821247"}}}
Crear Remoto {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
Enviando {"remoteConfigure":{"code1":622,"deviceInfo":{"model":"Docker Container","vendor":"Synology","unknown1":1,"unknown2":"1","packageName":"androitv-remote","appVersion":"1.0.0"}}}
[2026-08-17T16:53:53.968Z] [INFO] [AndroidTV] Sesión remota lista con 192.168.1.57
192.168.1.57 Recibido : {"remoteSetActive":{}}
Crear Remoto {"remoteSetActive":{"active":622}}
Enviando {"remoteSetActive":{"active":622}}
192.168.1.57 Recibido : {"remoteStart":{"started":true}}
192.168.1.57 Recibido : {"remoteSetVolumeLevel":{"unknown1":11,"unknown2":9,"playerModel":"MIBOX4","unknown4":1}}
192.168.1.57 Recibido : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.plexapp.android"}}}
[2026-08-17T16:53:56.394Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = netflix
[2026-08-17T16:53:56.394Z] [INFO] [AndroidTV] Abriendo app https://www.netflix.com/title en 192.168.1.57
Crear Remoto {"remoteAppLinkLaunchRequest":{"appLink":"https://www.netflix.com/title"}}
Enviando {"remoteAppLinkLaunchRequest":{"appLink":"https://www.netflix.com/title"}}
192.168.1.57 Recibido : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.netflix.ninja"}}}
[2026-08-17T16:54:07.498Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:key:home = 1
[2026-08-17T16:54:07.499Z] [INFO] [AndroidTV] Enviando código de tecla 3 (inicio) a 192.168.1.57
Crear Remoto {"remoteKeyInject":{"keyCode":3,"direction":3}}
Enviando {"remoteKeyInject":{"keyCode":"KEYCODE_HOME","direction":"SHORT"}}
192.168.1.57 Recibido : {"remoteImeKeyInject":{"appInfo":{"appPackage":"com.google.android.tvlauncher"}}}
[2026-08-17T16:55:27.370Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 0
[2026-08-17T16:55:27.370Z] [INFO] [AndroidTV] Enviando código de tecla 26 (encendido) a 192.168.1.57
Crear Remoto {"remoteKeyInject":{"keyCode":26,"direction":3}}
Enviando {"remoteKeyInject":{"keyCode":"KEYCODE_POWER","direction":"SHORT"}}
192.168.1.57 Recibido : {"remoteStart":{"started":true}}
192.168.1.57 Recibido : {"remoteStart":{"started":false}}
[2026-08-17T16:55:42.567Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:app = disneyplus
[2026-08-17T16:55:42.567Z] [INFO] [AndroidTV] Abriendo app https://www.disneyplus.com en 192.168.1.57
Crear Remoto {"remoteAppLinkLaunchRequest":{"appLink":"https://www.disneyplus.com"}}
Enviando {"remoteAppLinkLaunchRequest":{"appLink":"https://www.disneyplus.com"}}
[2026-08-17T16:55:50.170Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 1
[2026-08-17T16:55:50.170Z] [INFO] [AndroidTV] Enviando código de tecla 26 (encendido) a 192.168.1.57
Crear Remoto {"remoteKeyInject":{"keyCode":26,"direction":3}}
Enviando {"remoteKeyInject":{"keyCode":"KEYCODE_POWER","direction":"SHORT"}}
timeout
192.168.1.57 Conexión Remota cerrada  false
[2026-08-17T16:56:00.179Z] [WARN] [AndroidTV] Conexión cerrada para 192.168.1.57
[2026-08-17T16:56:05.181Z] [INFO] [AndroidTV] Conectando a 192.168.1.57...
Iniciar Conexión Remota
[2026-08-17T16:56:08.408Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 0
[2026-08-17T16:56:08.409Z] [INFO] [AndroidTV] No hay sesión en vivo con 192.168.1.57, intentando reconectar...
[2026-08-17T16:56:08.409Z] [INFO] [AndroidTV] Conectando a 192.168.1.57...
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] Establecer valor <- ext:ext-guim31-gladys-integration-android-tv-remote:tv:192_168_1_57:power = 1
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] No hay sesión en vivo con 192.168.1.57, intentando reconectar...
[2026-08-17T16:56:09.313Z] [INFO] [AndroidTV] Conectando a 192.168.1.57...
Iniciar Conexión Remota
192.168.1.57 Conexión Remota cerrada  true
[2026-08-17T16:56:14.137Z] [INFO] [AndroidTV] Despertando el TV en 192.168.1.57 con un paquete mágico a 24:18:c6:5a:1b:7e...
192.168.1.57 Error: connect EHOSTUNREACH 192.168.1.57:6466
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1611:16) {
  errno: -113,
  code: 'EHOSTUNREACH',
  syscall: 'connect',
  address: '192.168.1.57',
  port: 6466
}
EHOSTUNREACH
[2026-08-17T16:56:19.218Z] [INFO] [AndroidTV] Conectando a 192.168.1.57...

:rocket: Android TV Remote — versión 1.2.0

Gracias @spenceur por la retroalimentación detallada y los registros, los tres puntos están corregidos :folded_hands:

:bug: Corregido

  • Lanzamiento de una aplicación ausente en la TV: la TV rechazaba la apertura (remoteError) y cortaba la conexión, pero Gladys mostraba un éxito. El error ahora se muestra claramente (« aplicación probablemente no instalada »).
  • Wake-on-LAN: el paquete mágico solo se enviaba a 255.255.255.255, que muchos redes no entregan. Ahora se envía al broadcast de la subred de la TV (ej: 192.168.1.255), luego como respaldo a 255.255.255.255 y la IP de la TV.
  • Actualización no propuesta: problema de publicación de la imagen corregido, las próximas versiones llegarán normalmente.

:sparkles: Nuevo

  • « Aplicaciones a ocultar »: elimina del selector las aplicaciones que tu TV no tiene. Ej: Spotify, Arte
  • « Aplicaciones personalizadas »: añade las tuyas, en la forma Nombre = enlace, separadas por ;. Ej: France TV = https://www.france.tv ; Aptoide TV = aptoidetv://
    → una entrada nombrada como una aplicación integrada reemplaza su enlace (práctico si el enlace por defecto no funciona en tu modelo).
  • Lista integrada enriquecida: Twitch, Crunchyroll, YouTube Music, Apple TV.

:warning: Después de la actualización

Ajusta los dos nuevos campos en la configuración, luego lanza una búsqueda de dispositivos y haz clic en Actualizar en cada TV para recuperar el selector.

También piensa en activar Wake-on-LAN / Despertar de red en los ajustes de tu TV (en Wi-Fi: « Wake-on-WLAN »).

¡Voy a echar un vistazo, gracias de nuevo! :slight_smile:

Solo un comentario del usuario para la configuración.

Para las 3 acciones siguientes, pon un selector para que el usuario pueda seleccionar su box/tv.

Mira la parte de LG si es necesario:

Voy a probar esto esta noche en mi Chromecast GoogleTV, ¿no debería funcionar?

¡Espero que sí! No dudes en decírmelo