Funksteckdose

Funksteckdosen mit dem Raspberry Pi unter FHEM schalten

Nun wird es langsam mal Zeit, wieder etwas im Projekt Hausautomation mit FHEM zu erläutern. Nachdem wir also in den ersten beiden Beiträgen das Betriebssystem auf dem Raspi eingerichtet und anschließend die Open-Source-Hausautomations-Software FHEM installiert haben, können wir nun daran gehen, die ersten sinnvollen Dinge mit der Hausautomation anzustellen. Das wäre zum Beispiel das Schalten von Funksteckdosen mit dem üblichen Funkprotokoll von Intertechno im 433 MHz-Band. Solche Funksteckdosen gibt es relativ preisgünstig in diversen Baumärkten oder aber auch im Internet bei Versandhändlern wie pollin.de oder reichelt.de. Wichtig ist, darauf zu achten, dass es sich um Funksteckdosen handelt, die DIP-Schalter (manche sagen auch Mäuseklavier) besitzen, um den Funk-Code einstellen zu können. Inzwischen sind leider selbstlernende Steckdosen in Mode gekommen, deren Funksignale an die zugehörige Fernbedienung angelernt werden. Bei diesen ist der Betrieb unter FHEM allerdings weitaus schwieriger, da dort erst einmal der Funkcode empfangen und entschlüsselt werden muss. Also besser gleich die „richtigen“ Funksteckdosen kaufen.

Außerdem benötigt man auch noch einen Funksender, der an den Raspi angeschlossen wird und mit dem wir dann die entsprechenden Funksignale an die Steckdosen senden können. Diese gibt es z.B. bei avc-shop.de oder auch bei dx.com.

Funksender an den Raspberry Pi anschließen

Im Allgemeinen kann man sagen, der Funksender hat drei Anschlüsse, nämlich DATA, GND und VCC. Der vierte Anschluss ist der Anschluss für die Antenne. Der Raspberry Pi hat mehrere Pins (GPIOs) die sowohl GND (Masse), als auch +5V (VCC) bereitstellen. Ich habe bei mir die GPIOs wie in der nachfolgenden Abbildung genutzt. Der GPIO für DATA ist der sechste Pin auf der Innenseite (GPIO17). Als VCC habe ich den ersten Pin und als GND den dritten Pin auf der Außenseite der Leiterplatte genutzt.

Raspi mit Funksender

Die Länge der Antenne kann man sich ausrechnen. Wie? Das ist unter www.mikrocontroller.net beschrieben. Um es kurz zu machen, optimal ist ein Draht von ca. 17 cm Länge.

Software zum Ansteuern des Senders installieren

Ist das physische Anschließen erledigt, müssen wir dem Raspi noch beibringen, wie er den Sender ansteuern soll, damit etwas sinnvolles aus der Antenne kommt, was die Funksteckdosen auch verstehen und zum Schalten veranlasst.

Wie bei jeder Installation, ist es empfehlenswert, zuerst einmal das System auf den aktuellen Stand zu bringen:

Anschließend installieren wir, falls noch nicht geschehen Gitcore:

Um die GPIO-Pins ansteuern zu können, benötigen wir das Programm WiringPi. Das wird folgendermaßen installiert:

Dann können wir über GitHub das Projekt Raspberry-Remote klonen und kompilieren, mit dem der Funksender angesteuert wird.

Das war es auch schon, damit ist alles am und auf dem Raspberry Pi, um die Steckdosen schalten zu können.

Funksteckdosen einstellen

Als nächstes geht es daran, die einzelnen Steckdosen mit individuellen Codes zu versehen. Damit nicht der Nachbar, der im Baumarkt eventuell das gleiche günstige Steckdosenset gekauft hat unsere Steckdosen schalten kann, sollten wir unsere aufschrauben und einen eigenen Code mit den DIP-Schaltern einstellen.

