Brennenstuhl Steckdose mit 433mHz steuern

Hallo, habe eine kurze Frage zum Thema 433mHz. Habe Zuhause 3 Brennenstuhl Funksteckdosen.

https://www.brennenstuhl.com/de-DE/produkte/funksteckdosen/comfort-line-funkschalt-set-3x-ip20

Wenn ich die Signale mit meinem 433mHz Empfänger auslese kommen da immer komplett verschiedene Signale an.

Das hier war zum Beispiel nach 3 Tastendrücke auf die Taste D Ein:

Received 1041570 / 24bit Protocol: 3
Received 1041570 / 24bit Protocol: 3
Received 637730 / 24bit Protocol: 5
Received 637730 / 24bit Protocol: 3
Received 147218 / 24bit Protocol: 3
Received 147218 / 24bit Protocol: 3
Received 327826 / 24bit Protocol: 3
Received 327826 / 24bit Protocol: 3
Received 1041570 / 24bit Protocol: 3
Received 1041570 / 24bit Protocol: 3
Received 637730 / 24bit Protocol: 3
Received 637730 / 24bit Protocol: 3

Was soll ich da nun senden wenn ich die Dosen schalten möchte?

Hier nochmal das Auslesen der Signale mit der Advanced ReceiveDemo:

Decimal: 147218 (24Bit) Binary: 000000100011111100010010 Tri-State: not applicable PulseLength: 518 microseconds Protocol: 5
Raw data: 248,1280,240,1280,244,1264,260,1268,1268,240,1264,1028,620,124,1300,248,2400,252,1252,256,1288,252,244,1276,256,1264,256,1264,252,1276,228,1284,1020,904,632,360,1164,372,1144,904,620,404,1120,396,1128,408,1112,920,620,

Decimal: 327826 (24Bit) Binary: 000001010000000010010010 Tri-State: not applicable PulseLength: 102 microseconds Protocol: 3
Raw data: 7252,392,1140,384,1160,52,24,272,1156,392,1468,52,472,36,3068,48,480,276,824,260,920,120,732,104,1144,104,48,340,204,1732,364,196,88,604,220,580,164,52,604,160,136,644,132,240,236,200,156,1592,88,

Decimal: 637730 (24Bit) Binary: 000010011011101100100010 Tri-State: not applicable PulseLength: 518 microseconds Protocol: 5
Raw data: 7704,388,1140,380,1148,384,1152,376,1156,872,640,380,1148,380,1156,880,808,720,644,380,1152,884,628,896,636,892,640,380,1144,892,632,892,648,372,1152,376,1144,888,652,364,1152,396,1132,392,1136,888,640,384,1148,

(deleted)

Oder du probierst die verschiedenen Codes aus.

Da ich diese "neuartigen" Steckdosen nicht kenne, fällt mi auch nichts anderes ein.

Peter-CAD-HST: Moin tobias_krebs_0207,

nimm eine Suchmaschine Deiner Wahl und lass diese nach Brennenstuhl Protokoll dekodieren suchen.

Gruss Peter und gesund bleiben

Bin die ganze Zeit schon am Suchen, doch finde leider nichts Passendes.

HotSystems: Oder du probierst die verschiedenen Codes aus.

Da ich diese "neuartigen" Steckdosen nicht kenne, fällt mi auch nichts anderes ein.

Habe ich auch schon probiert. Funktioniert manchmal und manchmal nicht.

Da sich der gesendete Code offensichtlich wiedeholt, kannst du doch auf alle "nacheinander" auswerten und nur reagieren wenn mehrere erkannt wurden.

HotSystems: Da sich der gesendete Code offensichtlich wiedeholt, kannst du doch auf alle "nacheinander" auswerten und nur reagieren wenn mehrere erkannt wurden.

Naja ein bisschen wiederholt er sich und die Signale die am meisten kommen habe ich schon probiert zu senden. Leider ohne Erfolg.

Hier nochmal ein etwas längerer Code

