Integra tu AndroidTV en Home Assistant y manejala con tus altavoces inteligentes
En el artículo de hoy vas a aprender a integrar tu AndroidTV en Home Assistant y a manejarla con tus altavoces inteligentes Alexa, Google y Siri. La forma de realizarlo es similar a la integración que vimos en el artículo de la Televisión LG WebOS y que puedes consultar aquí. La forma de manejarla con voz la vamos a realizar con script en Home Assistant y posteriormente con Rutinas en Alexa y con escenas en Google y Siri.
Recomiendo, como siempre, leer la documentación oficial de androidtv en Home Assistant donde viene perfectamente explicado y de manera más amplia a lo que aquí explico.
Puedes ver el vídeo sobre este tema en mi canal o justo aquí debajo. Os pido por favor que os suscribáis si os gusta el contenido y deis al Like si os ha gustado el vídeo. A mi me sirve de gran ayuda para saber que merece la pena seguir haciendo vídeos y escribiendo artículos.
Activar el modo desarrollador en AndroidTV
El primer paso y más importante, es activar el modo desarrollador (habilitar depuración ADB). Para los diferentes dispositivos Android recomiendo consultar la documentación del dispositivo ya que, si bien en todos suele ser más o menos similar, puede haber pequeñas variaciones dependiendo del modelo.
En mi AndroidTV por ejemplo, la ruta a seguir sería la siguiente:
- Pulsaríamos la tecla settings.
- En el menú que nos abre seleccionamos Información.
- Nos situamos sobre donde pone Modelo y pulsamos con el botón OK varias veces (7 u 8 veces)
- Si no activa el modo desarrollador en el paso anterior, bajaremos hasta Compilación y haremos el mismo proceso: pulsar OK varias veces (en mi caso es esta última forma la que activa Opciones para desarrolladores).
- Una vez activado Opciones para desarrolladores, entramos en esta opción y es muy importante activar Depuración USB.
- En nuestra televisión nos aparecerá una ventana emergente pidiendo consentimiento para permitir la depuración por USB. Marcamos la casilla existente y pulsamos en aceptar.
- Aunque no debería ser necesario, recomiendo reiniciar nuestra televisión una vez realizados estos pasos.
Una vez realizado lo anterior ya estaríamos preparados para integrar nuestra AndroidTV en Home Assistant.
Integración de AndroidTv en Home Assistant
Para realizar la configuración y por tanto la integración de nuestra AndroidTV en Home Assistant tenemos que saber la IP de nuestra televisión. Podéis consultarla dentro de los ajustes de red. Una vez que la sepáis, tendremos que añadir el siguiente código en el configuration.yaml de Home Assistant:
media_player:
- platform: androidtv
name: Android Tv #O el nombre que querais darle
host: 192.168.1.65 #La IP de vuestra televisión
Una vez hecho esto reiniciaríamos Home Assistant para completar la configuración e integración.
Para comprobar que todo se ha realizado correctamente dentro de Herramientas para desarrolladores tendremos que tener una nueva entidad llamada media_player.android_tv. Aquí podréis ver el estado y los atributos de la entidad.
Creación de script para manejar nuestra AndroidTV con Alexa, Google y Siri
Para poder manejar mediante comandos de voz nuestra televisión AndoridTV con Alexa, Google o Siri la mejor manera de hacerlo es mediante script. El script lo que hace es ejecutar una acción y esa acción es lo que nosotros vamos a querer que haga Alexa, Google o Siri cuando digamos una frase.
Todos los scripts que realicemos en Home Assistant los vamos a encontrar como escenas en Alexa, escenas en Google Home e interruptores en la aplicación Casa de IOS. Muchos de ellos no tendrán ningún interés para nosotros en que aparezcan en nuestra Alexa, Google o Siri, por lo que es recomendable excluirlos para no tener basura y, por tanto, cosas que no vamos a utilizar. Toda la documentación sobre Alexa, Google y Homekit en Home Assistant y la forma de incluir y excluir entidades, dominios, etc., podéis consultarla en sus respectivas documentaciones oficiales dentro de Home Assistant.
Existen 2 tipos de servicios que son los que van a ejecutar la acción en nuestro script:
- media_player.select_source
- androidtv.adb_command
media_player.select_source
Este servicio lo que hace es iniciar una aplicación en nuestra televisión AndroidTV. Lo vamos a realizar proporcionando el ID de la aplicación. Si anteponemos el signo ! antes del ID lo que hará será detener dicha aplicación. La lista entera de comandos los podéis consultar aquí. Vienen reflejados como #Apps.
Os dejo un par de ejemplos de scripts: uno va a poner Netflix y el otro va a poner Plex.
sequence:
- service: media_player.select_source
target:
entity_id: media_player.android_tv
data:
source: com.netflix.ninja
mode: single
alias: Netflix
sequence:
- service: media_player.select_source
target:
entity_id: media_player.android_tv
data:
source: com.plexapp.android
mode: single
alias: Plex
androidtv.adb_command
Este servicio permite enviar claves o comandos de shell ADB al dispositivo AndroidTV / Fire TV.
Los comandos de teclado disponibles incluyen:
- POWER
- SLEEP
- HOME
- UP
- DOWN
- LEFT
- RIGHT
- CENTER
- BACK
- MENU
La lista completa de comandos clave los podéis encontrar aquí. Aparecen reflejados como # Android TV keys y, como podéis comprobar, se trata de una lista muy amplia.
Os dejo un par de scripts creados con este servicio. Por ejemplo un script con Power, el cual apagaría la Televisión y otro con HOME que iría a la página HOME de nuestra AndroidTV.
sequence:
- service: androidtv.adb_command
data:
entity_id: media_player.android_tv
command: HOME
mode: single
alias: Home
sequence:
- service: androidtv.adb_command
data:
entity_id: media_player.android_tv
command: POWER
mode: single
alias: Power
Utilización del servicio androidtv.learn_sendevent
Cuando enviamos los comandos que hemos visto anteriormente vía servicio ADB, nuestro dispositivo puede tener un pequeño retraso al responder. Este servicio permite reducir ese retraso. Lo que va a hacer es aprender el comando que nuestro mando a distancia emite para realizar una acción: por ejemplo, cuando pulsamos un botón numérico o el botón Netflix, Prime Video, etc. y posteriormente podemos utilizar ese comando aprendido para enviarlo, en forma de script por ejemplo, y ejecutar la acción. Esto resulta muy interesante porque no todos los comandos que aparecen en la lista funcionan en todos los dispositivos AndroidTV. A mi por ejemplo no me funciona el comando Prime Video mediante androidtv.adb_command ni tampoco ‘com.amazon.avod’ con el servicio media_player.select_source. Si utilizo este servicio es como si estuviese apretando el botón Prime Video en mi propio mando a distancia por lo que tengo la certeza que va a funcionar perfectamente.
Para aprender los códigos la forma de realizarlo es muy fácil siguiendo estos sencillos pasos:
- En nuestro Home Assistant vamos a seleccionar Herramientas para desarrolladores en nuestro menú. Aquí pulsaremos sobre la pestaña servicios.
- Seleccionamos el servicio, en nuestro caso, androidtv.learn_sendevent
- Pulsamos en el botón LLAMAR SERVICIO
- Pulsamos el botón del mando a distancia que queramos aprender.
Pasados 8 segundos vamos a ver una notificación en nuestro menú de Home Assistant con un código generado que se corresponde con el botón pulsado. Ese código ya lo podremos utilizar para crear nuestro script mediante el servicio androidtv.adb_command.
Este es un ejemplo de un script que realiza la misma acción con el comando UP o aprendiendo el código con el servicio androidtv.adb_command (ejemplo sacado de la web de Home Assistant):
# Send the "UP" command (slow)
- service: androidtv.adb_command
target:
entity_id: media_player.fire_tv_living_room
data:
command: UP
Y ahora aprendiendo el código del botón UP:
# Send the "UP" command using `sendevent` (faster)
- service: androidtv.adb_command
target:
entity_id: media_player.fire_tv_living_room
data:
command: "sendevent /dev/input/event4 4 4 786979 && sendevent /dev/input/event4 1 172 1 && sendevent /dev/input/event4 0 0 0 && sendevent /dev/input/event4 4 4 786979 && sendevent /dev/input/event4 1 172 0 && sendevent /dev/input/event4 0 0 0"
Como integrar los scripts en Alexa, Google o Siri para manejarlos con la voz
Alexa, Google y Siri los scripts los interpretan como un switch (más o menos como un botón para que lo entendáis). Por tanto, todos los scripts que hemos creado para que Alexa, Google y Siri los entiendan tendríamos que llamarlos bajo la orden: Alexa enciende … (nombre que hemos dado al script), Hey Google enciende… o Siri enciende…
Es verdad que de esta forma ya podríamos manejarlo con nuestros altavoces, pero no suena muy real decir: Alexa enciende Telecinco, o Google enciende sube canal o Siri enciende para película. No se, creo que resulta extraño porque nosotros no hablamos así habitualmente. Por eso, y para hacerlo más real, vamos a crear rutinas en Alexa, rutinas en Google y escenas en la aplicación casa con Siri utilizando los scripts que hemos creado y, de esta forma, hablar a Alexa, Google o Siri como si se lo estuviésemos haciendo con una persona real.
Alexa:
El siguiente paso es abrir la app Alexa (aplicación para aquellos un poco perdidos) en nuestro dispositivo (movil, tablet…).
- En el menú inferior pulsaremos sobre la opción «Mas». En el desplegable que nos aparece seleccionaremos Rutinas.
- Arriba a la derecha pulsaremos sobre el símbolo + para crear una nueva rutina.
- Introduciremos el nombre de la rutina (por ejemplo «Telecinco» para poner este canal) y pulsaremos en siguiente.
- En la siguiente opción, Cuando, escribiremos lo que queremos que haga el script que hemos creado anteriormente y que vamos a usar ahora. Elegiremos Voz y escribiremos, Por ejemplo, Alexa pon Telecinco. Pulsaremos en siguiente.
- Ahora elegiremos la Acción, que es uno de los scripts que hemos creado en nuestro Home Assistant. Pulsamos en Añadir acción. En el desplegable que nos aparece, muy importante, seleccionar Hogar digital. Nos aparecerá un nuevo menú en el cual seleccionaremos Controlar ambiente. Y aquí, por último, seleccionaremos el ambiente (script) que hemos creado anteriormente.
Ahora cuando queramos poner Telecinco en nuestra televisión con Alexa, simplemente diremos: Alexa pon Telecinco. Como podemos comprobar algo más real y semejante a nuestro lenguaje.
Con esto ya podríais controlar todas las funciones de vuestra televisión AndroidTV con Alexa y Home Assistant.
Google:
El siguiente paso es abrir la app Google Home (aplicación para aquellos un poco perdidos) en nuestro dispositivo (movil, tablet…).
- En el menú principal pulsaremos sobre la opción «Rutinas». En el desplegable que nos aparece seleccionaremos el símbolo + situado abajo a la izquierda.
- Dentro de la opción Activadores – Elige cómo se activa esta rutina, pulsaremos sobre + Añadir primer elemento.
- En el siguiente menú seleccionaremos la primera opción Comando de voz.
- Ahora escribiremos lo que nosotros queramos pedirle a Google: Hey Google pon Telecinco o Hey Google sube el canal. Pulsamos en Añadir primer elemento para finalizar este paso.
- Ahora elegiremos la Acción, es decir, elegiremos uno de los scripts que hemos creado en nuestro Home Assistant.
- Para ello pulsamos sobre + Añadir acción.
- En la lista de opciones que nos aparece seleccionaremos Ajustar los dispositivos Domésticos.
- Tendremos 3 nuevas opciones. Nosotros seleccionaremos Configurar ambientes, pulsando en la flecha de su derecha.
- Por último, seleccionamos el script que deseamos y finalizamos pulsando sobre Hecho 2 veces.
- Guardamos la rutina pulsando en Guardar.
- Ya tenemos nuestra primera rutina creada.
Ahora cuando queramos poner Telecinco en nuestra televisión con Google, simplemente diremos: Hey Google pon Telecinco. Como podemos comprobar algo más real y semejante a nuestro lenguaje.
Con esto ya podríais controlar todas las funciones de vuestra televisión AndroidTV con Google y Home Assistant.
Siri:
Todos los scripts creados en nuestro Home Assistant los vamos a encontrar en la aplicación Casa como un accesorio más, en este caso, como un switch o interruptor. Es muy importante excluir aquellos que no vayamos a utilizar para no tener basura en nuestro dispositivo.
Una vez los tengamos en la aplicación podríamos agruparlos en una habitación dándole un nombre en concreto, por ejemplo, Canales. Si dejamos pulsado cada uno de ellos (pulsación larga) podemos comprobar toda la información e incluso podemos asignarle un nombre. La forma que más se asemeja a la nuestra forma de hablar lo conseguiríamos creando Ambientes en la aplicación. Los pasos a seguir son los siguientes:
- Abrimos la aplicación Casa en nuestro dispositivo (móvil, Tablet…).
- Pulsamos sobre el símbolo + ubicado en la parte superior.
- Seleccionamos Añadir ambiente.
- En las siguientes opciones elegimos Personalizar.
- Le damos un nombre al ambiente, algo que se ajuste a la realidad de lo que queremos hacer, por ejemplo: Pon Telemadrid, Sube canal, Para la película, etc.
- Seleccionamos Añadir accesorios y elegimos el script que hemos creado en nuestro Home Assistant.
- Guardamos pulsando OK.
Como hemos podido comprobar es muy fácil crear ambientes en nuestra aplicación Casa y, por tanto, manejar nuestra Televisión con Siri desde este momento.