Maneja tu Televisión LG WebOS con Google y HA
En este articulo vas a aprender a utilizar tu televisión LG WebOS con Google y Home Assistant.
Para ello es muy importante tener integrada Google en Home Assistant bien a traves de Home Assistant Cloud o bien de forma manual con Google Assistant. Cualquiera de las dos formas es totalmente validas. Puedes ver como realizar la integración de Google en Home Assistant aquí.
La documentación la podéis encontrar en la web oficial de Home Assistant, y como siempre digo, recomiendo leer encarecidamente.
También podéis ver el vídeo en mi canal o en el link que dejo justo aquí abajo. Aprovecho la ocasión para animaros a suscribirse a mi canal si os gusta el contenido y pulseis en el Like si os ha gustado el vídeo.
Lo primero que tenéis que hacer es averiguar la IP y la MAC de vuestra Televisión LG WebOS. Esta información la podéis encontrar en la configuración de vuestro dispositivo. No indico la ruta ya que dependiendo del modelo esta podría variar, pero en general suele ser bastante sencillo encontrarla. Una vez que lo tengáis, tendremos que añadirlo dentro del Configuration.yaml de nuestro Home Assistant de la siguiente forma:
webostv:
host: 192.168.1.xx #IP de vuestra Televisión
name: LG webOS Smart TV #Nombre que le querais dar a la Televisión
turn_on_action:
service: wake_on_lan.send_magic_packet
data:
mac: "AA:BB:CC:DD:EE:FF" #MAC de vuestra Televisión
Es muy importante añadir esta línea también al configuration.yaml para poder encender la Televisión cuando está apagada. Esta forma funciona teniendo la televisión conectada por cable de red. En muchos modelos no funciona si la televisión la tenemos por wifi.
wake_on_lan:
Una vez que hemos añadido el código a nuestro Home Assistant reiniciaremos el sistema para que surjan efecto los cambios. Podemos comprobar en el menú de Home Assistant, dentro de la opción de Herramientas para desarrolladores, que se nos ha añadido un nuevo media player con el siguiente formato: media_player.nombre_dado_a_nuestra_television. Es muy recomendable ver todos los atributos que os aparecen para comprobar todo lo que vais a poder seleccionar y por tanto manejar con Home Assistant y, por consiguiente, con Google.
Añadir tarjeta para manejar vuestra TV LG WebOS en HA
Una vez que hemos realizado la integración en Home Assistant, ya podemos crear una tarjeta para controlar nuestra televisión. Para ello elegiremos Añadir tarjeta en nuestro panel y seleccionaremos la tarjeta Control multimedia. Seleccionaremos el dispositivo, es decir, nuestra TV LG, y ya podremos manejarla desde Home Assistant.
Podemos crear tarjetas personalizadas un poco más complejas. Dejo un ejemplo de una creada con una card (custom buton card) que tengo integrada en mi Home Assistant.
cards:
- entity: media_player.lg_webos_smart_tv
type: media-control
- cards:
- action: service
color: rgb(0, 62, 209)
color_type: card
icon: mdi:volume-plus
tap_action:
action: call-service
service: webostv.button
service_data:
button: VOLUMEUP
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(0, 62, 209)
color_type: card
icon: mdi:volume-minus
tap_action:
action: call-service
service: webostv.button
service_data:
button: VOLUMEDOWN
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:home
tap_action:
action: call-service
service: webostv.button
service_data:
button: HOME
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:arrow-up-thick
tap_action:
action: call-service
service: webostv.button
service_data:
button: UP
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:arrow-down-thick
tap_action:
action: call-service
service: webostv.button
service_data:
button: DOWN
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
type: horizontal-stack
- cards:
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:exit-to-app
tap_action:
action: call-service
service: webostv.button
service_data:
button: EXIT
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:backup-restore
tap_action:
action: call-service
service: webostv.button
service_data:
button: BACK
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:check
tap_action:
action: call-service
service: webostv.button
service_data:
button: ENTER
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:arrow-left-thick
tap_action:
action: call-service
service: webostv.button
service_data:
button: LEFT
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
- action: service
color: rgb(255, 0, 0)
color_type: card
icon: mdi:arrow-right-thick
tap_action:
action: call-service
service: webostv.button
service_data:
button: RIGHT
entity_id: media_player.lg_webos_smart_tv
type: custom:button-card
type: horizontal-stack
- cards:
- color_type: card
entity: script.canal_tv_live
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
type: custom:button-card
- color_type: card
entity: script.canal_netflix
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
type: custom:button-card
- color_type: card
entity: script.canal_amazon_tv
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
type: custom:button-card
- color_type: card
entity: script.canal_hbo
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
type: custom:button-card
type: horizontal-stack
- cards:
- color_type: card
entity: script.canal_tve1
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_tve1
service_data:
entity_id: script.canal_tve1
type: custom:button-card
- color_type: card
entity: script.canal_tve2
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_tve2
service_data:
entity_id: script.canal_tve2
type: custom:button-card
- color_type: card
entity: script.canal_antena_tres
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_antena_tres
service_data:
entity_id: script.canal_antena_tres
type: custom:button-card
- color_type: card
entity: script.canal_cuatro
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_cuatro
service_data:
entity_id: script.canal_cuatro
type: custom:button-card
- color_type: card
entity: script.canal_tele_5
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_tele_5
service_data:
entity_id: script.canal_tele_5
type: custom:button-card
type: horizontal-stack
- cards:
- color_type: card
entity: script.canal_la_sexta
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_la_sexta
service_data:
entity_id: script.canal_la_sexta
type: custom:button-card
- color_type: card
entity: script.canal_divinity
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_divinity
service_data:
entity_id: script.canal_divinity
type: custom:button-card
- color_type: card
entity: script.canal_24_horas
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_24_horas
service_data:
entity_id: script.canal_24_horas
type: custom:button-card
- color_type: card
entity: script.canal_telemadrid
show_entity_picture: true
show_label: false
show_name: false
show_state: false
styles:
entity_picture:
- align-self: middle
- height: 50px
- width: 50px
tap_action:
action: call-service
service: script.canal_telemadrid
service_data:
entity_id: script.canal_telemadrid
type: custom:button-card
type: horizontal-stack
type: vertical-stack
Esta es solo un ejemplo para que veais la variedad de cosas que podemos llegar a realizar.
Integración con Alexa mediante script
Para poder manejar mediante comandos de voz nuestra televisión LG WebOS con Google, 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 cuando digamos una frase.
Todos los script que realicemos en Home Assistant los vamos a encontrar como escenas en Google. Muchos de ellos no tendrán ningún interés para nosotros en que aparezcan en nuestro Google Home por lo que es recomendable excluirlos para no tener basura y, por tanto, cosas que no vamos a utilizar. Toda la documentación sobre Google en Home Assistant y la forma de incluir y excluir entidades, dominios, etc, podéis consultarla aquí.
Cambio de canales
Para cambiar los canales de nuestra televisión podemos realizarlo de 2 formas distintas:
- Mediante el servicio media_player.play_media: Esto forma llama al número de canal asignado en tu TV.
- Mediante el servicio webostv.button: Esto es como si pulsásemos un boton del mando a distancia.
Las dos formas son totalmente válidas y los scripts varían un poco dependiendo de la forma que queramos utilizar. Esto va por gustos de cada uno por lo que recomiendo probar ambas formas y utilizar la que más guste a cada uno.
# Ejemplo de acción eligiendo el servicio play_media para poner el canal 1
service: media_player.play_media
target:
entity_id: media_player.lg_webos_smart_tv
data:
media_content_id: 1
media_content_type: "channel"
# Ejemplo de acción eligiendo el servicio play_media y el nombre del canal
service: media_player.play_media
target:
entity_id: media_player.lg_webos_smart_tv
data:
media_content_id: "Telecinco"
media_content_type: "channel"
Personalmente esta forma de elegir el canal a mi me ha dado muchos errores y no siempre me ha funcionado por lo que prefiero utilizar el servicio webos.button como si pulsase yo el botón del mando a distancia. Este es el método que os muestro a continuación.
Service webostv.button
# Ejemplo del boton Casa o Inicio
script:
home_button:
sequence:
- service: webostv.button
target:
entity_id: media_player.lg_webos_smart_tv
data:
button: "HOME"
# Ejemplo subir canal como si pulsásemos el botón Subir Canal
script:
subir_canal:
sequence:
- service: webostv.button
target:
entity_id: media_player.lg_webos_smart_tv
data:
button: "CHANNELUP"
# Ejemplo de una canal en el cual tenemos que pulsar 2 botones
script:
tecno_tv:
sequence:
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv
button: '1'
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv
button: '5'
mode: single
alias: Tecno TV
La lista completa de botones los podéis encontrar en la documentación oficial de Home Assistant. Estos son solo unos ejemplos pero que se realizarían de la misma forma con los demás botones.
Service webostv.command
Este servicio, a diferencia del anterior, ejecuta una serie de servicios disponibles en nuestras televisiones LG WebOS y que podéis encontrar en el siguiente enlace. La intención de este articulo no es mostrar todos los servicios que aquí encontráis y que significa cada uno de ellos porque, entre otras cosas, el github pertenece a Josh Bendavid al cual es de agradecer esta enorme aportación. Por lo tanto, dejo solo unos ejemplos para que aprendáis el gran potencial que tiene para integrar nuestras LG:
# Subir canal mediante el servicio webostv.command
script:
subir_canal:
alias: Subir canal
sequence:
- service: webostv.command
data:
entity_id: media_player.lg_webos_smart_tv
command: tv/channelUp
mode: single
# Abre la web de google en el navegador de nuestra televisión
script:
abrir_web_google:
sequence:
- service: webostv.command
target:
entity_id: media_player.lg_webos_smart_tv
data:
command: "system.launcher/open"
payload:
target: https://www.google.com
# Pausa una película (por ejemplo si estamos viendo Netflix)
script:
pausar_pelicula:
alias: Pausar pelicula
sequence:
- service: webostv.command
data:
entity_id: media_player.lg_webos_smart_tv
command: media.controls/pause
mode: single
Integración en Google y uso mediante comandos de voz
Como ya he mencionado anteriormente, todos los scripts creados en nuestro Home Assistant los vamos a encontrar en Google como escenas. Siento ser pesado en esto, pero es muy importante excluir aquellos que no vamos a utilizar para no tener cosas innecesarias en nuestro Google Home.
La ruta para encontrar las escenas en nuestro Google Home es la siguiente:
- Pulsar en la inicial de la ventana principal de Google Home, arriba a la derecha.
- Seleccionar Ajustes del Asistente.
- En las nuevas opciones, seleccionar Control de la casa.
- En el menú superior que se nos muestra, seleccionar Escenas.
Google los scripts los interpreta como un switch (más o menos como un botón para que lo entendais). Por tanto, todos los script que hemos creado para que Google los entienda tendríamos que llamarlos bajo la orden: Google enciende … (nombre que hemos dado al script).
Es verdad que de esta forma ya podríamos manejarlo con nuestro Google pero no suena muy real decir: Google enciende Telecinco, o Google enciende sube canal o Google 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 Google utilizando los scripts que hemos creado y, de esta forma, hablar a Google como si se lo estuviésemos pidiendo a una persona real.
Una vez creados todos los script es conveniente reiniciar nuestro Home Assistant. También podríamos recargarlos mediante el panel configuración, pero como yo soy muy maniático prefiero siempre reiniciar.
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 simbolo + 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 script 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 Domesticos.
- 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 LG WebOS Smart TV con Google y Home Assistant. Espero que os haya resultado útil.
Nos vemos en el siguiente artículo, nos vemos en Tecnosanvaras.
Un saludo a todos y …