Maneja tu Televisión LG WebOS con Siri y HA

En este articulo vas a aprender a utilizar tu televisión LG WebOS con Siri y Home Assistant.

Para ello es muy importante tener integrado Homekit en Home Assistant bien a traves de Home Assistant Cloud o bien de forma manual con Homekit. Cualquiera de las dos formas es totalmente validas. Puedes ver como realizar la integración de Homekit 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 Siri.

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 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 cuando digamos una frase.

Todos los script que realicemos en Home Assistant los vamos a encontrar como interruptores en Homekit. Muchos de ellos no tendrán ningún interés para nosotros en que aparezcan en nuestra aplicación Casa, por lo que es recomendable excluirlos para no tener basura y, por tanto, cosas que no vamos a utilizar. Toda la documentación sobre Homekit 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:

  1. Mediante el servicio media_player.play_media: Esto forma llama al número de canal asignado en tu TV
  2. 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 Siri y uso mediante comandos de voz

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. Imaginemos que el script se llama Tecnosanvaras. Simplemente con decir a Siri: Siri enciende Tecnosanvaras, se ejecutaría el script que hemos creado. Pero esta forma no es muy amigable y se aleja un poco de la realidad porque generalmente no hablamos de esta forma cuando queremos poner un canal en concreto. Por eso 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:

  1. Abrimos la aplicación Casa en nuestro dispositivo (movil, tablet…).
  2. Pulsamos sobre el símbolo + ubicado en la parte superior.
  3. Seleccionamos Añadir ambiente.
  4. En las siguientes opciones elegimos Personalizar.
  5. 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 pelicula, etc.
  6. Seleccionamos Añadir accesorios y elegimos el script que hemos creado en nuestro Home Assistant.
  7. 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.

Espero que os haya resultado útil.

Nos vemos en el siguiente artículo, nos vemos en Tecnosanvaras.

Un saludo a todos y …

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *