Homematic schaltet 433MHz Baumarkt-Steckdosen

Die Homematic-Funksteckdosen sind eine tolle Sache und auch sicherlich bei vielen Anwendungen die erste Wahl.
Möchte man mehrere Geräte schalten, so summieren sich die Steckdosen auch ganz schnell und dies schlägt auch auf den Geldbeutel.
Geht es um kleinere Anwendungen wie z.B. die Weihnachtsbaumbeleuchtung, bei der man auf Leistungsmessung, Sicherheit und einer bidirektionalen Funkverbindung verzichten kann, so tun es auch manchmal billige 433MHz Funksteckdosen aus dem Baumarkt. Da kostet ein 3er-Set gerade mal ~20,- EUR.
Diese sind zwar eigentlich nicht mit der Homematic kompatibel, lassen sich jedoch mit ein paar Bastelstunden leicht an die Homematic koppeln und optional sogar mit Alexa steuern.
Wie das funktioniert, möchte ich hier beschreiben.

Voraussetzung: Lauffähige ioBroker Installation (auf Raspberry Pi)

-> ioBroker auf Raspberry Pi installieren

Los gehts!

Die richtigen 433MHz Funksteckdosen

Dieses Tutorial bezieht sich auf 433MHz Funksteckdosen mit DIP-Schalter, bei denen man den Hauscode und ggf. auch den Steckdosencode selbst wählen kann.

  • In meiner Umgebung nutze ich die Elro AB420S (Indoor) und AB400WD (Outdoor) Steckdosen mit 10 DIP-Schaltern.
    Hierbei wird mit den ersten 5 Schaltern der Hauscode und mit den restlichen 5 Schaltern (6-10) der Steckdosencode eingestellt.
    So ergibt sich im folgenden Beispiel der Hauscode 10101, welcher sich einfach einstellen lässt in dem man die eingeschalteten Schalter mit 1 und die ausgeschalteten Schalter mit 0 aufschreibt. Die nächsten 5 Schalter haben dann die Werte 1,2,3,4,5 bei diesen nur ein Schalter eingeschaltet werden darf. Im Beispiel wäre dies also der 3. Schalter(8), was den Steckdosencode 3 ergibt.

    Homematic 433MHz Steckdosen

  • Etwas einfacher geht es mit Steckdosen, welche man von Amazon beziehen kann, bei denen nur der Hauscode eingestellt wird und der Steckdosencode fest vergeben ist.

433MHz Funkmodul installieren

Benötigt wird ein 433MHz Funkmodul, welches hier bei Amazon für kleines Geld zu kaufen gibt.
Dieses ist genau wie hier am Beispiel eines Raspberry Pi 3 gemäß diesem Schaltplan mittels Steckbrücken weiblich-weiblich zu verbinden.
Dabei werden die Pins VCC an 5V+ / GND an GND / DATA an GPIO17 des Raspberrys verbunden.
Mittels eines 17cm langen Drahts an Lötpunkt ANT angelötet, kann eine deutlich höhere Reichweite erzielt werden. Die 17cm entsprechen Lambda/4 bei 433MHz. Haltet diese Länge unbedingt ein, da es sonst zu einem ungünstigen Stehwellenverhältnis kommt und somit das Modul beschädigt wird! In den meisten Fällen wird eine zusätzliche Antenne allerdings nicht benötigt.

Homematic 433MHz Schaltplan

Benötigte Linux-Pakete installieren

