Bei mir zu Hause ist ein Logitech Harmony System im Einsatz, um die Geräte im Wohnzimmer zu steuern. Diese habe ich mit dem passenden Binding auch in openHAB integriert, was wunderbar funktioniert. Es lassen sich tolle Szenen erstellen, die einem das Leben leichter machen. Nun ist ein Harmony System nicht ganz günstig. Für das Wohnzimmer mit Fernseher, Anlage, Blueray, Amazon TV Stick und Apple TV lasse ich mir das gefallen. Im Schlafzimmer steht allerdings nur ein einsamer Fernseher. Ich möchte das Gerät über openHAB nur an- und ausschalten können. Also habe ich die passende Infrarot Fernbedienung einfach selbst gebaut.

Die Hardware der Fernbedienung

Als Basis für die Infrarot Fernbedienung dient ein ESP8266. Der Microcontroller verfügt über WLAN und kann daher sehr einfach in ein bestehendes Netzwerk eingebunden werden.

IR-Emitter 940 nm 17 ° 5 mm radial bedrahtet Vishay TSAL 6200

IR Signal der Original Fernbedienung auslesen

Damit wir später Signale senden können, die der Fernseher versteht, müssen wir zuerst einen IR Empfänger bauen, über den wir die Signale der Original Fernbedienung auslesen können. Hierzu benötigen wir lediglich den ESP8266 und den IR Empfänger TSOP.

Aufbau IR Empfänger Nodemcu

Aufbau IR Empfänger Nodemcu

Der Empfänger wird an Pin D5 (GPIO 14), GND, und 3,3V angeschlossen. Anschließend wird über die Arduino IDE folgender Code hochgeladen. Solltest du deine Arduino IDE noch nicht für den ESP8266 eingerichtet haben, empfehle ich folgende Anleitung von OpenDataLab.

Vielen Dank an markszabo, der den Empfänger auf Github bereitstellt. Nachdem der Code hochgeladen wurde, musst du den seriellen Monitor öffnen. Sobald du nun eine Fernbedienung auf den Empfänger richtest und eine gewünschte Taste drückst, erhältst du verscheidene Daten, die ausgelesen wurden.

Infrarotsignale von Fernbedienung auslesen

Infrarotsignale von Fernbedienung auslesen

Unter anderem bekommst du die Rohdaten, die in etwa so aussehen:

Diese Daten sind wichtig für den Sender. Am besten du speicherst sie in einem extra Dokument, damit du sie später in den Sender Code einfügen kannst.

Der Sender

Sobald du den gewünschten Code der Fernbedienung herausgelesen hast, kann der NodeMCU zum Sender umgebaut werden. Hierzu benötigen wir die IR Sender LED und den Transmitter BC547. Diese werden wie im folgenden Schema beschrieben miteinander verbunden. Ein etwas anschaulicheres Bild findest du hier

Aufbau Infrarot Fernbedienung Sender Nodemcu

Aufbau Infrarot Fernbedienung Sender Nodemcu

Sobald alles korrekt verbunden ist, kann der neue Code für den Sender hochgeladen werden.

Du musst noch einige Daten ändern, damit der Code bei dir funktioniert:

Füge den Code ein, den du mit dem Empfänger ausgelesen hast.

 

Füge deinen WLAN Zugang ein. Der MQTT Broker ist öffentlich und kostenlos. Solltest du einen eigenen Broker betreiben, kannst du auch diese Daten hier einfügen.

 

Passe die Zahlen entsprechend an. Die vordere Zahl entspricht der Zahl in der eckigen Klammer des rawData. Hier [75]. Die Zweite Zahl entpsricht den Bits. Diese findest du beim Auslesen der Fernbedienung hinter Code (siehe Bild oben)

Um den Befehl via MQTT senden zu können, musst im Topic Haus/Fernseher den Befehl power publishen. Natürlich kann Befehl und Topic auch nach Belieben umbenannt werden.

Fernbedienung über openHAB ansteuern

Jetzt kann die MQTT Fernbedienung über openHAB angesteuert werden. So kann der Fernseher zukünftig über Regeln oder Szenen an und ausgeschaltet werden. Wie genau du das MQTT Binding in openHAB installierst und konfigurierst, kannst du hier nachlesen.

Du musst jetzt nur noch ein entsprechendes Item anlegen. In meinem Fall:

Das Item Fernbedienung_Schlafzimmer_Power kann nun in der Sitemap oder Regeln verwendet werden. Viel Spaß beim nachbauen.