5.2.5.1 Datenimport über MQTT (optional)
(Diese Funktionalität steht nur zur Verfügung, wenn die Option "Daten von externen Eingängen über MQTT Broker einlesen" installiert wurde.)
Viele moderne Messmodule sind in der Lage, ihre Daten an einen MQTT Broker zu senden. Mit dieser Zusatzoption ist es möglich, solche Daten in den regulären Datenfluss des dydaqlog Datenloggers einzubinden. Sie stehen dann für die Dashboard-Anzeige, Berechnungen, Alarme und alle anderen Funktionen ebenso zur Verfügung, wie Daten, die vom Datenlogger selber stammen. Vorraussetzung hierzu ist lediglich, dass die Daten unter einem bestimmten Topic beim MQTT Broker eintreffen (für Azure MQTT unter einem bestimmten SAS Token) und entweder im JSON Format oder als reiner Zahlenwert vorliegen. Der Einzelwert oder der entsprechende Eintrag aus dem JSON String werden dann einem Kanal im Datenlogger zugeordnet, der im weiteren ebenso verwendet werden kann, wie z.B. ein analoger Eingang oder eine Variable.
Um externe Daten einzubinden, legen Sie zunächst eine Datenquelle an, indem Sie eine Beschreibung angeben und einen Typ auswählen (MQTT, dydaqlog MQTT oder Azure MQTT) und dann auf "Anlegen" klicken. Es öffnet sich ein Popup-Dialog, in dem Sie die weiteren Einstellungen vornehmen können.
In den MQTT Einstellungen wird die Verbindung zwischen dem Logger und einem MQTT-Broker konfiguriert.
- Broker Host: Adresse des Brokers (als Name oder IP-Adresse)
- Broker Port: Port Adresse, über die die Kommunikation zwischen Client und Broker stattfindet
- Client ID: z.B. Name des dydaqlog Datenloggers, wenn Sie mehrere Exporte auf den gleichen Broker einrichten, sollten die Client IDs unterschiedlich sein
- Keep alive: ermöglicht es, die Verbindung zwischen Broker und Client aufrecht zu erhalten. Bei großen Messintervallen kann es sonst passieren, dass der Broker den Client als inaktiv betrachtet und die Verbindung beendet. Im Normalfall sollte das Keep alive Intervall unterhalb des Speicherintervalls liegen. Bei kurzen Speicherintervallen ist das Keep alive weniger wichtig, da eine konstante Kommunikation zwischen Broker und Client stattfindet.
- Benutzername und Passwort: ist bei einigen MQTT Servern zur Anmeldung notwendig. Falls nicht, können diese Felder leer bleiben
- Topic: Das Topic unter dem die entsprechenden Daten auf dem Broker zu finden sind.
- QoS (Quality of Service): Festlegung, wie zuverlässig die Daten vom Client zum Broker übermittelt werden. Es gibt drei Stufen:
- QoS = 0: Bei Fire and Forget oder At most once Delivery wird nur garantiert, dass eine Nachricht höchstens einmal gesendet wird. Es wird nicht garantiert, dass eine Nachricht überhaupt ankommt.
- QoS = 1: Bei At least once Delivery wird garantiert, dass eine Nachricht mindestens einmal beim Empfänger eintrifft. Eine Nachricht kann aber auch mehrmals beim Empfänger eintreffen, wenn vom Empfänger keine Bestätigung erfolgte. Sobald die Nachricht quittiert wurde, wird sie nicht erneut gesendet.
- QoS = 2: Bei Exactly-once (höchste Stufe QoS Stufe) wird garantiert, dass die Nachricht genau einmal ankommt, nicht verloren geht und es keine Duplikate gibt. Dafür sorgt ein zweistufiger Bestätigungsablauf, der Nachteil ist die wertvolle Bandbreite, die durch die zusätzlichen Nachrichten beansprucht wird und dadurch die Zustellung verzögert.
- SSL/TLS: hier kann gewählt werden, ob die Daten unverschlüsselt oder mit einer SSL/TLS Verschlüsselung übertragen werden sollen.
Wenn die Daten vom lokalen MQTT Broker des eigenen oder eines anderen dydaqlog Datenloggers bezogen werden sollen, kann der Typ "dydaqlog MQTT" verwendet werden. Da in diesem Fall viele Einstellungen (Port, Benutzername etc.) fest voreingestellt sind, ist die Einrichtung einfacher. Lediglich Broker Host, Passwort und Topic müssen angegeben werden. Sollen die Daten vom MQTT Broker auf dem eigenen Gerät abgeholt werden, so geben Sie als Broker "localhost" an. Ansonsten den Namen oder die IP Adresse des dydaqlog Geräts, auf dem sich der Broker befindet. Außerdem müssen Sie das Passwort kennen, das für diesen Broker vergeben wurde, und das Topic, unter dem die gewünschten Daten auf dem Broker ankommen. Ein Beispiel für den Datenaustausch zwischen zwei dydaqlog Datenloggern finden Sie hier.
Wenn die Daten von einem Azure MQTT Server bezogen werden sollen, werden stattdessen
- Broker Host: Adresse des Azure Accounts
- Device ID: Im Azure Account angelegte Device ID für den dydaqlog Datenlogger
- SAS Token: Mit dem Programm Device Explorer generierter SAS Token
angegeben. Die Daten müssen dabei im Azure IotHub im Endpunkt /messages/{DeviceID}/messages/devicebound oder einem Unterordner davon einlaufen.
Die Verbindungs-Einstellungen können durch klicken auf die Schalftfläche "Test" getestet werden (siehe Verbindungseinstellungen testen).
Alle weiteren Einstellungsmöglichkeiten sind für beide Datenquellentypen gleich:
- Beschreibung: eine kurze Beschreibung der Datenquelle, diese muss eindeutig sein, es darf keine zwei Datenquellen mit gleicher Beschreibung geben
- Datenformat: Einzelwert oder JSON, je nachdem, ob auf dem entsprechenden Topic nur ein einzelner Zahlenwert oder mehrere Werte und sonstige Angaben in Form eines JSON Strings vorliegen. Beim Typ "dydaqlog MQTT" entfällt diese Einstellmöglichkeit, die Daten kommen immer im JSON Format an.
Anschließend müssen die aus der Datenquelle generierten Kanäle definiert werden. Beim Datenfomat "Einzelwert" gehört zu einer Datenquelle genau ein Kanal, beim Datentyp JSON können auch mehrere Kanäle aus einem String generiert werden. Jeder Kanal benötigt einen eindeutigen Namen. Unter diesem Namen ist er später z.B. für Berechnungen, Datenanzeige, Logging etc. auswählbar. Zusätzlich kann optional wie bei allen anderen Kanaltypen eine ausführlichere Beschreibung angegeben werden.
Die importierten Daten können entweder als Zahlenwert (float), als String oder als boolescher Wert (boolean) interpretiert werden. Zahlenwerte können zusätzlich mit einer Einheit versehen werden. Für alle importierten Variablen kann ein Default-Wert definiert werden, der genutzt wird, wenn keine Daten eingelesen werden können. Wenn die Daten als JSON String auf dem Broker einlaufen, muss außerdem der Name angegeben werden, unter dem sie im JSON String abgelegt sind.
Durch Klick auf die Schaltfläche "Zufügen" wird der Kanal generiert. Und erscheint dann als neue Zeile in der Tabelle.
Die Schaltfläche Test öffnet eine weitere Seite im Browser, auf der Sie die gesetzten Einstellungen testen können, um zu sehen, ob die Verbindung zum jeweiligen Broker aufgebaut werden kann und ob auf dem gewählten Topic Werte einlaufen. Bitte beachten Sie, dass Sie die Einstellungen in diesem Fenster nicht setzten oder verändern können, es werden jeweils die Werte aus dem Popup-Dialog eingesetzt.
Wenn Sie Topics suchen anklicken, werden sämtliche Topics angezeigt, für die aktuell auf dem Broker Daten einlaufen oder alte Daten vorhanden sind, die mit der Aufforderung "retain data" an den Broker übermittelt wurden. Das kann hilfreich sein, wenn Sie nicht sicher sind, unter welchem Topic ein bestimmter Sensor seine Daten ablegt. Wenn Sie die Tests erfolgreich abgeschlossen haben, schließen Sie die Testseite einfach wieder.
Ein Klick auf "Übernehmen" schließt den Pop-Up Dialog und überträgt die Änderungen an die aktuelle Konfiguration. Danach kann mit den externen Kanälen ebenso weitergearbeitet werden, wie mit den Messkanälen des Geräts.