Kürzlich stellte ich in einem Artikel die Möglichkeit vor, einen LG-Smart-TV mit einer Linux-Kommandozeile zu steuern. Bisher war es notwendig, das lgcommander-Script auch für die Einbindung in openHAB zu nutzen, mittlerweile gibt es für diesen Zweck jedoch ein eigenständiges Binding.
Wir installieren das benötigte OpenHAB-Addon einfach mittels apt-Paketverwaltung:
Shell
1
apt-getinstall openhab-addon-binding-lgtv
Für die Prüfung, ob der Fernseher eingeschaltet ist oder nicht, nutze ich nicht das lg-Binding sondern das eigene Script „/scripts/ping.sh„. Die prüft mittels ping, ob die Netzwerkadresse des Fernsehers erreichbar ist. Das Script wird in diesem Beitrag genauer beschrieben.
openHAB-Konfiguration
DIe grundlegende Konfiguration findet in der Datei „/etc/openhab/configuration/openhab.cfg“ statt. Dort geben wir die IP-Adresse, den Port 8080, den Pairingkey sowie den Serverport von openHAB an. Der Pairingkey wurde uns bereits in den letzten Anleitungen auf dem Fernseher angezeigt und ändert sich hierfür nicht. Wenn noch kein Pairing-Vorgang stattgefunden hat, wird der Key automatisch bei der ersten Anfrage von openHAB am Fernseher angezeigt.
Die Funktion „POWER“ des lg-Bindings bietet uns lediglich die Möglichkeit, die Power-Taste der Fernbedienung zu drücken, kann jedoch leider nicht erkennen, ob der Fernseher läuft oder nicht. Daher habe ich die vom Entwickler vorgestellte Demo-Konfiguration durch einen Ping-Check erweitert. Leider fahren LG-Fernseher beim Ausschalten auch die Netzwerkschnittstelle herunter, so dass wir diese nicht per lg-Binding einschalten können. Dies wäre höchstens über einen Befehl via Infrarot machbar, wie in diesem Beitrag beschrieben. Die Itemdefinition des Kanals habe ich durch die Anzeige der Kanalnummer ergänzt, ebenso wurde die Anzeige der Lautstärke durch den entsprechenden Wert ergänzt. Das item „TVC65_GetChan“ enthält die Anzahl der auf dem Fernseher verfügbaren Sender, das Item „TVC65_KANAL“ den Namen des aktuell betrachteten Senders.
Sitemap-Konfiguration
In der Sitemap habe ich die Einbindung des Fernsehers so gestaltet, dass auf einer Übersichtsseite zunächst der Fernseher als einzelne Zeile mit dem aktuellen Betriebsstatus angezeigt wird.
Bei einem Klick auf diese Zeile öffnet sich die Unterseite mit den detaillierten Steuerungselementen des Fernsehers.
Shell
1
2
3
4
5
6
7
8
9
10
Text item=TVC65_POWER label="Fernseher (tvc65) [MAP(lgtv.map):%s]"{
Text item=TVC65_POWER label="Fernseher (tvc65) [MAP(lgtv.map):%s]"
Die Angabe der Werte „eingeschaltet“ oder „ausgeschaltet“ wird durch die transform-Map realisiert, wie es im nächsten Punkt beschrieben wird. Das item „TVC65_POWER“ stammt wie bereits beschrieben aus dem Ping-Script, der Button „TVC65_POWEROFF“ schaltet den Fernseher aus, jedoch nicht wieder ein. Das Icon „socket“ ist bereits im Lieferumfang von openHAB enthalten, und erscheint bei einem eingeschalteten Switch farbig (Status: ON) und bei einem deaktivierten Switch grau (Status: OFF). Den Maximalwert beim Setpoin-Item Channel habe ich auf 48 gesetzt, da dies die Anzahl der verfügbaren Kanäle auf meinem Fernseher darstellt. Die Lautstärke habe ich auf Stufe 20 begrenzt. Bei der Lautstärke habe ich testweise beide Varianten der Steuerung eingebunden, als Setpoint-Item und als Slider-Item. Die Wahl des Steuerungstyps ist hier reine Geschmackssache.
Transform-Konfiguration
Unser Ping-Script liefert uns als Betriebszustände für das Item TVC65_POWER lediglich die Werte „ON“ oder „OFF„, je nachdem, ob unser Fernseher per PING erreichbar ist oder nicht. Um diese Werte auf der Sitemap in eine uns verständliche Form zu bringen, erstellen wir beispielsweise die Datei „lgtv.map“ im Ordner „transform“ und „übersetzen“ die Stati in die in der Sitemap auszugebenen Werte:
Shell
1
2
3
4
undefined=unbekannt
-=unbekannt
ON=eingeschaltet
OFF=ausgeschaltet
Beispielregel
Gelegentlich kam es bei unserem Fernseher vor, dass sich dieser wie aus Geisterhand selbstständig einschaltete. Wahrscheinlich war dieser nur auf der Suche nach Aktualisierungen beim Hersteller, doch auch nur mittellaute Filmexplosionen oder menschliche Stimmen aus dem Wohnzimmer mitten in der Nacht lassen einen senkrecht im Bett stehen.
Um zumindest zu verhindern, dass der Fernseher stundenlang läuft, wenn niemand zuhause ist, machen wir uns unsere bereits vorgestellte Präsenzerkennung zu nutze und lassen openHAB den Fernseher bei Abwesenheit aller Bewohner wieder ausschalten:
Hierbei bitte nicht von dem zu sendenden „ON“ Befehl an das Item „TVC65_POWEROFF“ verwirren lassen. Das Item kennt gemäß unserer Item-Definition lediglich den Befehl „ON“ und betätigt damit die Power-Taste am Fernseher.
openHAB :: Einbinden von LG-Fernsehern [Update]
Verfügbare Artikel zu openHAB
Inhaltsverzeichnis
Binding(s) installieren
Wir installieren das benötigte OpenHAB-Addon einfach mittels apt-Paketverwaltung:
Für die Prüfung, ob der Fernseher eingeschaltet ist oder nicht, nutze ich nicht das lg-Binding sondern das eigene Script „/scripts/ping.sh„. Die prüft mittels ping, ob die Netzwerkadresse des Fernsehers erreichbar ist. Das Script wird in diesem Beitrag genauer beschrieben.
openHAB-Konfiguration
DIe grundlegende Konfiguration findet in der Datei „/etc/openhab/configuration/openhab.cfg“ statt. Dort geben wir die IP-Adresse, den Port 8080, den Pairingkey sowie den Serverport von openHAB an. Der Pairingkey wurde uns bereits in den letzten Anleitungen auf dem Fernseher angezeigt und ändert sich hierfür nicht. Wenn noch kein Pairing-Vorgang stattgefunden hat, wird der Key automatisch bei der ersten Anfrage von openHAB am Fernseher angezeigt.
Item-Konfiguration
Die von mir umgesetzte Konfiguration der items wurde in einer seperaten lgtv.items Datei definiert und beinhaltet folgende Zeilen:
Die Funktion „POWER“ des lg-Bindings bietet uns lediglich die Möglichkeit, die Power-Taste der Fernbedienung zu drücken, kann jedoch leider nicht erkennen, ob der Fernseher läuft oder nicht. Daher habe ich die vom Entwickler vorgestellte Demo-Konfiguration durch einen Ping-Check erweitert. Leider fahren LG-Fernseher beim Ausschalten auch die Netzwerkschnittstelle herunter, so dass wir diese nicht per lg-Binding einschalten können. Dies wäre höchstens über einen Befehl via Infrarot machbar, wie in diesem Beitrag beschrieben. Die Itemdefinition des Kanals habe ich durch die Anzeige der Kanalnummer ergänzt, ebenso wurde die Anzeige der Lautstärke durch den entsprechenden Wert ergänzt. Das item „TVC65_GetChan“ enthält die Anzahl der auf dem Fernseher verfügbaren Sender, das Item „TVC65_KANAL“ den Namen des aktuell betrachteten Senders.
Sitemap-Konfiguration
In der Sitemap habe ich die Einbindung des Fernsehers so gestaltet, dass auf einer Übersichtsseite zunächst der Fernseher als einzelne Zeile mit dem aktuellen Betriebsstatus angezeigt wird.
Bei einem Klick auf diese Zeile öffnet sich die Unterseite mit den detaillierten Steuerungselementen des Fernsehers.
Die Angabe der Werte „eingeschaltet“ oder „ausgeschaltet“ wird durch die transform-Map realisiert, wie es im nächsten Punkt beschrieben wird. Das item „TVC65_POWER“ stammt wie bereits beschrieben aus dem Ping-Script, der Button „TVC65_POWEROFF“ schaltet den Fernseher aus, jedoch nicht wieder ein. Das Icon „socket“ ist bereits im Lieferumfang von openHAB enthalten, und erscheint bei einem eingeschalteten Switch farbig (Status: ON) und bei einem deaktivierten Switch grau (Status: OFF). Den Maximalwert beim Setpoin-Item Channel habe ich auf 48 gesetzt, da dies die Anzahl der verfügbaren Kanäle auf meinem Fernseher darstellt. Die Lautstärke habe ich auf Stufe 20 begrenzt. Bei der Lautstärke habe ich testweise beide Varianten der Steuerung eingebunden, als Setpoint-Item und als Slider-Item. Die Wahl des Steuerungstyps ist hier reine Geschmackssache.
Transform-Konfiguration
Unser Ping-Script liefert uns als Betriebszustände für das Item TVC65_POWER lediglich die Werte „ON“ oder „OFF„, je nachdem, ob unser Fernseher per PING erreichbar ist oder nicht. Um diese Werte auf der Sitemap in eine uns verständliche Form zu bringen, erstellen wir beispielsweise die Datei „lgtv.map“ im Ordner „transform“ und „übersetzen“ die Stati in die in der Sitemap auszugebenen Werte:
Beispielregel
Gelegentlich kam es bei unserem Fernseher vor, dass sich dieser wie aus Geisterhand selbstständig einschaltete. Wahrscheinlich war dieser nur auf der Suche nach Aktualisierungen beim Hersteller, doch auch nur mittellaute Filmexplosionen oder menschliche Stimmen aus dem Wohnzimmer mitten in der Nacht lassen einen senkrecht im Bett stehen.
Um zumindest zu verhindern, dass der Fernseher stundenlang läuft, wenn niemand zuhause ist, machen wir uns unsere bereits vorgestellte Präsenzerkennung zu nutze und lassen openHAB den Fernseher bei Abwesenheit aller Bewohner wieder ausschalten:
Hierbei bitte nicht von dem zu sendenden „ON“ Befehl an das Item „TVC65_POWEROFF“ verwirren lassen. Das Item kennt gemäß unserer Item-Definition lediglich den Befehl „ON“ und betätigt damit die Power-Taste am Fernseher.
Verwandte Beiträge
Kürzlich stellte ich in einem Artikel die Möglichkeit vor, einen LG-Smart-TV mit einer Linux-Kommandozeile zu steuern. Zur…
Wie wir aus diesem Artikel wissen, können wir die recht günstigen Funksteckdosensets der Firma Brennenstuhl mit einem…
In diesem Beitrag wurde der 1wire-Sensor DS18B20 vorgestellt und erläutert, wie man diesen an einem…
In diesem Beitrag habe ich gezeigt, wie wir einen Bewegungssensor Typ PIR am Raspberry anschließen…
Alle Schalter, Kontakte oder Schwimmer aus diesem Artikel können in das Hausautomatisierungssystem openHAB eingebunden werden. Nachdem openHAB…