Funksteckdosen mit 433 MHz am Raspberry Pi steuern

Von Samuel 28.03.2017

Funksteckdosen mit 433 MHz am Raspberry Pi steuern Titelbild

Bei uns im Computerclub gab es das Vorurteil, dass man die günstigen Steckdosen aus dem Baumarkt nicht über einen 433 MHz Sender steuern kann. Grund genug, uns das mal anzuschauen. Dafür brauchen wir das Set aus 433 MHz Sender und Empfänger. Dies schließen wir an unserem Pi wie folgt an:

Sensor GPIO
VCC 5V
GND Ground
433 MHz Sender GPIO17 (Pin 11)
433 MHz Empfänger GPIO 18 (PIN 12)

Jetzt lesen wir die Infos aus, die die Fernbedienung schickt. Dafür brauchen wir

pilight

das fügt in der

/etc/apt/sources.list

folgenden Eintrag hinzu:

deb http://apt.pilight.org/ stable main

und ladet den entsprechenden Key herunter mit:

sudo wget -O - http://apt.pilight.org/pilight.key | apt-key add -

Jetzt aktuallisieren wir die Paketquellen

sudo apt-get update

und installieren pilight mit

sudo apt-get install pilight

und startet es anschließend mit

sudo service pilight start

jetzt wollen wir die Signale der Fernbedienung mitlesen. Dafür starten wir pilight im Lesemodus

sudo pilight-recieve

und drücken eine Taste auf der Fernbedienung. Das Ergebnis sieht bei uns so aus:

{
    "message": {
        "id": 25271130,
        "unit": 15,
        "state": "on"
    },
    "origin": "receiver",
    "protocol": "arctech_switch",
    "uuid": "0000-b8-27-eb-488168",
    "repeats": 2
}
{
    "message": {
        "id": 25271130,
        "unit": 15,
        "state": "opened"
    },
    "origin": "receiver",
    "protocol": "arctech_contact",
    "uuid": "0000-b8-27-eb-488168",
    "repeats": 2
}

Darin sind alle wichtigen Informationen enthalten, die wir brauchen, um die Steckdosen mit pilight zu steuern. Wir öffnen dazu die pilight config

sudo vi /etc/pilight/config.json

und fügen nach „devices“:{ unser device nach diesem Muster hinzu:

                "Licht1": {
                        "protocol": [ "kaku_screen" ],
                        "id": [{
                                "id": 25271130,
                                "unit": 1
                        }],
                        "state": "up"
                }

und nach gui": { fügen wir folgendes ein

            "Licht1": {
                        "name": "Licht Büro",
                        "group": [ "Licht" ], "id": [{
                                "id": 25271130,
                                "unit": 1
                        }],
                        "media": [ "all" ]
                }

Interessant ist, dass das Protokoll, das wir mitgelesen haben als „ arctech_contact“ angegeben ist. Eine kurze Suche im Netz ergibt, dass wir dafür „kaku_screen“ verwenden. ID und UNIT bekommen wir ebenfalls aus dem ausgelesen Wert.

 "id": [{
                                "id": 25271130,
                                "unit": 1
                        }],

Den Unit Wert können wir von 1-15 festsetzen. Anders gesagt: die 16 Steckdosen können separat gesteuert werden. Will man zwei oder mehr Steckdosen gleichzeitig schalten, gibt man diesen einfach die selbe ID. Wir speichern Datei und starten pilight neu. Am besten mit sudo pilight-daemon -D, um eventuelle Fehler direkt zu sehen. Meistens sind das fehlende geschweifte Klammern oder ein fehlendes Komma. Wenn alles funktioniert, gehen wir im Browser auf die IP des Pi mit dem Port 5001 Dort gibt es dann eine Oberfläche auf der das Licht an und aus geschaltet kann. Es hat alles geklappt? Super! Nun können weitere Steckdosen über die Config hinzugefügt. Aber Achtung: zwei Einträge müssen mit einem Komma getrennt werden und auch die ID muss geändert werden. Das war es im Groben auch schon. Eine detaillierte Anleitung gibt es eventuell demnächst als eigenes Projekt auf CodingWorld.io