Mitte des Jahres habe ich in einem Artikel gezeigt, wie man 433MHz Funksteckdosen mit einem Arduino steuern kann. Heute werde ich nicht wieder auf alle Details eingehen, diese könnt ihr im verlinkten Artikel nachlesen, da sich am Auslesen und Senden der Codes nichts geändert hat.

Wie auch beim Arduino nutze ich für das ESP8266 die Library https://github.com/sui77/rc-switch, welche die Kommunikation vom ESP8266 zum Sender und Empfänger übernimmt.

5 Volt

Der Sender und Empfänger benötigt 5 Volt um richtig arbeiten zu können (meiner auf jeden Fall). Das Problem ist, der ESP8266 stellt nur 3,3V zur Verfügung.

Der Port Vin sollte die 5Volt, vom USP Port bereitstellen. Bei einem meiner NodeMcu's hatte dies nicht geklappt, dort liegen am Vin Port immer 0V an.

Mit einem anderen Modell bekomme ich am Vin Port 5V...

Auslesen der Codes

Als erstes müsst ihr natürlich den Empfänger anschließen. 433MHz Empfänger am ESP8266 NodeMcp

Als nächstes flashed ihr das Beispiel ReceiveDemo_Advanced.ino auf euren ESP und started den seriellen Monitor.

Wenn ihr nun eine Taste auf der Fernbedienung der Funksteckdosen drückt, werden die empfangenen Daten ausgegeben. Kopiert euch die Ausgabe von allen Tasten in eine Textdatei, diese benötigt ihr später noch.

Tri-State ESP8266

Senden der Codes

Nachdem ihr alle Codes gesammelt habt, könnt ihr den Empfänger wieder abbauen.

Zum Senden muss als erstes der Sender angeschlossen werden. 433MHz Sender am ESP8266 NodeMcp

Hier ein kleiner Beispiel Code, zum Senden:

#include <RCSwitch.h>
RCSwitch sender = RCSwitch();

void setup() {
  sender.enableTransmit(0); //Pin D3
  sender.setProtocol(1);
  sender.setPulseLength(187);

  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  sender.sendTriState("FFF0FFFF1001");

  delay(2500);

  digitalWrite(LED_BUILTIN, LOW);
  sender.sendTriState("FFF0FFFF1010");

  delay(2500);
}

Implementierung in die Universalfernbedienung

Um es mir schön bequem zu machen, wollte ich diese Funktionen natürlich in meine ESP6266 gesteuerte Universalfernbedienung einbauen.

Hierfür habe ich die Oberfläche um den Reiter "Licht" erweitert. Universalfernbedienung mit Funksteckdosen Arduino und ESP8266

Zusätzlich habe ich im EPG Programm noch "Im Anschluss" hinzugefügt.

Jetzt kann ich das komplette Wohnzimmer vom Handy aus steuern.