Funksteckdose ansteuern ohne Fernbedienung

Und da ist der Black Zero schon wieder.

Nach langem hin und her, habe ich meine alten Funksteckdosen wieder
gefunden und plane mein altes Projekt jetzt damit zu realisieren.

Habe mir auch schon einige Videos und Seiten angeschaut, aber habe nichts
passendes gefunden.

Ich habe mir jetzt zu meinen Funksteckdosen noch ein 433MHZ Kit bestellt.
Link

Jetzt habe ich leider von den Steckdosenset keine Passende Batterie mehr für die Fernbedienung,
da das ne 12V / 23A Batterie sein muss und ich net einsehe ne Batterie zu holen wenn es auch so geht.

Jetzt habe ich einen Code im Internet raus gesucht der auch mein Ziel erfüllen sollte.

/*
  Example for outlets which are configured with a 10 pole DIP switch.
  
  http://code.google.com/p/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

  // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(10);

  // Optional set pulse length.
  // mySwitch.setPulseLength(320);
  
}

void loop() {

  // Switch on:
  // The first parameter represents the setting of the first 5 DIP switches. 
  // In this example it's ON-ON-OFF-OFF-ON.
  // 
  // The second parameter represents the setting of the last 5 DIP switches. 
  // In this example the last 5 DIP switches are OFF-ON-OFF-ON-OFF.  
  mySwitch.switchOn("10000", "10000");

  // Wait a second
  delay(1000);
  
  // Switch off
  mySwitch.switchOff("10000", "10000");
  
  // Wait another second
  delay(1000);
  
}

Bei der Steckdose ist der erste Pin oben und der sechste.
So sollte das eigentlich funktionieren.

Aber dann kommt bei mir beim Übertragen schon der erste Fehler:

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:33:42: warning: converting to non-pointer type 'long unsigned int' from NULL [-Wconversion-null]

 unsigned long RCSwitch::nReceivedValue = NULL;

                                          ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In constructor 'RCSwitch::RCSwitch()':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:49:28: warning: converting to non-pointer type 'long unsigned int' from NULL [-Wconversion-null]

   RCSwitch::nReceivedValue = NULL;

                            ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In member function 'void RCSwitch::switchOn(char*, int)':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:189:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   char* code[6] = { "00000", "10000", "01000", "00100", "00010", "00001" };

                                                                          ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:189:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:189:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:189:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:189:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:189:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In member function 'void RCSwitch::switchOff(char*, int)':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:201:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   char* code[6] = { "00000", "10000", "01000", "00100", "00010", "00001" };

                                                                          ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:201:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:201:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:201:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:201:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:201:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In member function 'char* RCSwitch::getCodeWordB(int, int, boolean)':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:245:61: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    char* code[5] = { "FFFF", "0FFF", "F0FF", "FF0F", "FFF0" };

                                                             ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:245:61: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:245:61: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:245:61: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:245:61: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In member function 'void RCSwitch::enableReceive()':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:597:30: warning: converting to non-pointer type 'long unsigned int' from NULL [-Wconversion-null]

     RCSwitch::nReceivedValue = NULL;

                              ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:598:34: warning: converting to non-pointer type 'unsigned int' from NULL [-Wconversion-null]

     RCSwitch::nReceivedBitlength = NULL;

                                  ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In member function 'bool RCSwitch::available()':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:612:38: warning: NULL used in arithmetic [-Wpointer-arith]

   return RCSwitch::nReceivedValue != NULL;

                                      ^

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp: In member function 'void RCSwitch::resetAvailable()':

C:\Program Files (x86)\Arduino\libraries\rc-switch-2.52\RCSwitch.cpp:616:28: warning: converting to non-pointer type 'long unsigned int' from NULL [-Wconversion-null]

   RCSwitch::nReceivedValue = NULL;

                            ^


Der Sketch verwendet 4.674 Bytes (14%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
Globale Variablen verwenden 401 Bytes (19%) des dynamischen Speichers, 1.647 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.

Genug Fehler obwohl das wohl hochgeladen wurde.

Kann mir einer sagen, wo der Fehler liegt???

MFG

Black Zero

hi,

eine alte library, sind aber alles nur warnungen.

gruß stefan

EDIT: warum hängst Du die fernbedienung nicht provisorisch an ein netzteil?

Du musst den Ordner der Library genau so benennen, wie die Library heißt.
Z.B. "RCSwicht"

Dazu sei noch gesagt, das die Steckdose darauf leider nicht angeht.

MFG

Black Zero

blackzero23:
Dazu sei noch gesagt, das die Steckdose darauf leider nicht angeht.

Vor oder nach dem Anpassen des Ordnernamens ?

Dann solltest du ein wenig mit den 2 Parametern spielen:

mySwitch.setPulseLength(320); 
mySwitch.setProtocol(2);

Und der Idee mit dem Netzgerät an der Fernbedienung solltest du mal nachgehen, dann kannst du die richtigen Codes auslesen.
Danach kannst du auch mit Dezimal-Code arbeiten.

hi,

Du musst den Ordner der Library genau so benennen, wie die Library heißt.
Z.B. "RCSwicht"

den mag ich... :slight_smile:

gruß stefan

Eisebaer:
den mag ich... :slight_smile:

Warum...?

Ich habe lange an meinen Funksteckdosen gesessen mit leider auch einer ca 1 Jahr alten Lib von sui77. Die Steckosen sind von GlogalTronics die QUIGG GT-9000. Das einfachste ist die Fernbedienung unter Spannung und dann auslesen. Die Alte Lib Sagt Protokoll 3 und die neue 5 und dann lief es auch.
Deswegen 12V auf die Funke Empfänger dran und auslesen und dann kann man es am schnellsten umsetzten
Gruß
DerDani

HotSystems:
Warum...?

wegen des buchstabendrehers. ist aber nur nett gemeint...

liebe grüße stefna

Eisebaer:
wegen des buchstabendrehers. ist aber nur nett gemeint...

Ohhh, x mal gelesen und nicht gesehen.

danke...

volvodani:
Deswegen 12V auf die Funke Empfänger dran und auslesen und dann kann man es am schnellsten umsetzten

Das ist das frustfreiheste Vorgehen. Zur Not findet sich die nötige Batterie oft in Autotürschlossfernbedienungen. Bei meinem letzten Kauf war sie bei Rossmann im stationären Handel am günstigsten. Vielleicht hat man auch in 1Euro Läden Glück. Ansonsten gibt es sie im Versandhandel ab 55Cent.

Und eine Rückmeldung mit einem Ergebnis wären auch sehr interessant.

Ich habe schon versucht das mit meinem Labornetzteil hin zu bekommen,
aber leider liefert das nicht die benötigten 23A.
Wenn ich da die 12 Volt drauf gebe, dann Leuchtet die Led die ganze Zeit
und mein Arduino gibt mir dann auch keine Frequenz aus.

Probiert habe ich das mit dem Code:

/*
  Simple example for receiving
  
  http://code.google.com/p/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }

    mySwitch.resetAvailable();
  }
}

Habe auch den Seriellen Monitor angemacht, aber er hat mir damit nichts angezeigt.

Gibt es da noch ne andere Möglichkeit ohne mir jetzt noch ne Batterie zu kaufen???

MFG

Black Zero

blackzero23:
Ich habe schon versucht das mit meinem Labornetzteil hin zu bekommen,
aber leider liefert das nicht die benötigten 23A.
Wenn ich da die 12 Volt drauf gebe, dann Leuchtet die Led die ganze Zeit
und mein Arduino gibt mir dann auch keine Frequenz aus.

Die 23A sind die Bezeichnung des Formfaktor (28mmx10mm) und der Spannung. Diese Minibatterie wäre mit 23A auch heillos überfordert. Für 23A braucht man schon so was wie eine Autobatterie.

Welche Led leuchtet dauerhaft? Reagieren die Steckdosen?

Ich teste immer gerne den Empfänger mit dem Sketch Button. Ich schließe den Empfänger als Button an und beobachte das Blinken der Led auf Pin 13.

Ups...
Da hast du etwas falsch verstanden.
Die Bezeichnung "23A" ist keine Stromangabe, sondern eine TypenBezeichnung.
Eine Batterie in der Größe liefert auch keine 23 A.
Ein Strom von 50 mA sollte da völlig ausreichen.
Wenn das nicht funktioniert, ist irgend was an der Fernbedienung defekt.
Der Sketch ist sicher der Original Beispielsketch und sollte funktionieren.

Ok, dann bin ich da ja schon ein bischen schlauer.

Normalerweise leuchtet die LED der Fernbedienung immer kurz auf wenn
ich eine Taste drücke.

Wenn ich die allerdings an das Netzteil anschließe und es auf 12 Volt stelle,
dann leuchtet die LED dauerhaft.

Die Steckdose reagiert weder auf die Fernbedienung noch auf den Sender.

Bei der Fernbedienung bin ich mir nicht sicher wegen dem Netzteil,
aber die Steckdosen funktionieren eigentlich einwandfrei.

Ich weiß nur leider nicht wo der Fehler liegt.

MFG

Black Zero

blackzero23:
Normalerweise leuchtet die LED der Fernbedienung immer kurz auf wenn
ich eine Taste drücke.

Wenn ich die allerdings an das Netzteil anschließe und es auf 12 Volt stelle,
dann leuchtet die LED dauerhaft.

Die Steckdose reagiert weder auf die Fernbedienung noch auf den Sender.

Dann muss etwas an der FB faul sein. Mit 12 Volt soll die funktionieren.

was ist das für ein Netzteil ?
Ist die Spannung stabil und sauber ?

Bei der Fernbedienung bin ich mir nicht sicher wegen dem Netzteil,
aber die Steckdosen funktionieren eigentlich einwandfrei.

Woher willst du wissen, dass die Steckdosen funktionieren, wenn die FB und der Sender nicht funktionieren.

Es geht nicht um eine CR123 sondern um ein 23-Batterie. Das ist eine kleine 12V-Batterie, sehr gerne in kleinen 433-Mhz-Fernbedienungs-Sendern z.B. auch in Autoschlüsseln eingesetzt wird: Alkaline-Batterie L1028 online kaufen | Pollin.de

Ich hoffe mal, du hast die Fernbedienung nicht durch das Netzteil zerstört.

Theseus:
Es geht nicht um eine CR123 sondern um ein 23-Batterie. Das ist eine kleine 12V-Batterie, sehr gerne in kleinen 433-Mhz-Fernbedienungs-Sendern z.B. auch in Autoschlüsseln eingesetzt wird:

Na ja, dann ziehe ich meinen vorangegangenen Beitrag zurück und lösche ihn mit "Remove".

BYE

Kannst du denn den Funkcode, den du mit dem Arduino sendest auch mit dem Funkempfänger empfangen ?
Also sendet dein Arduinosender auch den eingestellten Code ?