MQTT - Schritt für Schritt: MQTT -> Loxone

Voraussetzung

  • Das MQTT-Gerät ist fertig eingerichtet: Einrichtung am MQTT-Device
  • Eine Subscription für das MQTT-Gerät ist eingerichtet
  • Das MQTT-Gerät sendet Daten

Übertragung per HTTP (empfohlen)

Im Plugin die "Incoming Overview" öffnen. Dort den Bereich "HTTP Virtual Inputs" öffnen:

Die Daten werden automatisch aktualisiert.

Bei der Übertragungsmethode HTTP wird per HTTP Webservice der Wert genau in einen virtuellen Eingang (oder virtuellen Texteingang) geschrieben, dessen Name dem hier aufgelisteten Namen entspricht. Der Name setzt sich aus dem Topic des Geräts zusammen, wobei Schrägstriche ( / ) in Underscores ( _ ) umgewandelt werden (Loxone erlaubt keine Schrägstriche im Namen eines Bausteins).

 Nehmen wir das Beispiel aus der Tabelle shellies_shellyswitch-32BA7F_relay_1 (das zweite Relais eines Shelly2):

  • In der Loxone Config auf "Virtuelle Eingänge" klicken
  • Oben "Virtueller Eingang" klicken (soll Text angezeigt werden: "Virtueller Texteingang" verwenden)

  • Eigenschaften festlegen:
    • Bezeichnung: Copy/Paste aus der Tabelle - die Bezeichnung muss exakt übereinstimmen
    • Beschreibung: Hier kannst du eine sprechende Beschreibung angeben (Bezeichnung? Beschreibung? → "Bezeichnung" und "Beschreibung" von Objekten )
    • Als Digitaleingang verwenden: NEIN;   Achtung: Dies gilt immer, auch wenn der Eingang nur die "digitalen" Zustände 0 oder 1 kennt. 
    • Bei der Validierung darauf achten, dass der Wert nicht außerhalb des eingestellten Bereichs liegt.
    • Achtung! Der am Miniserver verwendete loxberry-Benutzer muss explizit Rechte auf den neu angelegten VI haben. Du musst dem Benutzer Rechte geben.
      • Wenn der User keine Rechte auf den VI hat, zeigt das MQTT Gateway bei diesem Ausgang "HTTP 403 Possibly Access Denied" an.

Den erzeugten virtuellen Eingang auf eine Seite ziehen, im Miniserver speichern und, nachdem der Miniserver neu gestartet wurde, eine Wertänderung am MQTT-Gerät auslösen.

Beachte, dass das MQTT-Gateway nur Änderungen überträgt. 

Übertragung per UDP (alternativ)

Im Plugin die "Incoming Overview" öffnen. Dort den Bereich "UDP Transmissions" öffnen:

Die Daten werden automatisch aktualisiert.

Die Tabelle listet links die Daten, und in der zweiten Spalte direkt die Befehlserkennung für den jeweiligen Wert.

In Loxone muss zuerst ein "Virtueller UDP Eingang" angelegt werden. Darin wird dann pro Datensatz ein "Virtueller UDP Eingang Befehl" angelegt:

Erzeugen des Virtuellen UDP Eingangs

Eigenschaften des virtuellen UDP-Eingangs

  • Einen beliebigen Namen festlegen
  • UDP Empfangsport ist standardmäßig 11883 (Einstellung im Plugin unter der Miniserver-Auswahl)

Erzeugen von Virtuellen UDP Eingangs-Befehlen

Diese Schritte wiederholst du für jeden Wert, den du im Miniserver anlegen möchtest. Beachte, dass du mit UDP keine Texte darstellen kannst!

  • Den zuvor erzeugten "Virtuellen UDP Eingang" markieren
  • Oben auf "Virtueller UDP Eingang Befehl" klicken.

Der neue Befehl erscheint jetzt im Baum innerhalb des Virtuellen UDP-Eingangs.

Danach bearbeitest du die Eigenschaften des Befehls:

  • Gib eine sprechende Bezeichnung ein (du kannst nehmen was du willst, das hat nichts mit der Datenübertragung zu tun)
  • Befehlserkennung: Kopiere den Text der Incoming Overview der Spalte "Command Recognition" in die Befehlserkennung des Befehls.
  • Als Digitaleingang verwenden: NEIN
  • Alle anderen Einstellungen kannst du nach Belieben konfigurieren

Den Befehl auf eine Seite ziehen, im Miniserver speichern und voilà:

Beachte

  • Ein UDP-Eingangsbefehl kann keine Texte verarbeiten. 
  • Wenn Texte übertragen werden kannst du statt \v die Erkennung \1 verwenden, um den ASCII-Code des Zeichens zu lesen (siehe Loxone-Dokumentation)
  • Wenn Texte empfangen werden, kannst du für bekannte Texte Conversions im Plugin erzeugen. Damit werden Texte zu Zahlen umgewandelt, um diese z.B. in einem Status-Baustein auszuwerten.
  • Das Gateway überträgt nur Änderungen.
  • Im Zweifelsfall kannst du im Loxone UDP-Monitor schauen, ob und welche Daten übertragen wurden.
  • Jeder einzelne, angelegte Befehl belastet den Miniserver (er muss die Suche in allen Befehlen durchführen).
  • Die Übertragung per HTTP ist für den Miniserver schonender als per UDP, da keine Suche/Befehlserkennung stattfinden muss.
  • Die angezeigten Virtuellen Inputbezeichnungen dürfen nicht in der LoxoneConfig als Bezeichnungen für Virtuelle Ausgänge verwendet werden

Conversions erstellen

Conversions (dt. "Konvertierungen") ermöglicht es, von MQTT-Geräten eingehende Texte in Werte umzuwandeln. Loxone kann (außer Anzeigen) mit Texten nicht wirklich umgehen. Wenn jedoch Geräte Stati senden, wie beispielsweise "Connected" oder "Disconnected", sollte das möglichst einfach im Miniserver auswertbar sein.

Das MQTT-Gateway bietet eine Umwandlung von Texten in Zahlen an. Diese Zahlen können im Miniserver leicht verarbeitet werden.

Im Screenshot ein Beispiel von ein paar Conversions:

Beim konkreten Beispiel handelt es sich um Enocean Fenstergriffe, die mit EnoceanPi in FHEM eingebunden sind. Mit der MQTT_GENERIC_BRIDGE werden die Stati an den Broker und das Plugin übergeben.

Die Enocean-Fenstergriffe senden per MQTT, je nach Stellung, die Stati "open", "tilted", "open_from_tilted" oder "closed" (entnommen aus der "Incoming Overview".

Mit diesen Texten kann der Miniserver nichts anfangen (außer sie in einem virtuellen Text-Eingang anzuzeigen), es soll damit aber Logik abgebildet werden.

Mit der oben angeführten Conversion werden die Stati in Zahlen umgerechnet (3, 2, 3, 1), diese Zahlen werden statt open/tilted/open_from_tilted/closed an den Miniserver übertragen. 

Die hier gewählten Werte entsprechen im Übrigen genau Werten, die der Loxone-Baustein "Fenster- und Türüberwachung" als analogen Eingang erwartet.

Eine durchgeführte Conversion wird direkt in der "Incoming Overview" dargestellt. Wird dort weiterhin ein Text angezeigt, hat die Conversion nicht funktioniert.