Angeregt durch einen Bericht in der c’t, wollte ich mal sehen, was auf dem Gebiet der 433-MHz-Funkübertragung möglich ist.
Als Hardwarebasis dient eine Kombi aus dem Sendemodul FS1000A und dem Empfangsmodul XY-MK-5V. Diese Module gibt es im Doppel für unter 6 EUR beispielsweise bei Amazon oder auch bei China-Versendern.
1. Installation von Pilight
Zur Installation von Pilight werden in die Datei /etc/apt/sources.list
folgende Zeilen eingefügt:
deb https://apt.pilight.org/ nightly main
deb https://apt.pilight.org/ stable main
Außerdem benötigen wir den Schlüssel, mit dem heruntergeladene Pakete geprüft werden:
sudo wget -O - http://apt.pilight.org/pilight.key | sudo apt-key add -
Jetzt die Paketquellen aktualisieren und Pilight installieren
sudo apt-get update
sudo apt-get install pilight
Die Konfiguration von Pilight erfolgt in der Datei /etc/pilight/config.json
. Derzeit haben wir noch nichts zu konfigurieren, da derzeit weder Sender noch Empfänger angeschlossen sind.
2. Empfänger anschließen
Den Empfänger habe ich an den 3.3V-Anschluss des Raspberry Pi angeschlossen, da verschiedentlich darauf hingewiesen wird, dass die ansonsten 5V, die am GPIO ankommen, Schäden verursachen könnten. Einer der beiden „Data“-Anschlüsse kommt an GPIO18 des Raspberry Pi.
Ist der Empfänger angeschlossen, kann man auf Suche gehen, welche Geräte man identifizieren kann.
Zunächst muss der Service mit
sudo service pilight start
gestartet werden. Anschließend kann man mit
pilight-receive
schauen, welche Daten empfangen werden. Dazu in der Nähe des Empfängers eine Funkfernbedienung drücken. Auf dem Bildschirm sollten dann Meldungen wie
{
"message": {
"systemcode": 5,
"unitcode": 15,
"state": "on"
},
"origin": "receiver",
"protocol": "elro_400_switch",
"uuid": "0000-74-da-38-26c3b9",
"repeats": 2
}
erscheinen. Falls nicht, Verkabelung überprüfen.
Es lohnt sich durchaus, im Haus mal zu schauen, wer so alles per Funk Informationen versendet. Bei mir war es beispielsweise auch das 10 Jahre alte Außenthermometer am Küchenfenster.
3. Sender anschließen
Um Geräte zu steuern, wird der Sender nun ebenfalls angeschlossen. Sein Datenausgang kommt an GPIO17. Auch hier habe ich einen 3.3V-Anschluss zur Stromversorgung genutzt.
An der Befehlszeile kann man nun mit
pilight-send -p elro_400_switch -s 5 -u 15 --on
versuchen, die im Beispiel oben „abgefangene“ Kommunikation mit der Steckdose zu senden und auf diese Art einzuschalten. Welche Parameter im Einzelnen zu senden sind, entnimmt man am einfachsten aus der Dokumentation von Pilight.
4. Pilight konfigurieren
Sinnvoll ist der Einsatz von Pilight nur, wenn die vorhandenen Steckdosen auch entsprechend in der Datei /etc/pilight/config.json
konfiguriert sind. Achtung: in dieser Datei speichert Pilight den Zustand der Geräte selbst, weshalb sie im laufenden Betrieb ständig überschrieben wird. Ein Bearbeiten ist also nur möglich, wenn man den Service vorher mit
sudo service pilight stop
stoppt.
Wieder mit den Beispielwerten von oben sorgen die Einträge in den Abschnitten „devices“ und „gui“ dafür, in der Weboberfläche einen virtuellen Schalter für die Funksteckdose zu haben. Das entsprechende Gerät lässt sich nun sowohl mit der Funkfernbedienung als auch mit der Weboberfläche ein- und ausschalten.
{
"devices": {
"Lampe": {
"protocol": [ "elro_400_switch" ],
"id": [{
"systemcode": 5,
"unitcode": 15
}],
"state": "on"
}
},
"rules": {},
"gui": {
"Lampe": {
"name": "Stehleuchte",
"group": [ "Beleuchtung" ],
"media": [ "all" ]
}
},
"settings": {
"log-level": 6,
"pid-file": "/var/run/pilight.pid",
"log-file": "/var/log/pilight.log",
"webserver-enable": 1,
"webserver-root": "/usr/local/share/pilight/",
"webserver-http-port": 5001,
"webserver-cache": 1
},
"hardware": {
"433gpio": {
"sender": 0,
"receiver": 1
}
},
"registry": {
"pilight": {
"version": {
"current": "7.0"
}
}
}
}
Es empfiehlt sich, nach dem Neustarten des Services einen Blick in die Datei /var/log/pilight.err
zu werden. Hier werden Fehlermeldungen abgeworfen, z.B. wenn die Konfigurationsdatei Fehler enthält.
5. Empfang verbessern
Während der Sender eine ausreichende Sendeleistung hat, um Geräte auch im Nachbarzimmer zu schalten, ist die Empfangsleistung des Empfängermoduls XY-MK-5V unter aller Kanone. Der maximale Abstand zwischen Empfänger und Fernbedienung darf einige cm nicht überschreiten, das ist ist eine praktische Nutzung natürlich völlig ungeeignet.
Deutlich bessere Empfangsqualitäten soll ein Modul mit dem Namen RXB12 bringen (Quelle). Ich habe mir jetzt eines bestellt, aber das Lieferdatum ist irgendwann in 2 Monaten…
Ebenso soll es helfen, eine vernünftige Antenne – entweder ein 17cm langer Draht oder besser diese hier – anzulöten. Dazu ist auf der Empfängerplatine ein (bei mir unbeschriftetes) Lötauge vorhanden.
Hallo Jörg,
danke für die tolle Anleitung.
Leider klappt bei mir der Empfang eines gesendeten Signal wie von Dir beschrieben noch nicht.
Kann es daran liegen, dass der XY-MK-5V doch nur an 3,3V angeschlossen wird?
Kennst Du für den RXB12 noch Quellen, die schneller liefern können?
Danke und viele Grüße
Jens