Es gibt inzwischen unzählige Angebote an smarten und schaltbaren Steckdosen. Von der Fritz Steckdose, über Osram bis hin zur speziellen Homekit Lösung. Alle haben eine Sache gemeinsam. Sie benötigen meist eine eigene Basis und sind sehr teuer. In vielen Kellern schlummert noch die ein oder andere „normale“ Funksteckdose, die sich über eine eigene Fernbedienung an- und ausschalten lässt. Die Schaltbefehle werden über ein 433MHz Funkband übertragen. Wie es der Zufall will, gibt es für den NodeMCU (ESP8266) ein Sende- und Empfangsmodul. Damit lässt sich ein Sender bauen, der über MQTT ansteuerbar ist.

Hardware für Steuerung der Funksteckdose

Um die Steuerung für die Funksteckdose bauen zu können, werden folgende Teile benötigt. Es sollten alle Funksteckdosen mit 433MHz funktionieren.

Codes auslesen

Im ersten Schritt müssen die Sendecodes der Fernbedienung ausgelesen werden, um herauszufinden welcher Befehl gesendet werden muss, um eine Steckdose zu schalten. Hierfür musst du den NodeMCU mit dem Empfängermodul verbinden und das entsprechende Skript hochladen.

Schema NodeMCU mit 433MHz Empfänger

Schema NodeMCU mit 433MHz Empfänger

Der Empfänger benötigt im Normalfall 5Volt, daher solltest du VCC mit Vin am NodeMCU verbinden. In meinem Fall hat es auch mit 3,3V funktioniert, so dass du am besten einfach ausprobierst welche Variante bei dir funktioniert.

Nun kannst du schon den Sketch hochladen, um die Schaltcodes der Steckdose auslesen zu können. Hierzu habe ich den Sketch von Sui77 genutzt. Diesen findest du auf Github herunterladen. Achte darauf, dass du beide Dateien herunterlädst und in 2 Tabs öffnest. Solltest du noch nie mit einem NodeMCU gearbeitet haben und ihn erst an deinem Computer einrichten müssen, schau einfach bei OpenDataLab vorbei.

Sobald du den Sketch hochgeladen hast, kannst du den Seriellen Monitor öffnen. Stelle die Baut Rate auf 9600 ein. Nun kannst du mit der Fernbedienung der Funksteckdose die Steckdose direkt vor dem Empfänger einmal AN und AUS schalten. Du solltest jetzt auf deinem seriellen Monitor in etwa das sehen:

 

Auslesen der Funkcodes der Funksteckdose

Auslesen der Funkcodes der Funksteckdose

Der obere Block ist AN, der untere Block AUS. Hier findest du alle Informationen, die du benötigst, um deinen NodeMCU Sender zu befüllen.

  • Protocol: 1
  • Pulse Length: 344

Der Tri-State Wert ist dann der tatsächliche Schaltbefehl. Wie du siehst unterscheidet sich dieser zwischen AN und AUS. Notiere dir alle Werte oder kopiere dir am besten die gesamten Blöcke in einer Textdatei zwischen.

Sender bauen

Wenn du alle Codes ausgelesen hast, kannst du den Empfänger entfernen und den Sender anschließen. Im folgenden Schaubild siehst du wie der Sender angeschlossen wird. Achte darauf, dass hier der DATA an D1 angeschlossen ist. Auch hier gilt: Teste, ob du mit 3,3V zurecht kommst und stecke VCC entsprechend um.

NodeMCU Sender 433MHz

NodeMCU Sender 433MHz

 

Nun kannst du den Sketch für die Steuerung hochladen.

Folgende Daten musst du anpassen:

const char* ssid = „XXXXXXXXX“;
const char* password = „0123456789“;
const char* mqtt_server = „broker.hivemq.com“;

Trage hier dein eigenes WLAN ein, in das du den NodeMCU integrieren möchtest. Achte darauf, dass es sich um ein 2,4Ghz Netz handelt. Solltest du einen eigenen MQTT Server/Broker betreiben, kannst du diesen hier ebenfalls eintragen. Ansonsten kannst du den eingetragenen Broker zum Testen stehen lassen. Es handelt sich um einen öffentlichen MQTT Broker. Für den Live Betrieb empfehle ich einen eigenen Broker oder einen, der nicht für jeden zugänglich ist. Ansonsten besteht die Gefahr, dass Dritte deine Steckdosen fernsteuern.

Suche im Code nach dieser Stelle:

Wie du sehen kannst, lautet das Topic Buero/Funksteckdose1. Mit dem Befehl ON wird die Steckdose eingeschaltet und mit OFF ausgeschaltet. An genau dieser Stelle, nämlich bei sender.sendTriState(„XXXXXXXXXXX“) musst du nun noch die entsprechenden AN/AUS Codes der Fernbedienung vom Auslesen einfügen.

Übrigens: Für Android gibt es eine tolle MQTT Client App. Diese eignet sich super, um neue Projekte zu testen.

Unbekannte App
Unbekannte App
Entwickler: Routix software
Preis: Kostenlos

Sobald du die Änderungen vorgenommen hast, kannst du den Sketch auf das Gerät laden. Wenn du nun mit einem MQTT Client an das Topic Buero/Funksteckdose1 den Befehl ON sendest, sollte sich deine Steckdose einschalten. Bei OFF wieder aus. Nun hast du eine Funksteckdose, die sich per MQTT steuern lässt.

Funksteckdose über openHAB steuern

Um die Fernbedienung über openHAB zu steuern, musst du vorher das MQTT Binding installieren und einrichten. Hier kannst du nachlesen wie es funktioniert.

Du benötigst nur noch ein entsprechendes Item. Hier im Beispiel wäre das:

Das Item Funksteckdose_1 kann nun von dir in der Sitemap oder in beliebigen Regeln verwendet werden. Viel Spaß beim ausprobieren.