FHEM Tutorial-Reihe - Part 56: Sonoff RF-Bridge

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

Hier kommt ein Video, auf welches viele von Euch schon lange gewartet haben: Die Ansteuerung von Intertechno-Steckdosen über die RF-Bridge in fhem. Ich habe jetzt alle meine Intertechno-Lampen (welche ich vorher mit einem 868MHz-CUL geschaltet habe) gelöscht. Diese werden nun alle über die Bridge gesteuert. Dafür legen wir diverse Dummy-Devices an, zwei verschiedene Notify, welche das Ganze dann steuern werden. Auch, wenn Du kein Sonoff im Einsatz hast, bin ich mir sehr sicher, dass Du in diesem Video noch etwas lernen kannst. Immerhin wird hier sehr generisch gezeigt, wie man so ein Problem lösen kann, ohne für jedes Gerät ein DOIF oder Notify anlegen zu müssen.

Was wird benötigt?

  • Eine FHEM-Installation
  • Eine Sonoff-RF-Bridge (433 MHz), welche per MQTT integriert ist

Video

FHEM-Kurs

Befehle

define BridgeSonoff TASMOTA_DEVICE Bridge /SmartHome/Interface/%topic%/%prefix%
define WZ_SchrankLichtProxy dummy
attr WZ_SchrankLichtProxy userattr bridgeOn bridgeOff
attr WZ_SchrankLichtProxy DbLogExclude .*
attr WZ_SchrankLichtProxy bridgeOff 501014
attr WZ_SchrankLichtProxy bridgeOn 501015
attr WZ_SchrankLichtProxy setList on:noArg off:noArg
attr WZ_SchrankLichtProxy webCmd on:off
define n_SonoffBridgeCode notify BridgeSonoff:result-rfreceived-data:.* {}
attr n_SonoffBridgeSend alias Sonoff Bridge: RfCode per Bridge senden wenn an oder aus geschaltet wird

{
    fhem("setstate a:bridgeOff=" . $EVTPART1 . ":FILTER=STATE=on off");
    fhem("setstate a:bridgeOn=" . $EVTPART1 . ":FILTER=STATE=off on");
}
setstate WZ_SchrankLichtProxy on
list a:bridgeOff=501014:FILTER=STATE=off
define n_SonoffBridgeSend notify .*:(on|off) {}
attr n_SonoffBridgeSend alias Sonoff Bridge: RfCode per Bridge senden wenn an oder aus geschaltet wird

{
    if ($EVTPART0 eq "on") {
        my $bridgeOn = AttrVal($NAME, "bridgeOn", "");
        if ($bridgeOn ne "") {
            fhem("set BridgeSonoff cmd RfCode #" . $bridgeOn);
        }
    }

    if ($EVTPART0 eq "off") {
        my $bridgeOff = AttrVal($NAME, "bridgeOff", "");
        if ($bridgeOff ne "") {
            fhem("set BridgeSonoff cmd RfCode #" . $bridgeOff);
        }
    }
}

Das wars - ziemlich elegant, oder? Besonders den Teil mit dem devspec finde ich sehr spannend. So kann man sich sehr viel Programmierarbeit sparen. Wir lassen einfach fhem das richtige Gerät anhand des Attributes suchen und schalten dieses dann direkt an oder aus.


Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.