Received 27828 / 24bit Protocol: 3
Received 27828 / 24bit Protocol: 3
Received 129140 / 24bit Protocol: 3
Received 129140 / 24bit Protocol: 3
Received 465220 / 24bit Protocol: 3
Received 465220 / 24bit Protocol: 5
Received 236852 / 24bit Protocol: 5
Received 236852 / 24bit Protocol: 3
Received 27828 / 24bit Protocol: 3
Received 27828 / 24bit Protocol: 3
Received 129140 / 24bit Protocol: 3
Received 129140 / 24bit Protocol: 3
Received 465220 / 24bit Protocol: 3
Received 465220 / 24bit Protocol: 5
Received 99616 / 24bit Protocol: 5
Received 2176 / 24bit Protocol: 5
Received 17540 / 24bit Protocol: 5
Received 4 / 24bit Protocol: 5
Received 73732 / 24bit Protocol: 5
Received 327748 / 24bit Protocol: 5
Received 4 / 24bit Protocol: 5
Received 65536 / 24bit Protocol: 5
Received 65536 / 24bit Protocol: 5
Received 17412 / 24bit Protocol: 5
Received 17536 / 24bit Protocol: 5
Received 4096 / 24bit Protocol: 5
Received 73812 / 24bit Protocol: 5
Received 2048 / 24bit Protocol: 5
Received 2048 / 24bit Protocol: 5
Received 1024 / 24bit Protocol: 5
Received 16 / 24bit Protocol: 5
Received 24704 / 24bit Protocol: 5
Received 2112 / 24bit Protocol: 5
Received 6144 / 24bit Protocol: 5
Received 65536 / 24bit Protocol: 5
Received 9216 / 24bit Protocol: 5
Received 8224 / 24bit Protocol: 5
Received 49152 / 24bit Protocol: 5
Received 196608 / 24bit Protocol: 5
Received 131072 / 24bit Protocol: 5
Received 32 / 24bit Protocol: 5
Received 8192 / 24bit Protocol: 5
Received 16 / 24bit Protocol: 5
Received 65536 / 24bit Protocol: 5
Received 196608 / 24bit Protocol: 5
Received 2064 / 24bit Protocol: 5
Received 105732 / 24bit Protocol: 5
Received 1156 / 24bit Protocol: 5
Received 32768 / 24bit Protocol: 5
Received 4128 / 24bit Protocol: 5
Received 327748 / 24bit Protocol: 5
Received 4356 / 24bit Protocol: 5
Received 65568 / 24bit Protocol: 5
Received 16384 / 24bit Protocol: 5
Received 98304 / 24bit Protocol: 5
Received 16416 / 24bit Protocol: 5
Received 262144 / 24bit Protocol: 5
Received 131332 / 24bit Protocol: 5
Received 4 / 24bit Protocol: 5
Received 25760 / 24bit Protocol: 5
Received 16400 / 24bit Protocol: 5
Received 458816 / 24bit Protocol: 5
Received 399424 / 24bit Protocol: 5
Received 232720 / 24bit Protocol: 5
Received 131360 / 24bit Protocol: 5
Received 8352 / 24bit Protocol: 5
Received 17412 / 24bit Protocol: 5
Received 32832 / 24bit Protocol: 5
Received 40976 / 24bit Protocol: 5
Received 393284 / 24bit Protocol: 5

Ich habe nicht geprüft ob das die gleiche Fernbedienung ist wenn ja klingt das vielversprechend. Mittendrin im Thread schreibt einer

Ich habe die Bennstuhl mit den 4 wechseldenen Codes am Arduino laufen. es reicht aus wenn Du abwechselnd ein zusammenhängedes "Pärchen" sendest. Also code1 ein, code1 aus, oder code2 ein, code2 aus. Nur wenn Du Codegruppen "mixt" funktioniert es nicht.

Brennenstuhl Funksteckdose

Die benutzen einen Snnffer der auf einer tieferliegenden Ebene Daten liefert.

viele Grüße Stefan

Ich habe von Silvercrest das IAN 303937. Die Fernbedienung sieht so aus wie die von Brennenstuhl (nur meine hat noch Master on/off).

Ich geh deshalb von gleichen Protokoll aus.

