LG televisies hebben een API die bereikbaar is met WebOSTV en daar kan Home Assistant ook gebruik van maken. In de configurations.yaml dient een stukje code toegevoegd te worden:

webostv:
  - name: TV woonkamer
    host: !secret tv_ip
    turn_on_action:
      service: wake_on_lan.send_magic_packet
      data:
        mac: !secret tv_mac
        broadcast_address: 255.255.255.255

Hierbij zijn het IP-adres en het MAC-adres in secrets.yaml gezet.

Met de media_player card kan ik de TV uitzetten, de bronnen kiezen, pauzeren (mits er een USB device gekoppeld is aan de TV om op te nemen) en het volume bedienen. Eenmaal als de TV uit is krijg ik hem met deze entity niet meer aan.

De ‘turn_on_action‘ zou volgens de beschrijving via een WOL-pakketje (Wake-On-LAN) gaan maar dat gaat niet werken als de TV alleen via WiFi bereikbaar is. Deze optie werkt alleen als de TV is aangesloten via een ethernetkabel.

POWER ON/OFF work around

Om toch via Home Assistant de TV weer aan te kunnen zetten ga ik de hulp inroepen vann HomeBridge. Hier is een plugin toegevoegd voor WebOSTV zodat met Apple-devices via HomeKit de TV bediend kan worden, inclusief aan/uit! En in Homebridge hebben we een koppeling naar MQTT.

In HomeBridge maak ik een MQTT switch aan genaamd ‘LG-TV’ en het bijbehorende stukje code in HomeBridge ziet er alsvolgt uit:

       {
            "accessory": "mqttthing",
            "type": "switch",
            "name": "LG-TV",
            "url": "mqtt://{{ tv_ipaddress }}:31883",
            "username": "{{ mqtt_username }} ",
            "password": "{{ mqtt_password }}",
            "caption": "homebridge/livingroom/tv",
            "topics": {
                "getOn": "homebridge/livingroom/tv/Power",
                "setOn": "homebridge/livingroom/tv/Power",
                "setActiveInput": "homebridge/livingroom/tv/Source",
                "getActiveInput": "homebridge/livingroom/tv/Source"
            },
            "inputs": [
                {
                    "name": "Live TV",
                    "value": "Live TV"
                }
            ],
            "onValue": "ON",
            "offValue": "OFF",
            "history": "true"
        }

In HomeKit maak ik een automatisering aan die de LG-TV-MQTT-switch én de LG-TV-Power aan- en uitzet als de LG TV aan- en uitgezet wordt. Deze ON/OFF commando’s worden dan naar de MQTT-Broker gestuurd.

In HomeAssistant maak ik een switch aan via MQTT en daarvoor komt dit in de configuratie van HA:

- platform: mqtt
  name: "LG TV"
  state_topic: "homebridge/livingroom/tv/Power"
  command_topic: "homebridge/livingroom/tv/Power"
  payload_on: "ON"
  payload_off: "OFF"
  qos: 0

Overeenkomstig is de topic voor Power met die van ‘mqttthings’ in HomeBridge zodat ik nu een switch-card in een dashboard kan opnemen om de TV aan/uit te zetten.

De power-on optie in configuration.yaml van Home Assistant ga ik aanpassen om de MQTT switch aan te zetten dis die gaat er alsvolgt uit zien:

webostv:
  - name: TV woonkamer
    host: !secret tv_ip
    turn_on_action:
      service: switch.turn_on
      data:
        entity_id: switch.lg_tv

En hiermee kan nu ook de TV aan- en uitgezet worden via de media-player card.