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 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

20 Gedanken zu „433 MHZ Funk-Zwischenstecker in ioBroker integrieren

  • 15. April 2018 um 17:13
    Permalink

    Hier gibt es immer wieder interssante Beiträge
    Ich bau gerade eine Wohnung neu mit HM Wireless aus und suche noch eine günstige Lösung um Bewegungsmelder oder Präsenzmelder einzubinden.
    Da wäre ich für Lösungsvorschläge dankbar.

    Antwort
  • 6. September 2018 um 11:18
    Permalink

    Hallo Matthias,
    ich habe ein kleines Problem mit dem Einrichten meiner Funksteckdosen im ioBroker. Deine Anleitung bin ich Schritt für Schritt nachgegangen. Klappte auch bis zu einem gewissen Punkt, ich komm mit meinem Anfänger Wissen nicht weiter.
    Kurz zu meiner Hardware, ich habe einen Raspi 3 mit StromPi2, drei Funksteckdosen mit DIP Schalter von Brennenstuhl (RCR 1000N). Habe noch 433Mhz Sendemodul und Empfänger. PIR Sensor und Temp Sensor (DHT22) sind auch am Breadboard angeschlossen.
    Auf dem Pi habe ich ein ioBroker Image gespielt. Die Einrichtung und Steuerung der Sensoren und Funksteckdosen funktionieren auf dem Pi per SSH problemlos. Auf der Weboberfläche des ioBrokers nicht.
    Mein erstes Problem war ds ich nicht wusste wo ich dieses Script anlegen sollte:

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

    Die 3 Aktoren habe ich angelegt bekommen:

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

    alles was danach kommt klappt nicht mehr???
    Hoffe du kannst mir noch helfen…

    MfG
    DFC

    Antwort
    • 6. September 2018 um 12:42
      Permalink

      Hallo Daniel,
      Du musst die Skripte in ioBroker unter dem Bereich Skripte anlegen und aktivieren. Ich werde hierzu in den nächsten 1-2 Wochen einen ioBroker Skripting Einführungsartikel veröffentlichen, damit sollten dann diese Fragen ebenfalls geklärt werden können 🙂

      Viele Grüße,
      Matthias

      Antwort
    • 29. Oktober 2018 um 19:46
      Permalink

      Hallo Mathias
      irgendwie geht es mir ähnlich wie DFC.
      Im „Edit vis“ unter Eigenschaften — Skripte dein Script eingefügt. Auch bei mir funktioniert das Script in der Console. Der Value im Bereich Objekte wurde beim Betätigen der Schaltfläche von 0 nach 1 geändert. Trotzdem schaltet die Steckdose nicht.

      Antwort
      • 30. Oktober 2018 um 6:30
        Permalink

        Moin Jörg,
        ist das evtl. ein Reichweiten-Problem? Bitte prüfe mal ob es in der Nähe besser funktioniert. Zudem mal ausprobieren ob es funktioniert, wenn Du den Befehl direkt unter den PI (Hostsystem) in der Konsole ausführst.

        Viele Grüße,
        Matthias

        Antwort
        • 7. November 2018 um 22:28
          Permalink

          Direkt am Raspberry ausgeführt funktioniert es. Ich habe aber eine andere Spur. Wenn ich dem Script ein einfaches Lampen Widget (An / Aus) zuweise funktioniert es. Wie unterscheiden sich deine Schalter von den „normalen“ Lampe an Schalter?

          Antwort
          • 8. November 2018 um 6:41
            Permalink

            Danke für Deine Rückmeldung. Was passiert denn auf der Ebene der Objekte (Datenpunkte), wenn Du den Button aus dem Artikel verwendest. Werden die Datenpunkte richtig gesetzt? Eigentlich sollte das exakt das gleiche Verhalten des „normalen“ Schalters besitzen.

  • 7. September 2018 um 14:14
    Permalink

    Hallo,

    gibts denn ein Bild mit angelöteter Antenne?

    Nach dem anlegen der Aktoren kam ich leider auch nicht weiter.

    Antwort
    • 7. September 2018 um 16:41
      Permalink

      Hallo, ich habe gerade den Artikel um das Foto erweitert.

      Antwort
    • 7. September 2018 um 16:42
      Permalink

      Im nächsten Schritt einfach ein weiteres Skript anlegen und den Code mit den On(…) Anweisungen einfügen. Dann das Skript auf Aktiv umstellen und fertig 🙂

      Antwort
  • 15. Oktober 2018 um 21:04
    Permalink

    Hallo Matthias,
    dein Artikel war sehr inspirierend für mich. Hat alles super geklappt.
    Vielen Dank!
    Auf diese Art kann ich jetzt meine Schaltsteckdosen mit einem Hue Bewegungsmelder schalten.
    Den Bewegungsmelder lese ich mit node red aus und schalte bei einer Bewegung die Schaltsteckdosen.
    Gruß Kalle

    Antwort
    • 16. Oktober 2018 um 18:57
      Permalink

      Hallo Kalle, cool, danke für Dein Feedback! 🙂

      Antwort
  • 26. Oktober 2018 um 7:58
    Permalink

    Hallo Matthias,

    kann man auch das ganze mi einem Broadlink pro realisieren ?
    Ich habe gelesen, dass es gehen soll. Allerdings würde ich vor dem Kauf gerne wissen wie der Kommunikationsweg ist.
    Läuft es über Wlan und wie muss man das konfigurieren. Vielleicht kannst Du ein kleines Tutorial machen.

    Mario

    Antwort
  • 19. November 2018 um 14:34
    Permalink

    Hallo Matthias,

    wo muss ich die 3 Aktoren anlegen?

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

    und wo das javaskrip.0?

    Antwort
    • 21. November 2018 um 19:14
      Permalink

      Hallo,
      die Aktoren müssen als Datenpunkt anlegt sein. Also entweder das Script von mir einmal ausführen oder die Datenpunkte manuell anlegen. Du musst dafür natürlich den JS-Adapter installiert haben.

      Antwort
      • 25. November 2018 um 19:15
        Permalink

        Hallo Mtthias,

        leider komme ich damit nicht weiter.
        Wo muss ich die Aktoren als Datenpunkt anlegen?
        Den JS-Adapter habe ich installiert, wie fühe ich dein Skript aus?
        Gibt es eine Punkt für Punkt Anleitung, ich bin noch recht neu mit iobroker.
        Gruß Klaus

        Antwort
        • 26. November 2018 um 7:09
          Permalink

          Moin Klaus,

          dann schaue Dir doch bitte mal die JavaScript Artikelserie an. Dort erkläre ich den Editor und auch wie Scripts angelegt und ausgeführt werden können.

          Antwort
  • 20. November 2018 um 16:16
    Permalink

    Hallo,

    ich brauche mal Hilfe.
    Die Aktoren schalten 0 und 1 ohne Probleme.
    Aber wie genau werden die on Scripts mit dem exec Befehl eingebunden und wo kommen diese hin.
    Ich habe diese unter 433MHZ_Aktoren als Script zwei angelegt und gestartet.
    Aber leider schaltet nichts, im Raspi kann ich mit den Kommandos schalten.

    Gruß
    Thrsten

    Antwort
    • 4. Dezember 2018 um 19:07
      Permalink

      Hallo,

      bitte schaue Dir mal vorab die Artikelserie „ioBroker JavaScript“ an, dort findest Du die Antworten auf Deine Fragen 🙂 Ansonsten nochmals Bescheid geben.

      Antwort
  • 22. November 2018 um 20:41
    Permalink

    Hallo,
    wo finde ich den JS-adapter bzw. ist die genaue Bezeichnung?

    Antwort

Schreibe einen Kommentar

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

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere