Der Artikel von Peter Handrich (https://gnulinux.ch/schaltzentrale-mit-einem-raspberry-pi-zero-w), welcher eine Web-Steuerung für seine Funksteckdosen gebaut hatte, hat mich dazu inspiriert, meine in die umgekehrte Richtung arbeitende RF-Wifi-Bridge kurz vorzustellen.
Ich hatte schon seit langer Zeit klassische 433Mhz-Funksteckdosen (mit indivudalisierbarem Code per "Mäuseklavier") in Verwendung, um Geräte stromlos zu schalten, deren Zuleitung schwer zugänglich war. Im Laufe der Zeit wurden mehrere Sets angeschafft, welche (mit verschiedenen Funk-Codes) im Parallelbetrieb liefen. Später entdeckte ich wesentlich kompaktere, per Tasmota-Flash lokal (im LAN) betreibbare Wlan-Steckdosen, die im Gegensatz zur klassischen Funk-Variante die Steuerung vom Handy aus ermöglichten. Diese waren einerseits bauartbedingt praktischer, da sie die Nachbarsteckdosen nicht blockierten (siehe Titelbild). Andererseits war es für spontanes Ein-/Ausschalten (von z.B. Lampen) gelegentlich umständlich, erst das Handy aus der Tasche kramen, es entsperren und anschließend per HTTP Shortcuts (https://f-droid.org/packages/ch.rmy.android.http_shortcuts) die betreffende Steckdose schalten zu müssen. Als ich dann noch mit einem Strom-Messgerät feststellte, dass die alten Funksteckdosen selbst ohne angeschlossenen Verbraucher zwischen 4 und 5 Watt (!) an Strom verbranten, während sich die Tasmota-WLAN-Steckdosen mit unter einem Watt begnügten, stand der Entschluss fest, alle noch vorhandenen Funksteckdosen durch die neuen WLAN-Steckdosen zu ersetzen.
Allerdings wollte ich nur ungern auf den Schalt-Komfort verzichten, welchen mir die Funkfernbedienungen geboten hatten. Also kam mir der Gedanke, ob man die von diesen ausgesandten Funksignale nicht irgendwie für die IP-Steckdosen "übersetzen" könne. Nach eingehender Recherche stellte ich fest, dass die auf den WLAN-Steckdosen laufende Firmware Tasmota auch das Auswerten von empfangenen RF-Signalen erlaubt (https://tasmota.github.io/docs/RF-Protocol/#receiving-rf-codes), was aber natürlich einen RF-Empfänger voraussetzt.
Da die WLAN-Steckdosen (auch in diesen sind ESP-Chips verbaut - deshalb können sie mit Tasmota geflasht werden) anscheinend nur schwierig zu öffnen waren und dies für den Flashvorgang per OTA nicht notwendig war, schied ein Anlöten eines RF-Empfängers bei diesen aus. Also erwarb ich einen ESP8266 und ein kleines RF-Modul (Sender/Empfänger), welches ich an dessen 4. GPIO-Port anschloss. Dieser muss in der Weboberfläche von Tasmota unter "Einstellungen" -> "Vorlage konfigurieren" als "RFrecv" eingestellt werden (siehe Bild oben). Das ganze verbaute ich in einem kleinen Plastik-Gehäuse (im Titelbild rechts außen), welches ich noch im Keller rumfliegen hatte. Anschließend tauchten in der Konsole von Tasmota Zeilen nach folgendem Schema auf:
RSL: RESULT = {"Time":"2026-XX-XXTHH:MM:SS","RfReceived":{"Data":"0xABCDEF","Bits":XX,"Protocol":XX,"Pulse":XXX}}
Nun hieß es testen, welche Codes bei Druck auf die jeweiligen Tasten der Funkfernbedienung empfangen werden. Hierbei war es aufgrund des diversen "Funk-Smogs" (diverse weitere Themometer, Fernbedienungen, etc. in der Nachbarschaft) hilfreich, die Taste etliche Sekunden gedrückt zu halten, so dass der eigene Code X mal hintereinander in den Logs auftauchte.
Nachdem alle Codes identifiziert und herausgeschrieben worden waren, ging es an das Erstellen der Regeln, welche basierend auf den per Funk eingegangenen Daten Web-Requests vermittels Tasmotas "WebSend"-Funktion (https://tasmota.github.io/docs/Commands/#wi-fi) auslösen. Dazu stellt Tasmota Regeln (rules) zur Verfügung, welche anhand aktueller, von angeschlossenen Modulen gemeldeter Stati Befehle ausführen können: https://tasmota.github.io/docs/Rules. Insgesamt sind 3 Regeln möglich, welche jedoch jeweils mehrere "On status=XY DO Befehl Endon"-Sequenzen beinhalten dürfen. Unter den in der umfangreichen Doku zahlreich vorhandenen Beispielen gab es bereits eines für einen RF-Repeater, wlcher empfangene Signale eins zu eins weiterleitete (https://tasmota.github.io/docs/Rules/#rf-repeater-ir-repeater). An diesem konnte ich mich bei der Erstellung meiner Regeln orientieren. Folgendes - in der Tasmota-Web-Konsole eingegeben - legt die benötigten Regeln an:
Rule1 on RfReceived#Data=0x123456 do websend [192.168.XXX.XXX] power1 on endon on RfReceived#Data=0x123457 do websend [192.168.XXX.XXX] power1 off endon on RfReceived#Data=0x123458 do websend [192.168.XXX.XXX] power1 on endon on RfReceived#Data=0x111154 do websend [192.168.XXX.XXX] power1 off endon
Rule2 on RfReceived#Data=0x123459 do websend [192.168.XXX.XXX] power1 on endon on RfReceived#Data=0x123410 do websend [192.168.XXX.XXX] power1 off endon on RfReceived#Data=0x123411 do websend [192.168.XXX.XXX] power1 on endon on RfReceived#Data=0x123412 do websend [192.168.XXX.XXX] power1 off endon
Anschließend müssen die regeln noch per "rule1 1 ; rule2 1" aktiviert werden. Um sie wieder zu deaktivieren wird anstelle der 1 eine 0 eingegeben. rule0 listet alle derzeit konfigurierten Regeln. Wenn mehrere Funkfernbedienungen vorhanden sind, welche mit verschiedenen Codes arbeiten, lassen sich auch noch mehr "On status=XY Do Befehl Endon"-Sequenzen in einer Regel unterbringen. Dabei ist jedoch zu beachten, dass es ein Zeichenlimit je Regel gibt, welches die Dokumentation derzeit mit "min. 1000 Zeichen" benennt.
Die o.g. WebSend-Befehle schalten das Tasmota-Gerät unter der jeweiligen IP-Adresse entsprechend der Beschriftung der Tasten auf der Funkfernbedienung ein/aus. Die Reaktionszeit liegt dabei - abhängig von der Antenne des Funkmoduls und der Umgebung (viel Metall, weitere Technik, andere Funksignale) - zwischen 0,5 und 1,5 Sekunden, welche man die Taste auf der Fernbedienung gedrückt halten muss.
Prinzipiell lassen sich so natürlich alle 433 Mhz-Funkprotokolle, die von Tasmota unterstützt werden, auswerten und "umfunktionieren". Der Garagentor-Öffner am Schlüsselbund hat noch Tasten frei? Einfach mal ausprobieren, ob Tasmota, dessen Tastendrücke ebenfalls registriert.
Titelbild: selbst
Quellen: im Text

