Seit dem Firmware Version 1.10.x kann die ESENTA SIAS per MQTT Informationen weitergeben. Das ist natürlich ein perfekter Weg zur Einbindung in FHEM, denn ich gleich mal ausprobiert und für Euch dokumentiert habe.

Welche Informationen sendet die ESENTA SIAS per MQTT?

Laut ESENTA sind mit der Firmware Version 1.10.x folgende Möglichkeiten vorhanden:

  • Bewegungserkennung
  • Authentifizierung von Bewohnern über Fingerprint, NFC, PIN Code, App oder SIP
  • Beim Auslösen der Klingel bzw. Statusänderung der Klingel
  • QR Codes, die keinem Zugangscode entsprechen, um diese an anderen Stellen auszuwerten

Aus meiner Sicht ist das für eine erste Version der MQTT Schnittstelle sehr gut, da gerade die ersten beiden Fälle schon die wichtigsten meiner Szenarien abdecken und so kann ich getrost über eine Einbindung via Homematic Schließerkontakt  (war ursprünglich geplant) verzichten.

Wie bindet man die ESENTA SIAS in FHEM ein?

  • Falls noch nicht vorhanden einen MQTT2 Server in FHEM einrichten und direkt mit einem Passwort absichern

    1
    2
    3
    4
    
    define myBroker MQTT2_SERVER 1883 global
    define allowed_MQTT2 allowed;
    attr allowed_MQTT2 validFor myBroker;
    attr allowed_MQTT2 basicAuth { "$user:$password" eq "mqttuser:secret" };
    
  • In der Esenta SIAS Weboberfläche unter Smarthome, die MQTT Schnittstelle aktivieren und die Logindaten hinterlegen. Danach überprüfen, ob der Status “verbunden” ist

    MQTT Konfiguration in der ESENTA SIAS Weboberfläche

  • Zurück in FHEM wird nun ein MQTT Device automatisch angelegt, sobald zumindest eine Bewegung von Eurer Türsprechstation erkannt wird, da per Default das autocreate Attribut des MQTT Servers auf “simple” gesetzt ist. Sollte noch kein Device vorhanden sein, dann löst eine Aktion aus wie bspw. eine Klingeltaste in der Türstation zu drücken.  Das Device wird so angelegt, dass es nun auf die MQTT Client ID der Türstation horcht. Die Client ID der ESENTA SIAS sieht etwa so aus “SI_AS1100V2_XXXXX”, wobei XXXXX als Platzhalter zu verstehen ist.

    Automatisch erstelltes MQTT Device der ESENTA SIAS in FHEM

  • Umbenennen des Devices (XXXXX durch eigene ID ersetzen) und ggf. einem Raum, etc. zuordnen.

    1
    
    rename MQTT2_SI_AS1100V2_XXXXX MQTT2_EsentaSias;
    
  • Entsprechend der per MQTT umgesetzten Punkte (wie oben beschrieben) gibt es in MQTT nun jeweils ein Topic hierzu (motion, authentification, ring und qrcode). Ich habe es für sinnvoll gehalten, die vier Topics als einzelne MQTT Devices in FHEM zu erstellen. Man kann dies natürlich manuell machen oder alternativ über folgenden Befehl (XXXXX durch eigene ID ersetzen). Dadurch wird dynamisch für jedes neue Topic ein Device angelegt.

    1
    
    set MQTT2_EsentaSias bridgeRegexp esenta/SI-AS1100V2-XXXXX/([A-Za-z0-9]*)[/]?.*:.* "EsentaSias_$1"
    
  • Damit dies tatsächlich geschieht sollte man sich einmal zur Türstation bewegen, sich authentifizieren und einmal klingeln. Falls gewünscht natürlich auch einen QR Code einscannen (habe ich weggelassen). Das Ergebnis sieht dann wie folgt aus:

    Automatisch erstellte MQTT Devices basierend den Topics der ESENTA SIAS

  • Nun können wir die Werte die MQTT liefert auswerten. Die Werte werden als Readings angelegt. Im Nachfolgenden ist nun also beschrieben, wie wir den das state Attribut des jeweiligen Devices setzen - beginnen wir beim Bewegungsmelder. Durch Definition des stateFormat Attributs können wir in den state des FHEM Devices schreiben, ob aktuell eine Bewegung erkannt wurde oder nicht. Dies geschieht durch folgenden Befehl:

    1
    2
    3
    4
    5
    
    attr MQTT2_EsentaSias_motion stateFormat {
    if(ReadingsVal("$name","value",0) eq "true") {
    sprintf("motion");;
    } else {sprintf("no_motion");; }
    }
    
  • Weiter geht es mit der Klingel. Ich gebe zu, hier habe ich es mir leicht gemacht, da ich nur ein Klingelschild definiert habe. Interessant zu wissen ist, dass es folgende Statis gibt: ringing, established, hangup, timeout . Diese kann man natürlich wunderbar in allen möglichen Anwendungsfällen weiterverarbeiten.

    1
    
    attr MQTT2_EsentaSias_ring stateFormat status;
    
  • Zuletzt noch die Auswertung der Zutrittskontrolle. Ich finde es hier sinnvoll im state stehen zu haben, wer sich zuletzt angemeldet hat. Allerdings bekommt man per MQTT aus der ESENTA SIAS nur IDs (User, Fingerprint, NFC Card, …) geliefert, deren Zuordnung man in der Weboberfläche der ESENTA SIAS unter Benutzer einsehen kann. Zur Umwandlung und weiteren Verwendung in FHEM eignet sich das eventMap Attribut:

    1
    2
    
    attr MQTT2_EsentaSias_authentication stateFormat userid;
    attr MQTT2_EsentaSias_authentication eventMap /20:Paul/21:Anja;
    

Das war es zur initialen Einbindung der ESENTA SIAS in FHEM. Ich persönlich finde die Umsetzung per MQTT wirklich top und sinnvoll - das machen nicht viele so.