Saltar al contenido principal

Integración domótica Android TV / Fire TV (ADB), gratuita y de código abierto

Integración Android TV / Fire TV (ADB) para Gladys Assistant

Controle Android TV, Google TV, Shield y Fire TV por ADB en red: encendido, apps, medios, teclas.

Controle sus Android TV, Google TV, NVIDIA SHIELD, cajas Android y Amazon Fire TV desde Gladys, por la red local, mediante ADB (Android Debug Bridge): encendido, la aplicación en pantalla, la reproducción, el volumen y las teclas del mando, además de disparadores y acciones de escena y un widget para el panel.

Desarrollada sin el hardware: sus comentarios son bienvenidos. La integración se prueba con dispositivos simulados construidos a partir de salidas reales, todavía no con cada modelo. Cuéntenos en el foro qué funciona en el suyo.

Esta integración no está afiliada a Google, Amazon ni NVIDIA (not affiliated with Google, Amazon or NVIDIA). Android, Google TV, Fire TV y SHIELD son marcas de sus propietarios.

Presentación​

Cada televisor o caja se convierte en un dispositivo de Gladys, identificado por su número de serie (no por su dirección IP). Gladys se conecta al puerto de depuración por red del dispositivo (5555), con una clave propia que usted autoriza una vez en la pantalla. No se instala nada en el dispositivo y no interviene ninguna nube.

Lo que obtiene:

  • encender y apagar la pantalla, y saber si está encendida, en espera o con el salvapantallas;
  • la aplicación en pantalla, por su nombre (Netflix, YouTube, Prime Video, myCANAL…), y abrir cualquier aplicación instalada desde Gladys;
  • el estado de reproducción (reproduciendo, en pausa, detenida) de la aplicación en pantalla;
  • el volumen, cuando el dispositivo lo indica, y las teclas del mando (inicio, atrás, flechas, OK, reproducción, volumen);
  • disparadores de escena («una aplicación pasa a la pantalla», «la reproducción empieza, se pausa o se detiene») y acciones de escena («abrir una aplicación», «pulsar una tecla», «abrir una dirección»).

Complemento de Android TV Remote​

La integración Android TV Remote usa el protocolo de la aplicación mando de Google TV (Remote v2). Ambas pueden instalarse juntas:

NecesidadAndroid TV RemoteEsta integración (ADB)
Amazon Fire TVnosí
Abrir cualquier aplicación instaladadesde una listasí
Saber qué aplicación está en pantallanosí
Estado de reproducción para las escenasparcialsí
Sin las opciones para desarrolladoressíno
Emparejamientocódigo PIN«¿Permitir la depuración?»

Requisitos​

  • Gladys Assistant 5.1.0 o posterior.
  • El dispositivo y Gladys en la misma red local, el dispositivo con una dirección IP fija (una reserva DHCP en su router).
  • Las opciones para desarrolladores y la depuración por red activadas en el dispositivo (más abajo). Se hace una sola vez.

Android TV, Google TV, NVIDIA SHIELD​

  1. Ajustes → Preferencias del dispositivo → Información: haga clic siete veces en Compilación. Aparece «Ya es desarrollador».
  2. Ajustes → Preferencias del dispositivo → Opciones para desarrolladores: active la Depuración USB.
  3. En una NVIDIA SHIELD, active también la Depuración por red en el mismo menú: muestra la dirección que debe usar. En un Chromecast con Google TV y la mayoría de las cajas, la depuración USB abre el puerto 5555 en la red.

Algunos dispositivos con Android 11+ solo ofrecen la «Depuración inalámbrica» (código de emparejamiento, puerto aleatorio): ese modo no es compatible. En un dispositivo así, ejecute una vez adb tcpip 5555 desde un ordenador conectado a él (válido hasta el siguiente reinicio del dispositivo).

Amazon Fire TV​

  1. Ajustes → Mi Fire TV → Información: haga clic siete veces en el nombre del dispositivo.
  2. Ajustes → Mi Fire TV → Opciones para desarrolladores: active la Depuración ADB.

Configuración​

En Gladys: Integraciones → Android TV / Fire TV (ADB) → Configuración.

  • Direcciones IP de los dispositivos: una dirección por televisor o caja, separadas por comas, por ejemplo 192.168.1.50, 192.168.1.51. El puerto es 5555, salvo que añada otro (192.168.1.50:5556).
  • Actualización encendido: la frecuencia de lectura de un dispositivo encendido, de 5 a 60 segundos (10 por defecto). Un dispositivo en espera se lee una vez por minuto.
  • Idioma de los nombres de funciones: los nombres dados a las funciones al añadir un dispositivo (no cambian después) y los nombres de aplicaciones enviados con los eventos de escena. Francés por defecto.

Guarde y añada después los dispositivos desde la pestaña Descubrir.

Autorizar a Gladys en el dispositivo​

En la primera conexión, la pantalla del dispositivo pregunta «¿Permitir la depuración USB?» con la huella de la clave de Gladys. Marque «Permitir siempre desde este ordenador» y acepte. Sin la casilla marcada, la pregunta vuelve en cada conexión.

