Grafner Funksteckdose Einstellen der Systemcodes zur Benutzung mit Raspberry Pi und Co
Falls jemand die Codes benötigt, der Aufbau ist wie folgt
- 10 Bits Sytemcode - 1 wird zu 11, 0 wird zu 01, z.Bsp 11011 ergibt 11 11 01 11 11
- 10 Bits Unitcode (00 = selektiert, 01=nicht selektiert)
- 4 Bits command on/off - 0001=on, 0100=off
111111111100010101010001 # FFC554 Aoff (Systemcode 11111, Unit A)
111111111100010101010100 # FFC554 Aon (Systemcode 11111, Unit A)
ssssssssssAABBCCDDEEcccc # systemcodes, unitcodes,command(0001=on,0100=off)
Die Fernbedienung hat 5 Dipschalter für den Hauscode.
Die Empfängerdosen haben 5 Dipschalter für den Hauscode und zusätzlich 5 für den Unitcode (A-E).
Hauscode:
Eine frei wählbare Schalterkombination, die an allen Steckdosen und der Fernbedienung identisch eingestellt wird. Hiermit soll vermieden werden, dass sich Nachbarn ins Gehege kommen.
Unitcode:
An den Empfängerdosen kann über 5 DIP Schalter festgelegt werden, auf welche Taste der Fernbedienung (A-E) die Dose reagiert.
A: 10000
B: 01000
C: 00100
D: 00010
E: 00001
Nun lassen sich mit 5 DIP Schaltern eigentlich 32 Zustände adressieren. Die "überflüssigen" Codes können natürlich nicht über die Fernbedienung angesprochen werden, können aber über ein RF Modul auf einem Computer adressiert werden..
Anmerkungen zur Technik:
Es wird (wie auch bei vergleichbaren Modellen) nur 1 Leitungsweg getrennt, das heisst das angeschlossene Gerät ist stromlos aber nicht spannungsfrei!
Der Verbrauch betraegt ca. 0,5W/h pro Dose. Das gilt auch im eingeschalteten Zustand.
Wie bei allen Relaisschaltern besteht bei hohen induktiven oder kapaz. Lasten eine geringe Gefahr des "Verklebens" der Kontakte.
Die theoretisch mögliche Reichweite wird mit dem Steckdosenset nicht ausgereizt. Sender und Empfaenger sollten sich in einer Entfernung bis 10 m befinden.
Die Konfiguration mit Dip Schaltern wirkt auf den ersten Blick anachronistisch, ist aber besonders bei Bastlern beliebt, da die Codes leicht ermittelt und programmtechnisch umgesetzt werden können. Eine geläufige Alternative sind selbstlernende Dosen, mit einem zufälligen aber feststehenden Code auf der Fernbedienung, der von den angesteuerten Empfaengersteckdosen "gelernt" werden muss. Sicherheit: Sicherheitstechnisch arbeiten die Geräte ohne Fangnetz, die Codes können leicht erraten oder abgehört werden. Andererseits ist der Schaden, den ein boeswilliger Nachbar im schlimsten Fall anrichten kann, begrenzt, da gewohnlich nur Licht oder Musikanlage geschaltet werden. Etwas unbequem ist hingegen, dass die Übertragung weder durch Prüfsummen abgesichert ist, noch der Gerätezustand abgefragt werden kann. Das schränkt die Verwendbarkeit von Programmen zur Hausautomatisierung ein.
Grafner Funksteckdose Sendecodes
Systemcode Unitmodus
Programmierung
Es gibt preiswerte Funkmodule zum Anschluss an Arduino oder Raspberry Pi. Das folgende Beispiel wurde auf einem Raspberry2 getestet und nutzt die Wiring Pi Bibliothek..
Das Programm sendg.cpp berechnet aus der Angabe des Systemcodes und der Unitnummer A-E den Sendecode und steuert die Funksteckdose an. Hinweise zur Kompilierung befinden sich in den inline Kommentaren. Grundsaetzlich ist eine Nutzung auch auf nicht-Raspberry Boards denkbar, sofern Wiring Pi unterstuetzt wird.
./RPi_utils/sendg.cpp 19.11.2017
Edit:
Das Programm wurde verschoben in den Download Bereich. Der Grund ist, dass die Steuerung über eine Webschnittstelle praxisgerechter ist. Eine mögliche Herangehensweise wird im folgenden Abschnitt vorgeschlagen.
Steuerung per Website und remote von anderen Rechnern
Naturgemaess wuenschen wir uns ein Webfrontend zur Steuerung der Funksteckdose, das auch von anderen Rechnern aus bedient werden kann.
Als Vorlage kann man das Projekt RF Outlet nehmen. Der Code ist relativ überschaubar und kann an die eigenen Bedürfnisse angepasst werden.
Anmerkungen:
Die Oberfläche von RF Outlet zeigt den Betriebszustand an und schaltet je nach aktuellem Zustand entweder ein oder aus. Der Status ist aber von der Funkteckdose nicht abfragbar, das kann zu Fehlern bei der Anzeige des tatsaechlichen Betriebszustands führen.
Der HTML Code verwendet die JQuery Bibliothek. Das ist nicht direkt ein Nachteil. aber wen das stört, der muss wohl den Code umschreiben.
Als Webfrontend dient die Datei index.html, die Schnitstelle zum Ansteuern der Geräte bilden die Dateien send.php und codesend.cpp.
Binaries sind vor der Verwendung mit "chmod +x" ausführbar zu machen, auch das Laufwerk muss mit entsprechenden Rechten zur Ausführung gemountet sein (siehe Mountoptionen oder Datei fstab).
Zur besseren Übersicht fassen wir die Vorgehensweise noch einmal zusammen:
Als Vorbereitung sollten wir zuerst die Sendecodes ermitteln (mit RF Sniffer oder Tabelle)
Es muss kein Raspberry sein, aber dann muss die Bibliothek wiring Pi bzw. RCswitch auf diesem Computer verwendbar sein.
Anschliessen der RF433 Hardware, dabei orientieren wir uns an den veröffentlichten Raspi Projekten.
Installation von wiringPi, Anleitungen gibt es auf der RF Outlet Seite oder dem Wiring Pi Projekt.
Zum Testen der Hardware steuern wir die Funksteckdosen über codesend oder sendg auf dem Raspberry direkt per Kommandozeile an (chmod +x nicht vergessen).
Installieren der Website:
Apache wird benötigt. Alternativen: Cherokee, Nginx, Monkey, Hiawatha, Lighttpd, Thttpd. (Manche Alternativen unterstützen nur statische Websites, sind also doch nicht geeignet).
PHP wird benötigt. Anleitung zur Installation: http://www.gtkdb.de/index_36_2860.html
Testen der Funktion des Apache Webservers (sprich bei Eingabe der IP des Raspberry im Browser eines anderen Computers soll die Apache Testseite erscheinen)
Kopieren der Dateien in den Apache www Ordner. Evtl. muss codesend.cpp noch kompiliert werden.