MIT DATEN MEHR BEWEGEN.

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.

Tabelle 1. Konfiguration Connection MQTT Modul
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

Tabelle 2. Konfiguration MQTT Publishing
Parameter Beschreibung

Topic Name

Eingabe des Ziel Topic am Broker. Es kann auf definierte Platzhalter zugegriffen werden (siehe Tabelle 3).

Default Message
Retain Flag

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.

Tabelle 3. Übersicht Topic Platzhalter
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.

Tabelle 4. Konfiguration Edge Topics
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 save 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).

mqtt config
Abbildung 1. Konfiguration des MQTT Moduls
mqtt explorer
Abbildung 2. Auswertung der gesendeten Daten im MQTT Explorer

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 close 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).

mqtt delete topic
Abbildung 3. Löschen eines Topics im MQTT Modul

Konfiguration zurücksetzen

Über die Schaltfläche reset 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!