Gladys pregunta una vez por sí mismo, justo después de guardar la dirección. Si se perdió la pregunta (pantalla apagada, nadie delante del televisor), encienda el televisor y ejecute la acción Conectar los dispositivos al final de la pantalla Configuración: la pregunta vuelve a aparecer, y el resultado indica, para cada dirección, si Gladys está conectado. También muestra la huella de la clave, para compararla con la de la pantalla.

Dispositivos​

Cada televisor o caja es un dispositivo, con el nombre de su modelo (puede cambiarlo). Sus funciones:

FunciónTipoQué hace
EncendidoEncendido TV1 cuando la pantalla está encendida (salvapantallas incluido), 0 en espera; cambiarlo la despierta o la duerme
AplicaciónSelecciónla aplicación en pantalla; elegir otra la abre
Estado de reproducciónSelección (lectura)reproduciendo, en pausa, detenida, sin reproducción, salvapantallas, en espera
VolumenVolumen TV (%)el volumen multimedia, cuando el dispositivo lo indica; ajustarlo lo cambia
Inicio, Atrás, flechas, OKBotones TVlas teclas de navegación
Menú, Reproducir, Pausa, DetenerBotones TVlas teclas de menú y de reproducción
Siguiente, Anterior, Retroceder, AvanzarBotones TVlas teclas multimedia
Subir volumen, Bajar volumen, SilencioBotones TVlas teclas de volumen (en una caja, transmitidas al televisor por HDMI-CEC)

La lista Aplicación contiene las aplicaciones instaladas que se abren desde la pantalla de inicio, con su nombre para las más comunes (Netflix, YouTube, Prime Video, Disney+, myCANAL, Molotov, france.tv, Arte, Spotify, Deezer, Plex, Kodi, VLC…) y el nombre de paquete para las demás. Se vuelve a leer cada seis horas.

Actualización​

Gladys lee cada dispositivo por sí mismo (no depende del sondeo del núcleo): cada 10 segundos (su ajuste) con la pantalla encendida, mediante una conexión que se mantiene abierta para que las teclas respondan al instante; una vez por minuto en espera, cerrando la conexión tras cada lectura. Una lectura es un único comando en el dispositivo (encendido, actividad, sesión multimedia y estado de audio): la carga es baja. Solo se envían a Gladys los valores que cambian, más un recordatorio cada seis horas. Sin cuenta, sin nube, sin cuota.

Widget​

Panel → Editar → añada el widget Mando ADB y elija el dispositivo. Muestra el estado (encendido, salvapantallas, en espera, inalcanzable), la aplicación en pantalla, el estado de reproducción y el volumen, y cuatro botones a elegir (ajustes «Botón 1» a «Botón 4»: atrás, inicio, reproducir/pausa y encendido por defecto). Cuatro es el número de botones que Gladys admite por widget: añada un segundo widget para otras teclas.

Disparadores de escena​

  • Una aplicación pasa a la pantalla: la aplicación en primer plano ha cambiado. Filtros: el dispositivo, una aplicación conocida o cualquier nombre de paquete (p. ej. org.videolan.vlc). La escena puede usar el nombre de la aplicación, el nombre de paquete y el nombre del dispositivo.
  • La reproducción empieza, se pausa o se detiene: la sesión multimedia de la aplicación en pantalla ha cambiado de estado. Filtros: el dispositivo y el estado. La escena puede usar el estado, la aplicación y el nombre del dispositivo.

Ambos se leen al ritmo de la actualización (10 segundos por defecto), y solo con la pantalla encendida. Algunas aplicaciones no publican su estado de reproducción: los disparadores de reproducción quedan entonces mudos para ellas.

Acciones de escena​

  • Abrir una aplicación en el televisor: una aplicación conocida de la lista (en un Fire TV se elige la versión para Fire TV) o cualquier nombre de paquete.
  • Pulsar una tecla del mando: inicio, atrás, flechas, OK, menú, reproducir/pausa, reproducir, pausa, detener, siguiente, anterior, retroceder, avanzar, volumen, silencio, encendido, ajustes, buscar; de una a veinte pulsaciones.
  • Abrir una dirección en el televisor: una dirección http, https, rtsp o rtmp, abierta por la aplicación adecuada (un enlace de YouTube abre YouTube) o por el paquete que indique (p. ej. org.videolan.vlc para el flujo de una cámara).

No hay acción «ejecutar un comando de shell», a propósito: un shell ADB puede instalar, eliminar o leer cualquier cosa en el dispositivo, y una escena la puede modificar cualquier administrador de Gladys. Home Assistant ofrece una; esta integración no.

Ejemplos de escenas​

  • Modo cine: cuando Netflix, Prime Video o Disney+ pasa a la pantalla después de las 20 h, baje las luces del salón al 20 %.
  • Pausa, luz: cuando la reproducción se pausa en el televisor del salón, suba las luces al 60 %; cuando continúa, vuelva al 20 %.
  • Noticias de la mañana: a las 7:30 los días laborables, encienda el televisor de la cocina y abra la dirección de una emisión de noticias en directo en YouTube.
  • Hora de dormir de los niños: cuando YouTube Kids pasa a la pantalla del televisor de los niños después de las 21 h, envíe un mensaje a los padres o ponga el televisor en espera.

