smarthome-tricks.de

433 MHZ Funk-Zwischenstecker in ioBroker integrieren

In diesem Tutorial zeige ich Dir, wie ich meine alte 433MHZ-Technik (Funk-Zwischenstecker) in ioBroker integriert habe.

Für manche Geräte (z.B. die Weihnachtsbeleuchtung) habe ich noch die alte 433 MHZ-Technik im Einsatz. Die Zwischenstecker wurden in der Vergangenheit über eine Fernsteuerung geschaltet. Ich wollte die Aktoren entweder durch Homematic Zwischensticker ersetzen (ziemlich teuer), oder versuchen die bestehenden Aktoren auf 433 MHZ Basis in ioBroker zu integrieren. Nach kurzer Recherche habe ich auf Amazon einen entsprechenden 433 MHZ Sender gefunden, welchen ich auf einen Raspberry PI aufstecken kann. Über diesen Sender können wir nach der Konfiguration dann die bestehenden Zwischenstecker steuern. Zunächst einmal die Auflistung der benötigten Komponenten:

Nach dem alle Komponenten eingetroffen waren, habe ich zunächst auf meinem Test Raspberry PI ioBroker installiert. Im nächsten Schritt habe ich dann den PI wieder ausgeschaltet und mit dem Aufbau des 4333 MHZ Tests begonnen. Hierzu werden drei Jumper Kabel (female-female) benötigt, welche das Sendemodul mit den entsprechenden GPIO Pins verbinden.

Das folgende Schaltbild zeigt den Anschluss des 433 MHZ Senders an das GPIO-Board das Raspberry PI:

Für eine höhere Reichweite habe ich noch an den Antennen-Anschluss des Senders eine 17cm lange Antenne (einfache Litze) angelötet. Das folgende Foto zeigt die angelötete Antenne:

Nach dem wir nun den Sender mit dem Raspberry PI verbunden haben können wir uns wieder am PI anmelden und mit der Einrichtung beginnen. Im ersten Schritt bringen wir dazu mit folgenden Befehlen des PI auf den neuesten Stand:

sudo apt-get update
sudo apt-get install git-core

Im nächsten Schritt müssen wir WiringPI installieren und builden. Dieses Paket dient der Kommunikation mit den Sender über das GPIO-Board:

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

Nachdem WiringPI installiert wurde, müssen wir nun Raspberry-Remote installieren:

git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote
make send

Das war es auch schon mit der Installation von Software. Nun können wir einen ersten Test starten. Dazu benötigen wir aber im nächsten Schritt noch die Steckdosen und die Fernbedienung, da wir die Systemcodes sowie den Unitcode der Steckdose ermitteln müssen. In der Regel lassen sich die Geräte öffnen, sodass der Systemcode und der Unitcode eingestellt werden können. Wir müssen also die beiden Geräte (Sender und Empfänger) öffnen sodass wir die Codes einsehen können:

Die Codes zum Senden an die 433 MHZ Geräte haben folgenden Aufbau:
(Systemcode) | (Unitcode) | Befehl

Der Systemcode oben rechts im Bild lautet „11111“, da alle Schalter auf ON stehen. Der Unitcode links wird folgendermaßen ermittelt:
10000 = 1
01000 = 2
00100 = 3
00010 = 4
00001 = 5

Um nun mit dem Sender die zweite Steckdose einzuschalten muss nun folgender Befehl über die Konsole auf dem PI abgesetzt werden:

sudo /home/pi/raspberry-remote/./send 11111 2 1

Im Befehl wird zunächst das send Tool mit sudo-Berechtigungen gestartet und den Systemcode „11111“, die Steckdosennummer „2“ sowie der Befehl „1“=An, „0“=Aus übergeben.
Wenn alles korrekt installiert und die Codes korrekt eingestellt wurden sollte nun die Steckdose eingeschaltet werden 🙂

Im nächsten Schritt müssen wir den Send-Befehl in den ioBroker integrieren.

Im ersten Schritt legen wir uns über das folgende Script drei Variablen (3=Zwischenstecker) für den Status der 433 MHZ-Aktoren an.

createState('433MHZ_Aktoren.Zwischenstecker_A', 0, { type: 'number' });
createState('433MHZ_Aktoren.Zwischenstecker_B', 0, { type: 'number' });
createState('433MHZ_Aktoren.Zwischenstecker_C', 0, { type: 'number' });

Da wir über das 433 MHZ-Protokoll keine Status-Informationen über den aktuellen Schaltzustand bekommen, müssen wir uns die Aktoren „virtuell“ als Datenpunkte im ioBroker anlegen, sodass wir die Schaltzustände via Button darstellen können.

In VIS können wir jetzt drei RadioButtons (on/off) einfügen, welche wir mit den Datenpunkten des jeweiligen Aktors verknüpfen.

Jetzt müssen wir bei Veränderung des Datenpunktes nur noch den Sender mit dem entsprechenden Unitcode und Befehl aufrufen. Dazu schreiben wir uns ein Script, welches diese Aufgabe erledigt.

on('javascript.0.433MHZ_Aktoren.Zwischenstecker_A', function (obj) { 
    exec('sudo /home/pi/raspberry-remote/./send 11111 1 '+obj.state.val);
});

on('javascript.0.433MHZ_Aktoren.Zwischenstecker_B', function (obj) { 
    exec('sudo /home/pi/raspberry-remote/./send 11111 2 '+obj.state.val);
});

on('javascript.0.433MHZ_Aktoren.Zwischenstecker_C', function (obj) { 
    exec('sudo /home/pi/raspberry-remote/./send 11111 3 '+obj.state.val);
});

Im Skript reagieren wir bei Veränderung des jeweiligen Datenpunktes und rufen über die exec() Funktion den Befehl für den Sender auf. Das war es schon, so einfach sind die 433 MHZ-Zwischenstecker in unser Smart-Home integriert, wir können diese nun in unsere bestehende Logik integrieren, und via Script schnell und einfach schalten.

Ich hoffe ich konnte damit zeigen wie einfach bestehende System in den ioBroker integriert werden können. Bei Fragen wie immer per Kommentar oder E-Mail 🙂

Die mobile Version verlassen