Ich hab jetzt einen 433MHz Empfänger an den Mikrofoneingang einer USB-Soundkarte angeschlossen und dann aufgezeichnet. 3 mal kurz die B-ON Taste gedrückt und einmal länger gehalten.

Ich häng das mal an. Einmal das .txt entfernen und Achtung Laut.

Kann man dann mit Audacity öffnen und reinzoomen. Vielleicht hilft das beim Decodieren.

silvercrest 303937.wav.txt (536 KB)

StefanL38: Ich habe nicht geprüft ob das die gleiche Fernbedienung ist wenn ja klingt das vielversprechend. Mittendrin im Thread schreibt einer Brennenstuhl Funksteckdose

Die benutzen einen Snnffer der auf einer tieferliegenden Ebene Daten liefert.

viele Grüße Stefan

Dankeschön. Das werde ich mir auf jeden Fall mal angucken in einer ruhigen Minute.

Rintin: Ich habe von Silvercrest das IAN 303937. Die Fernbedienung sieht so aus wie die von Brennenstuhl (nur meine hat noch Master on/off).

Ich geh deshalb von gleichen Protokoll aus.

Ich hab jetzt einen 433MHz Empfänger an den Mikrofoneingang einer USB-Soundkarte angeschlossen und dann aufgezeichnet. 3 mal kurz die B-ON Taste gedrückt und einmal länger gehalten.

Ich häng das mal an. Einmal das .txt entfernen und Achtung Laut.

Kann man dann mit Audacity öffnen und reinzoomen. Vielleicht hilft das beim Decodieren.

Vielen Dank dafür. Laut ist es wie sau. Das stimmt :) Aber da kann ich als Anfänger leider nicht mit anfangen muss ich sagen :confused: Aber trotzdem Danke

Hab da gestern noch etwas reingeschaut:

Es scheint ein 24-Bit Code zu sein * 4 Bit konstant (Vielleicht ID der Fernbedienung) * 16 Bit rolling Code (Bestehend aus ID, 2Bit Zähler und der gedrückten Taste ???) * 4 Bit für die Taste

Hab dann da noch eine Library gefunden: https://github.com/Mr-Codesaur/SilverCrest_433Mhz_Sockets-Arduino Der macht sich das etwas einfach mit dem rolling Code und der ID.

Ist vermutlich an der Steckdose anlernbar.

Rintin: Hab da gestern noch etwas reingeschaut:

Es scheint ein 24-Bit Code zu sein * 4 Bit konstant (Vielleicht ID der Fernbedienung) * 16 Bit rolling Code (Bestehend aus ID, 2Bit Zähler und der gedrückten Taste ???) * 4 Bit für die Taste

Hab dann da noch eine Library gefunden: https://github.com/Mr-Codesaur/SilverCrest_433Mhz_Sockets-Arduino Der macht sich das etwas einfach mit dem rolling Code und der ID.

Ist vermutlich an der Steckdose anlernbar.

Das hört sich doch vielversprechend an. Aber wie kann ich damit jetzt die Steckdosen schalten? :confused:

Bin echt noch Anfänger in dem Thema.

tobias_krebs_0207: Das hört sich doch vielversprechend an. Aber wie kann ich damit jetzt die Steckdosen schalten? :confused:

Bin echt noch Anfänger in dem Thema.

Du musst dir nur das Beispiel ansehen und deinen Sketch danach aufbauen.

HotSystems: Du musst dir nur das Beispiel ansehen und deinen Sketch danach aufbauen.

Das Beispiel das in der Libery dabei ist ?

tobias_krebs_0207: Das Beispiel das in der Libery dabei ist ?

Richtig....

Ich bekomme sie einfach nicht geschaltet :confused:

Habe mir die Libery runtergeladen und installiert. Mein Sender habe ich an Pin 5 angeschlossen. Die Demo die dabei ist habe ich auf meinen Arduino geladen. Doch es passiert nichts. So wie ich den Code verstehe soll er ja einzeln die Steckdosen von A - D anschalten und danach wieder ausschalten. Danach noch den Master an/aus schalten (Den ich ja eh nicht habe). Aber wie gesagt es tut sich nichts. Habe auch mal an einen anderen Arduino ein Receiver gehängt. Da empfange ich nicht mal Daten. Also scheint es mir so, dass die Demo die dabei ist garnichts raussendet?! Mach ich da irgendwas falsch?