An der Rückseite der Funksteckdosen ist eine kleine Abdeckklappe, die mit Hilfe eines kleinen Schraubenziehers geöffnet werden kann. Es befinden sich zehn DIP-Schalter darunter. Wichtig ist, dass die ersten 5 Schalter (meist bezeichnet mit 12345) den sogenannten Hauscode darstellen, und die anderen 5 Schalter (meist ABCDE) die einzelnen Steckdosen repräsentieren (Gerätecode). Damit wir vom Standard abweichen und nicht mit dem Nachbarn kollidieren, wählen wir als Hauscode z.B. 10010, stellen also den DIP-Schalter 1 auf „on“, den Schalter 2 auf „off“, den Schalter 3 auf „off“, den Schalter 4 auf „on“ und den Schalter 5 auf „off“. Bei den hinteren 5 Schaltern müssen wir für jede Steckdose eine eigene Kodierung einstellen, sonst schalten diese später gleichzeitig. Die erste Steckdose versehen wir mit A, stellen also den sechsten Schalter auf „on“, die Schalter 7 bis 10 auf „off“. Der zweiten Steckdose vergeben wir den Buchstaben B, stellen also den sechsten Schalter auf „off“, den siebenten auf „on“ und die Schalter 8 bis 10 wieder auf „off“.

Um zu testen, ob die Steckdosen richtig schalten, wird an der mitgelieferten Fernbedienung der gleiche Hauscode (10010) eingestellt. Damit sollten die Steckdosen jetzt zu schalten sein. Wenn das funktioniert, testen wir das gleiche jetzt mit dem Raspberry Pi.

Funksteckdosen über den Raspberry Pi schalten

In der Kommandozeile können wir jetzt die Steckdose A einschalten, indem wir folgendes eingeben:

Zum Ausschalten der Steckdose A geben wir folgendes ein:

Zum Einschalten der Steckdose B würde man folgendes eingeben:

Zum Ausschalten der Steckdose B geben wir folgendes ein:

Wenn das funktioniert – Glückwunsch!

FHEM zum Schalten der Funk-Steckdosen bringen

Nun ist es etwas umständlich, zum Schalten immer die Kommandozeile zu bemühen. Da wir die Steckdosen mit FHEM schalten wollen, bleibt nun noch der Schritt, FHEM dazu zu bringen, genau diese Sendekommandos auszuführen.

Als erstes legen wir uns einen Dummy an, der später den Zustand der Steckdose repräsentiert. Um das Beispiel schön einfach zu halten, gehe ich davon aus, dass wir in die Steckdose eine Stehlampe oder ähnliches einstecken und diese nicht mehr wie üblich mit dem im Kabel befindlichen Schalter schalten, sondern durch das Schalten der Steckdose (der eventuell existierende Kabelschalter ist also dauerhaft auf EIN geschaltet).

In der FHEM-Kommandozeile geben wir ein:

Damit wir in FHEM dann Schaltflächen für on und off haben, vergeben wir als nächstes noch eine Liste mit gültigen Schaltzuständen:

Damit können wir unseren Dummy nun schon mal ein- und ausschalten.

Was nun noch fehlt, ist die Verbindung unseres Dummys mit der Funksteckdose.

Dazu definieren wir noch zwei notify’s, jeweils eins zum Ein- und eins zum Ausschalten:

Das erste notify reagiert nur dann, wenn unser Dummy du_lampe in den Zustand ON versetzt wird, das zweite notify reagiert nur dann, wenn der Dummy du_lampe in den Zustand OFF versetzt wird. Und die Reaktion der beiden notifys unterscheidet sich nur darin, dass bei ON die Steckdose A einen Einschaltbefehl bekommt und bei OFF, die Steckdose A einen Ausschaltbefehl erhält.

Wenn man nun also den Dummy du_lampe mittels FHEM einschaltet, sollte auch die Steckdose mit dem Hauscode 10010 und dem Gerätecode A einschalten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.