433Mhz Sender funktioniert nicht mit Esp8266

Abend zusammen,

Ich wollte über meinen Esp8266 mithilfe eines 433Mhz Senders meine Funktsteckdosen "Flamingo Switch Set SF-501" steuern, doch leider funktioniert der Code auschließlich auf meinem Arduino Uno ohne Probleme, aber nicht auf dem Esp.

Da die rc-switch library mit diesen Steckdosen nicht geht, nutze ich die "NewRemoteSwitch"

Ist es möglich den Code für den Esp umzuschreiben bzw. zu modifizieren oder ist der Esp einfach nicht kompatibel mit dieser Library?

Code:

/**
 * Demo for RF remote switch receiver.
 * For details, see NewRemoteReceiver.h!
 *
 * Connect the transmitter to digital pin 11.
 *
 * This sketch demonstrates the use of the NewRemoteTransmitter class.
 *
 * When run, this sketch switches some pre-defined devices on and off in a loop.
 *
 * NOTE: the actual receivers have the address and group numbers in this example
 * are only for demonstration! If you want to duplicate an existing remote, please
 * try the "retransmitter"-example instead.
 * 
 * To use this actual example, you'd need to "learn" the used code in the receivers
 * This sketch is unsuited for that.
 * 
 */

#include <NewRemoteTransmitter.h>

// Create a transmitter on address 123, using digital pin 11 to transmit, 
// with a period duration of 260ms (default), repeating the transmitted
// code 2^3=8 times.
NewRemoteTransmitter transmitter(5917696, 4, 267, 3);

void setup() {
}

void loop() {  
  // Switch unit 1 on
  delay(3000);
  transmitter.sendUnit(1, true);

  // Wait 5 seconds
  delay(5000);
  

  // Switch unit 2 off
  transmitter.sendUnit(1, false);

  // Wait 5 seconds
  delay(5000);

  transmitter.sendUnit(2, true);

  delay(5000);

  transmitter.sendUnit(2, false);
}

Ich habe im Code nur den PIN von 11 auf 4 verändert, da der Esp ja nur bis D8 geht. Außerdem die Periode von 260 auf 267. Liegt vielleicht auch hier der Fehler?

Ich hoffe man konnte mir folgen und danke für eure Hilfe :slight_smile:

Hi

Die Kommentare passen so wohl nicht mit der angedachten Funktion zusammen.
Zumindest liest sich der Sketch so, daß zuerst 'Unit 1' an und danach aus geschaltet wird und darauf 'Unit 2' an und abgeschaltet wird.
Die Kommentare sagen aber, daß nach dem Einschalten von 'Unit 1' die 'Unit 2' eingeschaltet würde.
Wenn Dem so ist, bin ich eh raus :wink:

Weiter gehe ich davon aus, daß Du in der Zeile
NewRemoteTransmitter transmitter(5917696, 4, 267, 3);
die 4 meinst, DIe Du geändert hast.
Dort passt der Kommentar auch nicht wirklich zu den gegebenen Zahlen, zumindest würde ich dort statt der 267 eine 260 erwarten ... irgendwie.

MfG

Danke für den Hinweis, habe vergessen das zu ändern. Ich habe zuvor mithilfe des Empfängers die Werte der Fernbedienung ausgelesen:

Adresse: 5917696
Periode: 267

Und wie bereits erwähnt lief der Code Problemlos auf meinem Arduino Uno...

Kompiliert er nicht oder tut er (nur) nicht? Auf dem ESP8266 haben einige Variablentypen evtl. eine andere Länge und bei Structs eine andere interne Ausrichtung.
Ich habe mir die Interna Deiner Lib nicht angeschaut, frag doch mal den Autor, was bei Verwendung auf ESP8266 zu beachten ist.

Gruß Tommy

Er kompiliert ohne Problem, doch es passiert nichts... Der Autor ist schon eine lange Zeit nicht mehr aktiv und Antwortet nicht auf Fragen.

Ich hab den Fehler gefunden:

Es wird angegeben den Pin D11 beim Arduino zu nehmen, was auch funktioniert hat. Doch beim Esp8266 ist der GPIO Pin gemeint, was ich nicht wusste. Jetzt funktioniert`s... Danke trotzdem für eure Hilfe.

Es wäre schön, für Hilfesuchende nach Dir, wenn Du den kompletten Sketch incl. Links zu den Libs nochmal als Lösung einstellen würdest.

Gruß Tommy