Danach habe ich mir gedacht ich gucke mal in die SilverCrest_Sockets.h. Da steht (so wie ich das rauslesen kann), dass z.B zum anschalten der Steckdose A ein bestimmter Binär-Code geschickt werden soll. Also habe ich über die “normale” RC Switch Libery mal diesen Binär-Code geschickt. Doch es passiert wieder nichts. Diesmal sender er zwar einen Binär-Code aber scheinbar nicht den richtigen, der die Steckdose haben möchte.

Oben wurde ja mal geschrieben, dass die ersten 4 und die letzten 4 Bit konstant sind. Was man ja auch sieht wenn man die Fernbedienung ausliest. Also habe ich mal den den 16 Bit “Rollingcode” aus der SilverCrest_Sockets.h genommen und mit meinen konstanten 8 Bit ungeschrieben und dann versendet. Doch es passiert wie immer nichts.

Ich weis echt nicht mehr was ich machen soll :confused: . Scheint echt nicht so einfach zu sein. Jetzt wundert es mich nicht, dass das noch keiner mit diesen Steckdosen im Netz gemacht hat. Vielleicht hat ja jemand noch eine Idee. Oder mach ich grundsätzlich was falsch?!

Hier der Code der SilverCrest_Sockets.h:

#include <SilverCrest_Sockets.h>

int transmitterPin = 5;
SilverCrest_Sockets scRemote(transmitterPin);

void setup()
{

}

void loop()
{
 delay(2000);
 scRemote.SendCode_A_ON();
 delay(2000);
 scRemote.SendCode_B_ON();
 delay(2000);
 scRemote.SendCode_C_ON();
 delay(2000);
 scRemote.SendCode_D_ON();
 delay(2000);

 scRemote.SendCode_A_OFF();
 delay(2000);
 scRemote.SendCode_B_OFF();
 delay(2000);
 scRemote.SendCode_C_OFF();
 delay(2000);
 scRemote.SendCode_D_OFF();
 delay(2000);

 scRemote.SendCode_M_ON();
 delay(2000);
 scRemote.SendCode_M_OFF();
}

Hier der SilverCrest_Sockets.h

#ifndef SilverCrest_Sockets_h
#define SilverCrest_Sockets_h

#include <Arduino.h>



class SilverCrest_Sockets
{
 const static uint8_t CodeSize = 24;

 public:
 SilverCrest_Sockets(int _transmitterPin);

 void SendCode_A_ON();
 void SendCode_B_ON();
 void SendCode_C_ON();
 void SendCode_D_ON();
 void SendCode_M_ON();
 void SendCode_A_OFF();
 void SendCode_B_OFF();
 void SendCode_C_OFF();
 void SendCode_D_OFF();
 void SendCode_M_OFF();
 
 void SendCode_A_ON(uint8_t _repeatTimes);
 void SendCode_B_ON(uint8_t _repeatTimes);
 void SendCode_C_ON(uint8_t _repeatTimes);
 void SendCode_D_ON(uint8_t _repeatTimes);
 void SendCode_M_ON(uint8_t _repeatTimes);
 void SendCode_A_OFF(uint8_t _repeatTimes);
 void SendCode_B_OFF(uint8_t _repeatTimes);
 void SendCode_C_OFF(uint8_t _repeatTimes);
 void SendCode_D_OFF(uint8_t _repeatTimes);
 void SendCode_M_OFF(uint8_t _repeatTimes);
 
 private:
 uint8_t transmitterPin;

 void SendCode(bool const _code[CodeSize], uint8_t _repeatTimes);