Mit Hilfe des Programms Putty auf dem Raspberry Pi per SSH einloggen

  • Putty starten
  • Homematic Bluetooth Putty
    Unter Host/IP den Hostnamen oder die IP-Adresse eurer ioBroker-Insallation eintragen
    Port 22 / SSH
    Open
  • Benutzernamen und Passwort eingeben
  • Hat sich die Console erfolgreich geöffnet, können folgende Befehle eingegeben werden:
    sudo apt-get update
    sudo apt-get install wiringpi
    sudo apt-get install git-core
    cd /opt
    sudo git clone git://github.com/xkonni/raspberry-remote.git
    cd raspberry-remote
    sudo make send
    

    Damit holt sich der APT-Paketmanager die neuesten Source-Listen und installiert die Pakete wiringpi und git-core.
    Anschließend wird von Github das Programm Raspberry-Remote heruntergeladen und kompiliert.
    Hat alles erfolgreich geklappt, kann mit den folgenden Befehlen überprüft werden, ob alles funktioniert:
    Einschalten

    sudo ./send 10101 3 1

    Ausschalten

    sudo ./send 10101 3 0

    Hierbei entspricht 10101 des Hauscodes aus dem obigen Beispiel und 3 des Steckdosencodes. Die Zahl am Ende beschreibt 1 zum Einschalten und 0 zum Ausschalten.
    Abschließend kann die Console mit dem Befehl exit geschlossen werden.

  • Homematic Variablen anlegen

    Quicktipp: Variable anlegen
    Es wird pro Steckdose eine Variable benötigt.

    • 433MHz-Steckdose3
      Name:433MHz-Steckdose3 Typ: Logikwert Werte: wahr = An / falsch = Aus
      Homematic 433MHz Variable

    Virtuelle CUxD-Schalter anlegen

    Es wird pro Steckdose ein virtueller Schalter benötigt.
    Voraussetzung ist eine lauffähige CUxD Installation mit Exec-Gerät Konfiguration
    TIPP: Installation CUxD-Addon

    • Die CUxD Systemsteuerung aufrufen unter dem Webinterface deiner CCU2 -> Einstellungen -> Systemsteuerung -> CUxD-Daemon
    • Dort unter Geräte ein neues Gerät folgenden Typs anlegen:
      Homematic 433MHz CUxD-Schalter erzeugen
      und anschließend auf Gerät auf CCU erzeugen klicken.
    • Nun befindet sich im Posteingang auf der Homematic CCU2 Startseite unter Geräte anlernen ein neues Gerät
      Homematic 433MHz Schalter
      Mit einem Klick Fertig ist die Geräteinstallation abgeschlossen.


    Homematic Programme anlegen

    Quicktipp: Programm anlegen
    Es wird pro Steckdose ein Programm benötigt.

    • 433MHz-Steckdose3-SchaltenHomematic 433MHz Programm erzeugen
      (Ich habe mich bewusst entschieden auf Aktualisierung auszulösen, da die Variable auch aus anderen Wegen geschaltet werden könnte. Auf Änderung auslösen funktioniert natürlich genauso.)
      Hierbei ist zu beachten, dass nach einer Variablenänderung immer ein HM-RCV-50 BidCos-RF:50 Tastendruck kurz hintergeschickt wird. Dies veranlasst den ioBroker den aktuellen Variablenstatus abzufragen. Andernfalls dauert es eben einige Sekunden bis ioBroker diese Änderung merkt.
      Damit dies auch funktioniert, ist im ioBroker hm-rega Adapter das Polling mit diesem Trigger zu konfigurieren.
      ioBroker Rega Polling Konfiguration

    ioBroker Adapter

  • Die iobroker.Admin Seite (http://deine-iobroker-ip:8081) aufrufen
    • ioBroker Javascript Adapter hinzufügen
      Homematic Javascript Adapter
      mit + wird der Adapter hinzugefügt.


    ioBroker Script

  • Bevor wir das Script einfügen können, müssen wir zuerst den Reiter SCRIPTE in der Ansicht anzeigen lassen.
    Dies geschieht über das Icon ioBroker Javascript und anschließendem Klick auf Ansicht -> Scripte.
    Ist der Reiter Script jetzt zu sehen, kann der Bearbeitungsmodus mit erneutem Klick auf das Symbol beendet werden.

  • Homematic Javascript
    Wechseln wir nun zum Reiter Scripte.
    Anschließend wird per Klick auf das Icon ioBroker Javascript NEU ein neues Script vom Typ Javascript erstellt.
    Diesem geben wir einen sinnvollen Namen (z.B. 433MHZ-Steckdosen) und fügen folgenden Code ein:

    // ioBroker-Script für Homematic schaltet 433MHz Baumarkt-Steckdosen by Homematic-Guru.de
    // https://homematic-guru.de/homematic-schaltet-433mhz-baumarkt-steckdosen
    var pfad = "/opt/raspberry-remote/"; // Pfad zum Raspberry-Remote
    var hc = "10101"; // Hauscode der Steckdosen
    
    // Nun wird pro Steckdose eine Zeile dupliziert und die Werte Variablen-ID + Steckdosennummer angepasst.
    on('hm-rega.0.12345', function(obj) { exec(pfad+'./send '+ hc +' 1 '+ ~~obj.newState.val); });
    on('hm-rega.0.12346', function(obj) { exec(pfad+'./send '+ hc +' 2 '+ ~~obj.newState.val); });
    on('hm-rega.0.12347', function(obj) { exec(pfad+'./send '+ hc +' 3 '+ ~~obj.newState.val); });
    // Script Ende
    
    

    Jetzt werden noch ein paar Parameter angepasst.
    pfad: Steht für den Pfad, in dem sich das Programm Raspberry-Remote befindet. Wurde es gemäß dieser Anleitung installiert, ist hier nichts zu ändern.
    hc: Steht für den eingestellten Hauscode der Steckdosen.

    In diesem Beispiel ist das Script für 3 Steckdosen aufgebaut. Reagiert wird auf 3 verschiedene Variablen mit 3 verschiedenen Steckdosen.
    Werden weitere Steckdosen hingefügt oder entfernt, so sind die Zeilen jeweils zu kopieren oder ggf. zu löschen.
    Angepasst wird dann jeweils die Homematic Variablen-ID (z.B. hm-rega.0.12347) und die Steckdosennummer (z.B. 3).
    Die dazu jeweiligen IDs findet man im ioBroker unter Objekte.
    ioBroker Objekte 433MHz

    Ist alles soweit erledigt, kann das Script gespeichert und gestartet werden.

  • 433MHz Steckdosen über Homematic schalten

    Hat alles geklappt, können die einzelnen Steckdosen jetzt über die virtuellen Schalter geschaltet werden.
    Mit Homematic 433MHz Steckdosen schalten

    Fertig!

    Ich möchte hier am Schluss noch erwähnen, dass diese Anleitung natürlich auch für andere 433MHz-Geräte als nur Steckdosen adaptierbar ist.
    Viel Spaß beim Schalten!

    Verwendete Hardware

    Funktionsweise Homematic 433MHz Funksteckdosen

    Sobald der virtuelle Taster in der Homematic betätigt wird, wird das Homematic Programm ausgeführt, welches die zuvor angelegte Homematic Variable umschaltet und anschließend den ioBroker zum Polling antriggert.
    Der ioBroker holt dann den aktuellen Wert der Variable von der Homematic ab und setzt diesen in seinem eigenen Variablen Objekt um.
    Das ioBroker Script reagiert auf die Änderung des Wertes, und führt das Raspberry-Remote Programm mit den eingestellten Parametern zusammen mit dem übergebenen Wert aus. Das Raspberry-Remote schickt dann diesen Befehl an das 433MHz-Modul, welches dann das Senden eines Befehls an die jeweilige Steckdose übernimmt.


    Warning: preg_match(): Compilation failed: invalid range in character class at offset 11 in /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php on line 526

    Warning: preg_match(): Compilation failed: invalid range in character class at offset 11 in /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php on line 526

    Warning: preg_match(): Compilation failed: invalid range in character class at offset 11 in /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php on line 526

    Fatal error: Uncaught Exception: Template 'templates/form/web/widgets/#type.html' not found ! in /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php:723 Stack trace: #0 /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php(454): WYSIJA_help_render_engine->_loadTemplate('templates/form/...') #1 /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php(169): WYSIJA_help_render_engine->_parse('\n{include file=...') #2 /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/form_engine.php(756): WYSIJA_help_render_engine->render(Array, 'templates/form/...') #3 /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/form_engine.php(638): WYSIJA_help_form_engine->render_web_body() #4 /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/views/front/widget_nl.php(160): WY in /homepages/33/d683611508/htdocs/app683611566/wp-content/plugins/wysija-newsletters/helpers/render_engine.php on line 723