openHAB :: Einbinden von LG-Fernsehern

32Kürzlich stellte ich in einem Artikel die Möglichkeit vor, einen LG-Smart-TV mit einer Linux-Kommandozeile zu steuern. Zur Einbindung in openHAB fehlen jetzt nur noch wenige Schritte.

In unserem Beispielszenario verfügt der openHAB-Server über die IP-Adresse “192.168.23.212” und der LG-Fernseher im selben Subnetz über die Adresse “192.168.23.42“. Wichtig ist, dass alle Schritte aus der vorhergehenden Anleitung korrekt durchgeführt wurden und eine Bedienung des Fernsehers mit dem Script “lgcommander” möglich ist.

Verfügbare Artikel zu openHAB

little_blue_dot Einleitunglittle_blue_dot Einbinden der Internetgeschwindigkeitlittle_blue_dot RFID-Lesegerät einbinden
little_blue_dot Installationlittle_blue_dot Präsenzerkennung via Bluetooth und Pinglittle_blue_dot Einbinden von DS18B20-Sensoren
little_blue_dot Konfigurationlittle_blue_dot Kleines Netzwerkmonitoringlittle_blue_dot ical-Abfallkalender einbinden
little_blue_dot Reverse-Proxy für OpenHABlittle_blue_dot Einbinden von LG-Fernsehern [Update]little_blue_dot openHAB als Wecker
little_blue_dot Datenspeicherung und Statistikenlittle_blue_dot Einbinden Schaltern und Kontaktenlittle_blue_dot Einbinden von Bewegungssensoren
little_blue_dot Regeln planen und konfigurierenlittle_blue_dot Einbinden von Funksteckdosen (433 MHz)little_blue_dot Einbinden einer FritzBox
little_blue_dot Einbinden von USB-Steckdosenleisten (SIS-PMS)little_blue_dot Infrarotgesteuerte Geräte einbindenlittle_blue_dot Sprachausgabe auf einem Raspberry
little_blue_dot Einbinden von Temperatursensorenlittle_blue_dot Steuerung mit NFC-Tagslittle_blue_dot Schaltbare Steckdosenleiste mit Relais
little_blue_dot Externer Zugriff mit my.openhab

 

[themify_box style=”rounded announcement shadow” ]Update
Mittlerweile existiert ein eigenes OpenHAB-Binding für LG-Fernseher.
Die Umsetzung mit diesem Binding wird in diesem Artikel beschrieben.[/themify_box]

Das entsprechende Script, dass es openHAB ermöglicht, den LG-Fernseher zu steuern ist recht klein und könnte theoretisch gänzlich entfallen, wenn die entsprechende Befehlszeile in die Itemdefinition übernommen werden würde:

#!/bin/bash
/scripts/lgcommander.py -H 192.168.23.42 -P roap -k 123456 -c $1

Hier geschieht nichts anderes, als dass das Python-Script “lgcommander” im Modus “roap“, mit dem Schlüssel “123456” und einem Kommando, welches über einen Parameter eingesetzt wird, startet.

 

Die Item-Definitionen sind da bereits etwas umfangreicher:

//LG-Fernseher
Switch TVC42_POWER "TV ausschalten" <socket> { exec="OFF:/scripts/lgcommander.sh 1" }
Switch TVC42_CHANNEL "Kanalauswahl" <channel> { exec="ON:/scripts/lgcommander.sh 27 , OFF:/scripts/lgcommander.sh 28", autoupdate="false" } //ON=Channel up, OFF=Channel down
Switch TVC42_VOLUME "Lautstärke" <volume> { exec="ON:/scripts/lgcommander.sh 24 , OFF:/scripts/lgcommander.sh 25", autoupdate="false" } //ON=Lauter, OFF=Leiser
Switch TVC42_TON "Stumm schalten" <speaker> { exec="ON:/scripts/lgcommander.sh 26 , OFF:/scripts/lgcommander.sh 26" }
Switch TVC42_PAUSE "Pausieren" <playpause> { exec="ON:/scripts/lgcommander.sh 34 , OFF:/scripts/lgcommander.sh 33" }

 

Denkbar wären zudem Definitionen für weitere Schaltbefehle des Fernsehers. Für dieses Beispiel und auch mir persönlich reichen jedoch die oben aufgeführten.

Anschließend platzieren wir unsere TV-Steuerung in die Sitemap:

Text item=AW_TVC42_POWER label="Fernseher (tvc42)" {
   Switch item=AW_TVC42_POWER mappings=[OFF="Ausschalten"]
   Switch item=AW_TVC42_CHANNEL mappings=[ON="Hoch", OFF="Runter"]
   Switch item=AW_TVC42_VOLUME mappings=[ON="Lauter", OFF="Leiser"]
   Switch item=AW_TVC42_TON mappings=[ON="Ton an", OFF="Ton aus"]
   Switch item=AW_TVC42_PAUSE mappings=[OFF="Play", ON="Pause"]
}

 

Der erste Menüpunkt wird nun so dargestellt:

38

 

Und das Untermenü präsentiert alle Schaltelemente, um den Fernseher zu steuern:

 

39