 bool const CODE_A_ON  [CodeSize] = { 1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1 };
 bool const CODE_B_ON  [CodeSize] = { 1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,1,1 };
 bool const CODE_C_ON  [CodeSize] = { 1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1 };
 bool const CODE_D_ON  [CodeSize] = { 1,1,1,0,1,1,0,1,1,1,1,0,0,0,0,1,0,1,0,1,1,1,0,1 };
 bool const CODE_M_ON  [CodeSize] = { 1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,1 };
 bool const CODE_A_OFF [CodeSize] = { 1,1,1,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,1,1,1,1 };
 bool const CODE_B_OFF [CodeSize] = { 1,1,1,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,1 };
 bool const CODE_C_OFF [CodeSize] = { 1,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1 };
 bool const CODE_D_OFF [CodeSize] = { 1,1,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1 };
 bool const CODE_M_OFF [CodeSize] = { 1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1 };
};

#endif

Du solltest noch lernen Quote (Zitat) und Code auseinander zu halten.

Gruß Tommy

Tommy56:
Du solltest noch lernen Quote (Zitat) und Code auseinander zu halten.

Gruß Tommy

Wie binde ich einen Code ein ?
Bin noch ganz frisch im Forum.

MFG

</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *

Gruß Tommy

Danke wurde geändert :slight_smile:

Habe es hinbekommen.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

int A_LED = 7;
int B_LED = 8;

int Button_A_ON = 2;
int Button_A_OFF = 3;
int Button_B_ON = 4;
int Button_B_OFF = 5;

int Buzzer = 6;

unsigned long Code[2][2] = {
  {129136, 147216},
  {236852, 147220},
};


void setup() {
  mySwitch.enableTransmit(10);
  mySwitch.setProtocol(4);
  
  pinMode(A_LED,OUTPUT);
  pinMode(B_LED,OUTPUT);
  pinMode(Buzzer,OUTPUT);
  
  pinMode(Button_A_ON,INPUT_PULLUP);
  pinMode(Button_A_OFF,INPUT_PULLUP);
  pinMode(Button_B_ON,INPUT_PULLUP);
  pinMode(Button_B_OFF,INPUT_PULLUP);

  ALL_OFF();
}

void loop() {
  
  if(digitalRead(Button_A_ON) == LOW){
    A_ON();
  }

  if(digitalRead(Button_A_OFF) == LOW){
    A_OFF();
  }

  if(digitalRead(Button_B_ON) == LOW){
    B_ON();
  }

  if(digitalRead(Button_B_OFF) == LOW){
    B_OFF();
  }
  
}

void ALL_OFF() {
  Serial.println('All Off');
  mySwitch.send(Code[0][1], 24);
  mySwitch.send(Code[1][1], 24);
  mySwitch.send(Code[2][1], 24);
}

void ALL_ON() {
  Serial.println('All On');
  mySwitch.send(Code[0][0], 24);
  mySwitch.send(Code[1][0], 24);
  mySwitch.send(Code[2][0], 24);
}

void A_ON(){
  digitalWrite(A_LED,HIGH);
  mySwitch.send(Code[0][0], 24);
  digitalWrite(Buzzer,HIGH);
  delay(500);
  digitalWrite(Buzzer,LOW);
}
  
void A_OFF(){
  digitalWrite(A_LED,LOW);
  mySwitch.send(Code[0][1], 24);
  digitalWrite(Buzzer,HIGH);
  delay(500);
  digitalWrite(Buzzer,LOW);
}

void B_ON(){
  digitalWrite(B_LED,HIGH);
  mySwitch.send(Code[1][0], 24);
  digitalWrite(Buzzer,HIGH);
  delay(500);
  digitalWrite(Buzzer,LOW);
}

void B_OFF(){
  digitalWrite(B_LED,LOW);
  mySwitch.send(Code[1][1], 24);
  digitalWrite(Buzzer,HIGH);
  delay(500);
  digitalWrite(Buzzer,LOW);
}

Hier mein Programm.

Die Signale der FB haben sich nach ca. 3 wiederholt.

Dann wurden die Dezimalwerte übernommen und gesendet.
Wichtig ist das zu einem Einschaltwert auch immer ein passender Ausschaltwert gehört.

Vielen Dank