[RCSwitch] Brennenstuhl CE1 1011 IP20 DE3726

Hi,

ich wollte nochmal das Thema hier aufgreifen. Seit gestern versuche ich ebenso die Brennenstuhl Brennenstuhl CE1 1011 IP20 DE3726 mit einem WEMOS zu steuern.

Bisher habe ich lediglich das OFF Signal hinbekommen mit:

void setup() {

  Serial.begin(115200);

mySwitch.enableTransmit(15); //D8

mySwitch.setProtocol(13);

mySwitch.setPulseLength(360);

mySwitch.setRepeatTransmit(1);

}


void loop() {

Serial.println("A ON");

mySwitch.send(149854355, 24);

mySwitch.send(149854355, 24);

delay(5000);

}

und in der RCSWitch das aus dem vorhergehenden Post eingetragen:
{ 360, { 1, 6 }, { 1, 3 }, { 3, 1 }, false }

Ich hab auch das Aussignal aufgezeichnet, aber damit hab ich gar kein Glück. Auch hab ich mir die RAW Daten aufgezeichnet und versucht sie wieder zu senden. War auch nicht erfolgreiche.

Kann mir da bitte jemand weiterhelfen? Danke, Gruß

Versuch es mal hiermit, da brauchst du keine RCSwitch mehr. Funktioniert bei mir mit den Brennenstuhl 4001.
Du musst nur noch deinen Sendepin eintragen.
Besorg dir einen günstigen Logikanalyser und häng da dein Empfänger dran, damit siehst du was gesendet wird und vor allem verstehst du dann auch das Signal besser.

#define sendpin 2 // RC 433Mhz Daten-Pin
uint32_t A1on  = 149854355;
//uint32_t A1off  = 149854355; //hier das off Signal eintragen.


void setup() {
  //Serial.begin(115200);
}
void loop() {
  uint32_t DSchalt[] = {A1on};
  //uint32_t DSchalt[] = {A1off};
  Std_Schalt(DSchalt, 1); // Steckdosen ein senden
  delay(5000);
}

// RC-Signal senden Brennenstuhl Funksteckdosen 4001
void Std_Schalt(uint32_t DSchalt[], uint8_t size) {
  uint8_t Data1, Data2, Data3;
  for (uint8_t i = 0; i < size; i++) {
    Data3 = (DSchalt[i]) & 0xff;
    Data2 = ((DSchalt[i]) >> 8) & 0xff;
    Data1 = ((DSchalt[i]) >> 16) & 0xff;

    for (uint8_t k = 0; k < 8; k++) { //8 x senden
      starter();
      sendserial(Data1, 7);
      sendserial(Data2, 7);
      sendserial(Data3, 7);
    }
    digitalWrite(sendpin, LOW); //alles ausknipsen
  }
}

//bitweise Senden von 0 + 1 und Startimpuls
void sendserial(uint8_t data, byte bytecount) {
  for (int j = bytecount; j >= 0; j--) {
    ((data & (1 << j)) ? one() : zero() );
  }
}

void starter () { //starter senden
  digitalWrite(sendpin, HIGH);
  delayMicroseconds(300);
  digitalWrite(sendpin, LOW);
  delayMicroseconds(2300);
}

void one () {//1
  digitalWrite(sendpin, HIGH);
  delayMicroseconds(1050);
  digitalWrite(sendpin, LOW);
  delayMicroseconds(450);
}

void zero () { //0
  digitalWrite(sendpin, HIGH);
  delayMicroseconds(300);
  digitalWrite(sendpin, LOW);
  delayMicroseconds(1200);
}

Ich hab vor einiger Zeit die Brennenstuhl Comfort-Line Mini ausgewertet. Ich könnte mir vorstellen, dass deine FB ziemlich ähnlich funktioniert oder vielleicht sogar dieselbe ist. Es gibt ein paar Besonderheiten, die zu beachten sind:

1. Der RC-Switch rastet verkehrt ein
Vielleicht rastet er ein, aber für das Senden nicht geeignet, siehe unten.

2. Die Empfänger erwarten pseudo-Rolling Codes
Jede Taste liefert 4 verschiedene Codes. Die Empfänger erwarten, dass der Code bei jedem Tastendruck wechselt. Man muss also jede Taste mehrfach drücken und dann eine Tabelle mit vier Einträgen anlegen. Sowie einen Zähler [0..3] anlegen um beim Senden dann "rolling Codes" zu erzeugen. Dazu wird der Zähler bei jeden Tastendruck erhöht und dann der Code aus der entsprechenden Tasten-Tabelle geholt.

3. FB sendet zwei verschiedene Code-Telegramme nacheinander
Die FB wurde wohl für verschiedene Steckdosen konstruiert. Jedenfalls werden für jeden Tastendruck nacheinander zwei verschiedene Telegramme (jeweils 4-5 mal wiederholt) gesendet.

Du musst also die empfangenen Frames genauer anschauen, um raus zu bekommen welche der beiden Telegramme deine Steckdosen verwenden. Die Comfort-line Mini hat die Start-Kennung "350,2300" und das "andere" Steckdosen-Format beginnt mit "480,7225" siehe folgende Aufzeichnung (zeigt nur den Anfang der Frames) für die Taste A-EIN

A-1-on
423,1123,425,348,1182,358,1191,
351,2325,1128,414,358,1184,1127,417,1127,423,352,1180,1128,420,352, ...   
355,2327,1126,420,351,1190,1119,427,1119,414,358,1185,1125,417,355, ...
352,2333,1120,426,350,1179,1129,417,1126,419,357,1182,1130,414,356, ...
354,2318,1132,413,361,1179,1129,415,1129,417,354,1184,1130,417,354, ...
346,2329,1125,411,361,1185,1127,415,1127,418,359,1175,1137,414,354, ...

483,7225,499,1557,494,1557,500,1562,494,1562,1525,539,1522,538,493, ...
498,7219,496,1559,500,1554,504,1555,496,1557,1536,525,1534,532,500, ...
495,7224,497,1549,505,1551,511,1547,501,1552,1540,522,1535,531,503, ...
498,7215,503,1545,516,1548,501,1559,497,1551,1538,526,1535,526,509, ...