MQTT
Das MQTT-Modul dient der Kommunikation mit einem MQTT Broker.
Folgende Funktionen werden unterstützt:
-
Nachrichtenversand an den Broker (Publish)
-
Nachrichtenempfang vom Broker (Subscribe)
-
Optional TLS Verschlüsselung
-
QoS und Retain Flag individuell pro Nachricht
Konfigurationsparameter
Connection
Die MQTT-Konfiguration beinhaltet die Definition der Zugangsdaten zu einem MQTT Server. Diese setzen sich zusammen aus den Angaben der IP, Benutzername und Passwort. Eine zusätzliche Verschlüsselung (TLS) ist möglich. Tabelle 1 enthält die Erläuterungen der einzelnen Konfigurationsparameter.
Parameter | Beschreibung |
---|---|
Enabled/Disabled-Switch |
Die Verbindung des Moduls lässt sich aktivieren oder deaktivieren. Ist das Modul inaktiv werden einlaufende Nachrichten verworfen. |
Hostname |
Broker Hostname oder IP-Adresse |
Client ID |
Client ID für die Client Zuordnung am MQTT Broker (s. MQTT-Spezifikation) |
Clean Session |
Wenn aktiviert, werden keine Client spezifischen Informationen (Subscribed Topics etc.) beim Broker gespeichert (s. MQTT-Spezifikation). Muss aktiviert sein, wenn Client-ID leer ist. |
Username |
Login Daten für den Zugriff auf den Broker |
Passwort |
Login Daten für den Zugriff auf den Broker |
Port |
Broker Port (TCP/IP). Wenn das Feld leer gelassen ist, werden die Standard Ports 1883 (ohne TLS) und 8883 (mit TLS) verwendet. |
Queue Size |
Größe der Queue, d.h. Anzahl der Nachrichten, die vorgehalten werden sollen. |
TLS |
Wenn aktiv, wird eine verschlüsselte Verbindung zum Broker aufgebaut. |
Allow untrused Certificates |
Allow untrusted Certificates: Verbindung zum Broker wird auch bei nicht vertrauenswürdigem Zertifikat herstellen. |
Nachrichten / Topics
Im Bereich MQTT Publishing wird definiert, welche Topics und Nachrichtenformate im Modul verarbeitet werden.
MQTT Server Topic
Parameter | Beschreibung |
---|---|
Topic Name |
Eingabe des Ziel Topic am Broker. Es kann auf definierte Platzhalter zugegriffen werden (siehe Tabelle 3). |
Default Message |
Wenn aktiv, wird das Retain Flag für die an den Broker übertragenen Nachrichten standardmäßig gesetzt. Die Einstellung wird überschrieben mittels Edge Message Header "retainFlag" (true/false) bzw. individuell für jede Nachricht (allgemeine MQTT Spezifikation). |
Um das Topic dynamisch zur Laufzeit anpassen zu können, kann auf die Platzhalter in der folgenden Tabelle zugegriffen werden. Der Platzhalter aus Spalte 1 wird mit geschweiften Klammern umschlossen (Whitespaces bedacht setzen), um verarbeitet zu werden.
Beispiel:
Ein Wert {year}/{month}/{header:source}/data
würde exemplarisch zu einem Laufzeit Topic extrahiert 2020/06/MaschineNameXY/data
.
Platzhalter | Beschreibung | Beispiel |
---|---|---|
"year" |
Kalenderjahr, vierstellig |
"2020" |
"month" |
Monat, zweistellig ggf. mit führender '0' |
"06" |
"day" |
Tag im Monat, zweistellig ggf. mit führender '0' |
"02" |
"hour" |
Stunde des Tages, zweistellig ggf. mit führender '0' |
"05" |
"minute" |
Minute der Stunde, zweistellig ggf. mit führender '0' |
"59" |
"second" |
Sekunde der Minute, zweistellig ggf. mit führender '0' |
"59" |
"ticks" |
siehe: Microsoft Docs |
|
"ext" |
Headers ext Feld |
|
"name" |
Headers name Feld |
|
"prefix" |
Headers prefix Feld |
|
"source" |
Headers Source Feld, sonst "any" |
"192.12.1.11" |
"scope" |
Headers Scope Feld, sonst "any" |
"pollgroup2" |
"hostname" |
Hostname des RoboGate Edge |
"RG-231889000100401" |
"header: <name>" |
Message Header Zugriff auf den Key name, sonst "any". Beispielsweise "{header:foo}". |
beliebiger String |
Edge Topics
Die Edge Topics bezeichnen die internen Nachrichtenkanäle. Die empfangenen MQTT-Nachrichten lassen sich durch die Definition der Topics in anderen RoboGate Edge-Modulen weiterverarbeiten.
Parameter | Beschreibung |
---|---|
New Topic |
Auswahl der abonnierten Topics, die in den Input-Modulen definiert wurden, die an den MQTT Broker übertragen werden sollen. |
MQTT Subscribing
Das RoboGate Edge hat die Möglichkeit, Nachrichten von einem MQTT Broker zu abonnieren. Einer MQTT Topic Expression (Quelle) kann ein Output Edge Topic (Ziel) zugewiesen werden. Von dort aus sind die Nachrichten für andere Module zugreifbar. Die Topic Expression ist nach MQTT-Spezifikation einzutragen.
Konfiguration in der UI
Nach Auswahl des Moduls MQTT auf der Startseite oder über die linke Menüleiste der RoboGate Edge UI kann das MQTT-Modul aufgerufen und konfiguriert werden.
Connection konfigurieren
Im ersten Schritt ist die Verbindung mit den oben beschriebenen Parameter zu konfigurieren. Anschließend können die gewünschten Topics im MQTT Publishing und MQTT Subscribing angelegt werden. Hierzu geben Sie die Namen der Topics, die das MQTT-Modul verarbeiten soll, bei den Input Edge Topics ein und definieren entsprechend Ihrer Anforderungen einen Topic Namen für den MQTT Server.
Nach Fertigstellung der Konfiguration des MQTT-Moduls kann diese gespeichert werden (Abbildung 1). Durch das Speichern der Modul-Konfiguration werden die Daten der ausgewählten Topics an den konfigurierten Client gesendet und stehen zur Auswertung z.B. im MQTT Explorer bereit (Abbildung 2).
Im Bereich "Module State" lässt sich erkennen, ob das Modul eine Verbindung zum MQTT Server herstellen konnte.
Topics löschen
Topics können aus der Konfiguration des MQTT-Moduls entfernt werden. Dazu muss das hinter dem zu löschenden Topic geklickt werden. Dadurch wird die markierte Zeile entfernt. Durch das anschließende Klicken auf den Speicher-Button (Diskette) wird die geänderte Konfiguration übernommen (Abbildung 3).
Konfiguration zurücksetzen
Über die Schaltfläche in der horizontalen Menüleiste lässt sich die komplette Konfiguration des Moduls auf Werkseinstellungen zurücksetzen. Nach einem Klick auf die Schaltfläche folgt ein Bestätigungsdialog mit "Yes" und "No" zur Rückfrage ob der Vorgang wirklich ausgeführt werden soll.
Damit wird auch die gesamte Historie auf dem RoboGate Edge gelöscht!