Solución de problemas​

  • «Nunca alcanzado»: compruebe la dirección, que el dispositivo esté encendido y que la depuración por red esté activada. Algunos televisores (Philips) solo aceptan la primera autorización por Wi-Fi: autorice una vez por Wi-Fi y después también funciona la conexión por cable.
  • «Aún no autorizado»: acepte la pregunta en la pantalla marcando «Permitir siempre», o ejecute Conectar los dispositivos con la pantalla encendida. Android 11+ olvida una autorización sin usar durante siete días: Opciones para desarrolladores → «Desactivar el tiempo de espera de autorización de adb».
  • «Puerto de depuración inalámbrica (emparejamiento)»: la dirección apunta al puerto de la depuración inalámbrica de Android 11, no a la depuración por red en el 5555 (vea Requisitos).
  • El volumen siempre indica 100 %: en una caja conectada por HDMI, el volumen es el del televisor (HDMI-CEC) y la caja emite un volumen fijo. Use las teclas de volumen, que la caja transmite al televisor.
  • Falta una aplicación en la lista: no tiene entrada en la pantalla de inicio (un servicio, una entrada). Use la acción «Abrir una aplicación» con su nombre de paquete.
  • Otro cliente ADB no se conecta: algunos dispositivos solo aceptan una conexión ADB a la vez. Con la pantalla encendida, Gladys mantiene una abierta.
  • El dispositivo no sale de la espera: en espera profunda, algunos televisores apagan su red y ya nada los alcanza. Active la opción de espera en red del televisor («Encendido por red», «Inicio rápido»).
  • Más detalles: ajuste LOG_LEVEL=debug en la integración para ver cada lectura en sus registros.

Para retirar la autorización de Gladys de un dispositivo: Opciones para desarrolladores → «Revocar autorizaciones de depuración USB».

Límites​

  • Desarrollada sin el hardware: los formatos de las respuestas de los dispositivos proceden de las bibliotecas de Home Assistant y de las fuentes de Android, y varían según modelos y versiones. Sus comentarios son bienvenidos.
  • Sin descubrimiento automático: los dispositivos no anuncian su puerto de depuración por red de forma fiable, y la integración no puede escuchar la red local por sí misma. Introduzca las direcciones.
  • Gladys no puede encender un dispositivo cuya red duerme en espera.
  • El estado de reproducción depende de que la aplicación lo publique (Netflix, YouTube, Plex, Spotify, VLC sí; algunas no).
  • Sin cambio de entrada HDMI, sin canales, sin captura de pantalla, sin comando de shell libre.
  • La depuración inalámbrica de Android 11+ (código de emparejamiento) no es compatible.

Seguridad y privacidad​

  • La clave de Gladys (una clave RSA, como la de la herramienta adb) se crea en el primer arranque y se guarda en el volumen de datos de la integración (/data/adbkey). Nunca sale de él y nunca aparece en los registros. Quien la tenga, y alcance el dispositivo por la red, puede controlar el dispositivo: mantenga privadas sus copias de seguridad de Gladys.
  • /data/androidtv-adb.json guarda los dispositivos identificados: dirección, número de serie o dirección MAC, modelo, versión de Android, aplicaciones instaladas.
  • La integración solo envía los comandos fijos descritos aquí, lee el estado del dispositivo y nunca lee sus archivos. Todo el tráfico se queda en su red local.

Parámetros de configuración​

Estos son los parámetros que Android TV / Fire TV (ADB) te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Antes de empezarsectionNoEn el televisor o la caja: active las opciones para desarrolladores (7 clics en el número de compilación) y luego la depuración por red (Fire TV: depuración ADB). Introduzca su dirección IP abajo y guarde: la pantalla pregunta «¿Permitir la depuración?». Marque «Permitir siempre» y acepte. Complementa la integración Android TV Remote: ADB también funciona en Fire TV, abre cualquier aplicación y lee la que está en pantalla.
Direcciones IP de los dispositivosstringNoUna dirección por televisor o caja, separadas por comas. Puerto 5555 por defecto (añada :puerto si no). Asigne a cada dispositivo una dirección fija en su router.
Actualización encendido (segundos)numberNoFrecuencia de lectura de un dispositivo encendido (5 a 60 s). En espera, una vez por minuto.
Idioma de los nombres de funcionesselectNoNombres de las funciones al añadir un dispositivo y textos de los eventos de escena.

Cómo instalar Android TV / Fire TV (ADB) en Gladys​

  1. En Gladys, abre Integraciones: Android TV / Fire TV (ADB) aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/guim31/gladys-androidtv-adb:1.0.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-androidtv-adb.

Android TV / Fire TV (ADB) requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Android TV / Fire TV (ADB) es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