433 mHz Funksteckdosen reagieren nicht

Hallo an Alle,
ich will mit meinem Arduino Uno 433 mHz Funksteckdosen ansteuern. Dazu habe ich mir einen 433 mHz Sender, sowie Empfänger besorgt, welche beide auch funktionieren (Habe den Sender etwas senden lassen, und der Empfänger empfängt alles richtig).

Dann habe ich mir zuerst die brennstuhl Funksteckdosen gekauft:

eine Steckdose mit der Fernbedinung gekoppelt, dann mit dem folgendem Code ausgelesen, und die empfangenen Daten mit dem Sender wieder gesendet, doch passieren tut nichts.

#include "RCSwitch.h"

RCSwitch sender = RCSwitch();
RCSwitch empfaenger = RCSwitch();


void setup() {
  Serial.begin(9600);
  sender.enableTransmit(3);  // An Pin 3
  empfaenger.enableReceive(0);

  sender.setProtocol(2);
  sender.setPulseLength(697);

}

void loop() {
  empfangen();
}


void empfangen(){
  if (empfaenger.available()){
    Serial.print("Daten: ");
    Serial.print(empfaenger.getReceivedValue());
    Serial.print(" /  Bitzahl: ");
    Serial.print(empfaenger.getReceivedBitlength());
    Serial.print(" / Pulslength: ");
    Serial.print(empfaenger.getReceivedDelay());
    Serial.print(" / Protokoll: ");
    Serial.println(empfaenger.getReceivedProtocol());
  }
  empfaenger.resetAvailable();
}

Dann dachte ich, das es vielleicht an den Funksteckdosen selber liegt und so hab ich das Ganze noch mit den Surnice "Remote Control Power Plug Set" probiert, allerdings funktioniert da das Auslesen der Fernbedinung nicht.

Ich bin schon durch ein paar Foren durch, allerdings habe ich noch nichts gefunden, was mir geholfen hat. Ich hoffe ihr könnt mir weiterhelfen.

Ich kann in deinem Sketch keine Daten erkennen. Auch nicht dass diese gesendet werten.
Es ist durchaus möglich, dass die Brennenstuhl nicht kompatibel zu Library
RCswitch ist.
Mit der Brennenstuhl RCS1000N weiß ich, das es sicher funktioniert.

Für die 4001 Brennenstuhl hatte ich in der RCSwitch.cpp folgende Einstellung verwendet.
{ 360, { 1, 6 }, { 1, 3 }, { 3, 1 }, false } damit hatte es funktioniert.
Die Steckdosen erwarten einen 24Bit code.
Du musst also den 24Bit Code senden, nicht den 32Bit Code den die FB ausspuckt.

Ok danke schonmal. Habe die RCSwitch.cpp so geändert, dass ich jetzt das "richtige" Protokoll verwende. Wie komme ich aber jetzt an den 24 Bit Code drann?

Den Code zum senden habe ich da rausgenommen.
Die Ausgabe auf dem seriellen Monitor ist:

Daten: 4276579731 /  Bitzahl: 32 / Pulslength: 713 / Protokoll: 2
Daten: 1384577747 /  Bitzahl: 32 / Pulslength: 713 / Protokoll: 2
Daten: 4276579731 /  Bitzahl: 32 / Pulslength: 713 / Protokoll: 2
Daten: 1384577747 /  Bitzahl: 32 / Pulslength: 710 / Protokoll: 2
Daten: 1384577747 /  Bitzahl: 32 / Pulslength: 713 / Protokoll: 2
Daten: 147 /  Bitzahl: 32 / Pulslength: 711 / Protokoll: 2
Daten: 15166867 /  Bitzahl: 32 / Pulslength: 713 / Protokoll: 2
Daten: 1384577747 /  Bitzahl: 32 / Pulslength: 714 / Protokoll: 2
Daten: 1384577747 /  Bitzahl: 32 / Pulslength: 714 / Protokoll: 2

somit dachte ich, ich kopiere die daten und sende dann mit

sender.send(4276579731, 32);  

das Signal. Allerdings wurde ja von volvodidi angemerkt, dass es an den 32 Bit, sowie am Protokoll liegen kann...

Die RCSwitch.cpp findest du im entsprechenden RCSwitch Lib Ordner.

Auf das 32Bit Signal reagieren die Dosen nicht, hab es bei mir damit nie hinbekommen. Die FB sendet 4x ein 32Bit und 4x ein 24Bit Signal hintereinander. Auf das 24Bit Signal reagieren die Dosen wenn du die Werte in die cpp Datei reinschreibst, und die entsprechende Protokoll Nr. verwendest wo du es rein geschrieben hast.
Kann gut sein, das du das 24Bit Signal aber nicht mit der RCSwitch lib gelesen bekommst.
Da hilft dann ein Empfänger und ein Logikanalyser mit der passenden SW weiter zum Visualisieren des Signals.

Achtung die RCSwitch ist mit Vorsicht zu genießen, die macht nur das was sie kennt. Und wenn sie dir einen Code und die Protokollnummer angibt, funktioniert das Senden mit dem angegebenen Protokell meist nicht.

Was meinst du mit passender SW ?
Und mit welcher Bib könnte ich das 24Bit Signal lesen?

zb hier mit:

und mit der Saleae SW.
Stell dir das einarbeiten in die Sache aber nicht zu leicht vor, da werden etliche Stunden und Tage für drauf gehen.

Gibt es dann vielleicht einfachere alternativen? :sweat_smile:

Zb., Steckdosen kaufen mit DIP Codierung, da bestimmst du den Code selber, aber das passende Protokoll musst du da auch rausfinden.

Ok, vielen Dank dir :raised_hands:

Ich hatte dir in Post #2 schon die Typen genannt, die sicher und ohne weitere Änderungen funktionieren.

Tja, lesen ist wohl nicht seine Stärke, er will wohl was haben was man nur zusammenstecken muss und geht.
Das scheint heute Normalität zu sein.

Genau das fällt mir auch immer öfter auf. Wobei du ihm ja auch schon genau erklärt hast, wie es mit seinen Funksteckdosen funktionieren kann.
Ist halt Arbeit und kostet Zeit. Und Microcontrollertechnik erfordert auch, das man lernwillig ist.