Das MQTT-Plugin ermöglicht die Kommunikation mit einem MQTT-Broker (Server) im Netzwerk. Der Miniserver agiert immer als “Client” und unterstützt das Empfangen (“Subscribe”) und Senden (“Publish”) von Daten an/vom Broker.
MQTT (Message Queuing Telemetry Transport) ist ein einfaches und leichtgewichtiges Protokoll, das für die Kommunikation zwischen Geräten verwendet werden kann. Es wird vor allem in der Welt des “Internet of Things (IoT)” genutzt, z. B. um Daten von Sensoren zu sammeln oder smarte Geräte zu steuern.
Somit wird ein externer Broker benötigt, in dessen System der Miniserver integriert werden kann. Der Miniserver kann dabei bis zu 16 Subscriptions sowie 16 Publish-Eingänge und -Ausgänge verwalten.
Bitte beachten Sie, dass Miniserver Gen. 1 nicht unterstützt werden. |
Inhaltsverzeichnis
Objekt erstellen und einrichten↑
Das MQTT Plugin kann über die Netzwerkperipherie integriert werden:
Eine Plugin Instanz kann sich immer nur zu einer Broker-Instanz verbinden und besitzt daher folgende Einstellungen:
Daten senden / empfangen↑
Um Daten vom Broker zu empfangen (Subscription) bzw. zum Broker zu senden (Publish) müssen IO-Objekte unter dem Plugin angelegt werden:
Senden/ Empfangen operiert immer auf sog. Topics, welche einen Pfad/Adresse zur Daten-Identität darstellen. Subscriptions können auf mehrere Topics gleichzeitig “hören” (Wildcards), Publish unterstützt keine Wildcards.
Beispiel für ein Topic
Möchte man an einen Temperatursensor im Wohnzimmer Daten senden, könnte das entsprechende Topic wie folgt lauten:
haus/wohnzimmer/temperatur
Subscription:
Subscribe (Empfangen):
Empfängt Wert-Änderungen auf dem angegebenen Topic vom Broker.
Ein anderes Gerät oder eine Anwendung kann dieses Topic abonnieren, um die gesendeten Nachrichten zu empfangen. Beispielsweise könnte ein Thermostat das Topic haus/wohnzimmer/temperatur abonnieren, um die Temperaturdaten zu erhalten.
Werden JSON Daten etc. empfangen, empfiehlt sich die Verwendung des “Befehlserkennungs-Bausteins” um den Analog-Wert aus Daten zu extrahieren.
|
Wertänderungen einer Subscription werden maximal alle 2 Sekunden ausgewertet. Wenn die letzte Wertänderung vor weniger als 2 Sekunden empfangen wurde, werden weitere Änderungen zwischengespeichert. Nach Ablauf des 2-Sekunden-Intervalls wird die zuletzt empfangene Änderung verarbeitet. Diese Maßnahme dient zur Entlastung des Miniservers, insbesondere wenn mehrere Änderungen pro Sekunde an ein Topic gesendet werden. |
Wildcards bei Subscriptions:
Um nicht jedes Topic einzeln abonnieren zu müssen, bietet MQTT sogenannte Wildcards, die es ermöglichen, mehrere Topics gleichzeitig zu abonnieren:
$$B::Single-Level Wildcard (+):$ Ersetzt genau eine Ebene im Topic-Pfad.
Beispiel:
haus/+/temperatur
Dieses Abonnement empfängt Nachrichten von allen Räumen im Haus, die Temperaturdaten senden, wie z.B.:
haus/wohnzimmer/temperatur
Haus/küche/temperatur
Multi-Level Wildcard (#): Deckt alle folgenden Ebenen im Topic-Pfad ab und muss am Ende stehen.
Beispiel:
haus/#
Dieses Abonnement empfängt alle Nachrichten, die mit haus/ beginnen, unabhängig von der Anzahl der folgenden Ebenen, wie z.B.:
haus/wohnzimmer/temperatur
haus/küche/luftfeuchtigkeit
haus/garage/auto/batterie
|
Wildcards können nur beim Abonnieren (Subscribe) verwendet werden, nicht beim Senden (Publish). Das bedeutet, dass ein Gerät Nachrichten nur an ein spezifisches Topic senden kann und nicht an mehrere Topics gleichzeitig. |
Publish:
Publish (Senden):
Ein Gerät (Client) sendet eine Nachricht an ein spezifisches Topic. Im obigen Beispiel würde der Temperatursensor die aktuelle Temperatur an haus/wohnzimmer/temperatur senden.
Sensoren↑
Kurzbeschreibung | Einheit |
---|---|
Subscription | Text |
Aktoren↑
Kurzbeschreibung | Einheit |
---|---|
Publish | Text |
Diagnose-Eingänge↑
Kurzbeschreibung | Beschreibung | Einheit | Wertebereich |
---|---|---|---|
Onlinestatus | Gibt an, ob das Gerät für den Miniserver erreichbar ist. Diagnose bei Air Geräten Diagnose bei Tree Geräten Diagnose bei Extensions |
Digital | 0/1 |
Eigenschaften↑
Kurzbeschreibung | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
Broker-Adresse | Netzwerkadresse des MQTT-Brokers | - | - |
Broker-Port | Netzwerkport des MQTT-Brokers (Standard: 1883) | 0...65535 | - |
Protokollversion | MQTT-Protokollversion, die vom MQTT-Broker unterstützt wird (Standard: MQTTv5) | - | - |
Client-ID | Die ID dieses MQTT-Clients. Die ID muss beim Verbinden mit dem MQTT-Broker eindeutig sein! Bei Verwendung des MQTTv3-Protokolls wird die ID auf 23 Zeichen gekürzt. | - | - |
Benutzername | Benutzername für die Authentifizierung beim MQTT-Broker. Leer lassen für anonyme Anmeldung (falls vom MQTT-Broker erlaubt). | - | - |
Passwort | Passwort für die Authentifizierung beim MQTT-Broker. Leer lassen für anonyme Anmeldung (falls vom MQTT-Broker erlaubt). | - | - |
Verwende SSL/TLS | Verwende eine SSL/TLS-Verbindung zum MQTT-Broker. | - | - |
Dienst überwachen | Wenn angehakt, werden Sie über den Systemstatus oder über den Cloud Mailer benachrichtigt, wenn dieser Dienst nicht mehr erreichbar bzw. offline ist. | - | - |