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

Überarbeiten

Gerne dürfen weitere Beispiele, auch mit Screenshots, unten mit aufgenommen werden.

Voraussetzungen

Einrichtung der UDP-Verbindung vom Miniserver zum MQTT-Gateway

Virtueller Ausgang

Adresse: /dev/udp/<LoxBerry-Hostname>/<udpinport> 

  • <LoxBerry-Hostname> ist z.B. loxberry, oder du verwendest ggf. die IP-Adresse.
  • <udpinport> ist der Port, den du bei den Plugin-Einstellungen unten als LoxBerry-Eingangsport eingestellt hast (nicht der Miniserver-UDP-Port). Standard ist 11884.

Virtueller Ausgang Befehl

Bezeichnung ist beliebig. Darf aber nicht einem abonniertem Topic entsprechen .

Bei Befehl bei EIN bzw. (wenn erforderlich) Befehl bei AUS wird das Kommando an das MQTT Gateway eingetragen:

publish <topic> <value>

retain <topic> <value>

Als Kurzform ist auch Folgendes möglich, und es entspricht einem publish:

<topic> <value>

Beispiel:

publish send/to/this/topic on

publish send/to/this/topic <v>

Die Schlüsselwörter publish/retain, das Topic und der Wert sind jeweils mit einem Leerzeichen getrennt. Das Topic darf kein Leerzeichen enthalten! Der Value selbst darf Leerzeichen enthalten, die vollständig übertragen werden, z.B.

publish send/to/this/topic Dieser Text wird komplett übertragen.

Das Loxone-Schlüsselwort <v> überträgt den Analogwert des Virtuellen Ausgang Befehls.

Den Haken bei "Als Digitalausgang verwenden" dann setzen, wenn ein Digitalwert übertragen wird (z.B on oder Off). Wird ein Analogwert übertragen (z.B. Dimmstufe 70 als <v>), den Haken nicht setzen. Hier ein Screenshot für den Ausgang eines Shelly1 als Digitalausgang:

Ausserdem ist auf diesem Screenshot noch die Variante mit dem vollen Befehl (also inkl. publish) zu sehen. Die Kurzform reicht aber in der Regel aus.

Das <Topic> ist exakt der Befehl, der vom Anbieter dokumentiert ist, in diesem Fall z.B. shellies/shellyswitch-32BA7F/relay/1/command und der <Value> ist der Befehl, der der Anbieter erwartet (bei Shelly on oder off).

Beispiel: Shelly2-Switch im Relay Mode

MQTT-Topics zum Senden von Befehlen beim Hersteller herausfinden: http://shelly-api-docs.shelly.cloud/#shelly-switch-mqtt

shellies/shellyswitch-<deviceid>/relay/<i>/command accepts on and off and applies accordingly

→ Schalten bei Shelly2-Relay Mode mit: shellies/shellyswitch-123abc/relay/1/command und Wert on oder off


Beispiel: Analogwert übermitteln

Im Befehl bei EIN kann, wie bei allen virtuellen Ausgängen, das Loxone-Schlüsselwort <v> verwendet werden, bzw. deren Derivate (z.B. <v.1> für eine Nachkommastelle usw.)

Befehl bei EIN: publish /statistic/temperature/Wohnzimmer <v.2>

Beispiel: Nach einem Miniserver-Neustart das Übermitteln der aktuellen Daten forcieren

Loxone bietet über seine Schnittstellen keinen Wert an, wann der Miniserver zuletzt neu gestartet wurde, daher weiß das MQTT-Gateway von sich aus nicht, ob die Daten neu übermittelt werden sollen. Mit einem UDP-Befehl kann dem MQTT-Gateway mitgeteilt werden, dass der Miniserver neu gestartet wurde.

Virtueller Ausgangsbefehl

Befehl bei EIN: reconnect

Aus den Loxone-Zeiten die Zeit "Startimpuls" ziehen, und mit dem "Reconnect"-Ausgang verbinden. Damit werden automatisch bei Miniserver-Neustart die Daten neu übertragen. Der Reconnect-Aufruf deaktiviert auch den Datencache, womit tatsächlich einmalig alle Daten neu übermittelt werden (danach ist der Cache wieder aktiv).

(Klicken zum Vergrößern)