Funksteckdose lässt sich nicht ansteuern

Guten Tag liebe Arduino Community!

Ich habe seit einigen Tagen ein großes Problem mit meinen Funksteckdosen:

Es handelt sich um Funksteckdosen ohne DIP-Schalter. Diese müssen angelernt werden.

Ich verwende einen Arduino Uno mit folgenden Funkmodulen:

Zuerst habe ich eine Funksteckdose mit der Taste A angelernt. Danach versuchte ich den Code beim Drücken von A-ON auf der Fernbedienung zu sniffen.

Für die Funkmodule benutze ich die RC-Switch Bibliothek.
Zum Auslesen verwende ich das Beispiel-Script "ReceiveDemo Advanced".

Es kommt immer ein Code heraus, insgesamt sind es 4 verschiedene Codes, die immer die Reihenfolge beibehalten.

Hier habe ich 5x A-ON auf der Fernbedienung gedrückt:

Decimal: 13848500 (24Bit) Binary: 110100110100111110110100 Tri-State: not applicable PulseLength: 101 microseconds Protocol: 3
Raw data: 7248,940,592,940,592,428,1100,944,596,424,1112,420,1112,932,600,932,596,428,1116,928,588,432,1116,24,112,784,104,168,104,24,232,20,88,3448,76,180,116,20,100,940,588,436,1108,932,588,436,1100,432,1112,

Decimal: 14143092 (24Bit) Binary: 110101111100111001110100 Tri-State: not applicable PulseLength: 101 microseconds Protocol: 3
Raw data: 7244,940,596,936,596,428,1100,940,596,428,1104,940,600,932,592,940,608,924,596,936,600,424,1112,120,88,104,76,36,100,156,148,512,84,52,68,300,120,476,16,24,136,820,104,3832,40,1636,20,16,108,

Decimal: 13678404 (24Bit) Binary: 110100001011011101000100 Tri-State: not applicable PulseLength: 101 microseconds Protocol: 3
Raw data: 7252,932,588,948,584,436,1096,948,588,432,1100,436,1088,444,1100,432,1096,944,588,436,1096,24,104,172,56,264,152,16,80,792,440,256,196,184,100,24,112,280,228,88,80,192,236,16,136,96,208,204,44,

Decimal: 14245940 (24Bit) Binary: 110110010110000000110100 Tri-State: not applicable PulseLength: 101 microseconds Protocol: 3
Raw data: 7252,936,584,948,588,436,1092,948,584,948,588,436,1100,432,1092,952,588,436,1096,944,580,108,168,40,92,44,308,1424,64,400,96,952,108,20,100,760,100,1468,48,496,92,536,92,876,16,48,20,208,108,

Decimal: 13848500 (24Bit) Binary: 110100110100111110110100 Tri-State: not applicable PulseLength: 102 microseconds Protocol: 3
Raw data: 7244,940,596,940,588,432,1112,932,588,432,1108,424,1100,944,596,936,600,424,1096,948,588,432,1104,428,88,940,592,940,600,932,596,940,592,940,604,420,1104,936,596,940,592,428,1108,936,600,424,1104,428,1108,

Nun habe ich versucht über das Beispiel-Script "SendDemo" diese Codes zu senden.
Egal wie ich es probiere, es funktioniert einfach nicht.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

  Serial.begin(9600);
  
  // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(10);
  
  // Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(3);

  // Optional set pulse length.
  mySwitch.setPulseLength(101);
  
  // Optional set number of transmission repetitions.
  mySwitch.setRepeatTransmit(15);
  
}

void loop() {
  mySwitch.send(13848500, 24);
  delay(1000);  
  mySwitch.send(13848500, 24);
  delay(1000);  
  
  /* Same switch as above, but using binary code */
  mySwitch.send("110100110100111110110100");
  delay(1000);  
  mySwitch.send("110100110100111110110100");
  delay(1000);

}

Das komische daran ist, dass sich plötzlich die Steckdose einschaltete, aber erst nach einigen Minuten mit aktiviertem Sende-Script. Nach dem Ausschalten über die Fernbedienung funktionierte es für einige Minuten wieder nicht, und dann wieder schon. Meistens funktioniert es aber nicht.

Ich habe überprüft, ob es an lockeren Kabeln oder an der Reichweite lag. Keine Veränderung.

Kann mir jemand hierbei helfen? Ich habe schon das halbe Internet durchsucht, komme aber nicht zur Lösung.

Du schreibst das Problem besteht seit einigen Tagen.
Hat das denn schon mal funktioniert ?

Und ich erinnere mich an ein ähnliches Problem, hier vor einigen Tagen.
Da musste das Protokoll auf 4 gesetzt werden.

Teste es mal mit der 4 oder probiere andere Protokolle.
Hier der besagte Thread.

Edit:
Was auch sehr wichtig ist, die Steckdosen müssen im angeschlossenen Zustand mindestens 1 Meter Abstand zueinander haben.

Mhh, ich hab jetzt alle Protokolle von 0-10 ausprobiert. Nichts funktioniert.

KeMerz:
Mhh, ich hab jetzt alle Protokolle von 0-10 ausprobiert. Nichts funktioniert.

Hast du alle Punkte meines Post #1 beachtet ?
Auch mit der Pulslänge solltest du probieren.

Und du solltest dir die Daten notieren, bei der die Steckdose einschaltet.

Wenn alles nicht geht, besorge dir welche, die sicher funktionieren.
Z.B. die oft zitierten Brennenstuhl RCS1000N

OMG! ES FUNKTIONIERT!!!

/*
  Example for different sending methods
  
  https://github.com/sui77/rc-switch/
  
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

  Serial.begin(9600);
  
  // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(10);
  
  // Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(4);

  // Optional set pulse length.
  //mySwitch.setPulseLength(102);
  
  // Optional set number of transmission repetitions.
  //mySwitch.setRepeatTransmit(15);
  
}

void loop() {

  /* Same switch as above, but using decimal code */
  mySwitch.send(13678404, 24);
  delay(1000);  
  mySwitch.send(14245940, 24);
  delay(1000);  
  mySwitch.send(13848500, 24);
  delay(1000);  
  mySwitch.send(14143092, 24);
  delay(1000); 
}

Wie gesagt: Protokoll 4 UND nichts mit setPulseLength :slight_smile:

VIELEN DANK!

1 Like

KeMerz:
OMG! ES FUNKTIONIERT!!!

Wie gesagt: Protokoll 4 UND nichts mit setPulseLength :slight_smile:

VIELEN DANK!

Ah....super und danke für die Rückmeldung