|
<< Click to Display Table of Contents >> Navigation: Komponenten > IoT > MQTT > MQTT Client [x200] |
Der MQTT-Client kann zur bidirektionalen Kommunikation mit einem MQTT-Broker (Publish / Subscribe) - und als Besonderheit des EisBär MQTT-Clients - an mehreren Brokern eingesetzt werden - selbstverständlich ist auch nur ein Senden bzw. Empfangen möglich.
Generell können gezielt Datenpunkte (Topics) aus einem Broker abonniert (subscribed), wie auch Daten in den Broker zurückgesendet werden, um diese anderen Clients/Brokern zur Verfügung stellen bzw. um diese weiterzuverarbeiten. Interessant ist die sehr geringe Bandbreite bei der Telegrammübertragung und deren Performance. In den weiteren Komponenten MQTT-Bridge und MQTT-Broker werden noch weitere Verbindungs- und Datenübertragungsmöglichkeiten aufgezeigt und realisierbar. Daten werden generell zu einem Broker übertragen und können von einem oder beliebig vielen Clients abonniert werden. Änderungen von abonnierten Topics werden über den Broker direkt - fast ohne Zeitverlust - zu den Clients übertragen. Wildcards (#) werden beim Discovery im Kanaleditor des Clients unterstützt.
Datenpunkte der Komponente
Name |
Typ |
Funktion |
|---|---|---|
Aktueller Master-Broker |
Ausgang |
Der Name des derzeitigen Master-Brokers wird als Text ausgegeben. |
Alle Topics veröffentlichen |
Eingang |
Über diesen Eingang kann das Publishen des MQTT-Clients erzwungen werden. Alle zwischengespeicherten Netzinhalte werden über die Topics veröffentlicht. Sollte der Broker beispielsweise unerreichbar gewesen sein, könnten somit bei Reconnect die letzten Zustände an den Broker gesendet werden. |
Diagnose [Text] |
Ausgang |
Hier werden Fehlertexte ausgegeben. Diese können z.B. mit der Komponente "Protokollfenster" angezeigt werden. Achtung: Diagnose oder Debug - Ausgängen sind nur für den Fehlerfall vorgesehen. Bitte nur mit Rücksprache mit dem Supportteam verwenden! Diese können bei Verwendung die Leistung des Dienstes erheblich beeinträchtigen |
Erweiterte Diagnose (Level-Einstellungen) |
Eingang |
(De)Aktiviert die erweiterte Debug-Ausgabe. Die erweiterte Diagnose kann hierbei über verschiedene Levels ausgabetechnisch (z.B. an einem Protokollfenster zur Ausgabe) gesteuert werden. Es können hierbei Werte von 0, 1 und 2 auf diesen Eingang über 8Bit geschickt werden und damit die Ausgaben übersichtlicher gestaltet werden.
0 = Deaktiviert den erweiterten Diagnoseausgang 1 = Aktiviert die Ausgabe von relevanten Ereignissen (z.B. Connect, Disconnect, Limitausgaben) ohne weitere Details. 2 = Aktiviert die komplette Protokollausgabe inkl. Publish-/Subscribe-Meldungen des Clients, sofern in den Einstellung der Komponente die Subscription-/Publish-Meldungen nicht abgeschaltet wurden. |
KNX Gateway - Anzahl Objekte in Sendeschlange |
Ausgang |
Gibt die Anzahl der Objekte aus, die sich in der Send-Queue befinden. |
KNX Gateway - Sendeschlange löschen |
Eingang |
Löscht die gesamte Sendeschlange. |
Primärer Broker ist Master-Broker |
Ausgang |
Ausgabestatus, ob der primäre Broker der aktuelle Master-Broker ist oder nicht. |
Dynamisch |
Ordner |
In diesem Ordner werden die dynamischen Datenpunkte aus den Kanälen (Topics) erzeugt. |
Statistik |
Ordner |
Über die Datenpunkte können in Echtzeit empfangene und gesendete Nachrichten, wie auch Datenmengen in Bytes je Minute/Stunde/Tag und seit Start ausgegeben und analysiert werden. Ein Reset zur Laufzeit ist ebenso möglich. |
Treiber An/Aus |
Bidirektional |
(De)Aktivieren der Komponente |
Treiber Gateway - Allgemein |
Bidirektional |
Unidirektionale Kommunikationsschnittstelle zwischen diesem Treiber und dem Serial-Treiber. |
Treiber Gateway - BACnet Client |
Bidirektional |
Bidirektionale Kommunikationsschnittstelle zwischen BACnet Client und MQTT-Client. Siehe Treiber Gateway. |
Treiber Gateway - BACnet Server |
Bidirektional |
Bidirektionale Kommunikationsschnittstelle zwischen BACnet Server und MQTT-Client. Siehe Treiber Gateway. |
Treiber Gateway - KNX |
Bidirektional |
Bidirektionale Kommunikationsschnittstelle zwischen KNX und MQTT-Client. Siehe Treiber Gateway. |
Treiber Gateway - Modbus Master |
Bidirektional |
Bidirektionale Kommunikationsschnittstelle zwischen Modbus Master und MQTT-Client. Siehe Treiber Gateway. |
Uptime |
Ausgang |
Laufzeit des MQTT-Clients ab Start als Zeichenkette im Format Tag.Stunden:Minuten:Sekunden (00.00:00:00). |
Uptime [s] |
Ausgang |
Laufzeit des MQTT-Clients ab Start in Sekunden. |
Verbindungsstatus |
Ausgang |
Gibt den derzeitigen Verbindungsstatus als "An/Aus/Undefiniert"-Signal aus. An=Verbindung OK, Aus=Verbindung gestört/nicht registriert, Undefiniert=Client nicht initialisiert. |
Dynamische Datenpunkte je Topic
Name |
Typ |
Funktion |
|---|---|---|
Payload [Bytes] |
Bidirektional |
Payload sind die eigentlichen transportierten Rohdaten (ohne MQTT-Header) in Form eines Byte Arrays. |
Payload Profil |
Ordner |
Sofern Payload-Profile angelegt und einem Topic (Datentyp: String) zugeordnet wurden, wird ein weiterer Unterordner erzeugt, in welchem die Ein-/ Ausgänge der Payload-Profilfelder zu finden sind. Hinweise zu den Payload-Profilen weiter unten in einem Beispiel. |
Payload Profil (Publish JSON) |
Ausgang |
Ausgabe der zu Veröffentlichen Daten für das gesetzte Profil. |
Payload Profil (Publish Trigger) |
Eingang |
Triggert das Veröffentlichen der Daten für das gesetzte Profil. Anmerkung: Der Anschluss ist nur vorhanden, wenn ein Profil im Topic-Kanaleditor auch zugeordnet wurde. |
QoS |
Ausgang |
Das Quality of Service (QoS)-Niveau ist eine Vereinbarung zwischen dem Absender einer Nachricht und dem Empfänger einer Nachricht, die die Zustellgarantie für eine bestimmte Nachricht definiert. •0: „Fire-and-forget“ – das Paket wird genau einmal verschickt. Kommt an, unter Umständen auch vielleicht mal nicht, analog dem UDP-Protokoll. Zustellung: enorm schnell. •1: „Acknowledgement“ – der Empfänger bestätigt dem Sender, das Paket erhalten zu haben. Es ist möglich, dass ein Paket mehrmals ankommt. Zustellung: sehr schnell. •2: „Synchronisiert“ – das Paket erreicht garantiert das Ziel, und zwar garantiert nur einmal, jedoch erzeugt diese Variante etwas mehr "Verkehr". Zustellung: etwas langsamer. |
Wert |
Bidirektional |
Wert des Topics unter Berücksichtigung des definierten Faktors im zugehörigen Kanaleditors. Bitte die Einstellung Publish/Subscribe im Kanaleditor je Topic beachten. |
Zeitstempel |
Ausgang |
Zeitstempel des zuletzt erhaltenen Wertes. |
Eigenschaften der Komponente
Name |
Standard |
Funktion |
|---|---|---|
Verbindung |
... |
Eingabe der Verbindungsdaten zum MQTT-Broker - siehe unten. |
Weitere Broker-Verbindungen |
0 |
Hier können zusätzliche Broker angelegt werden, die ebenfalls die Daten zeitgleich erhalten sollen. Mit dieser Funktion ist es möglich, Topics an mehrere Broker zu publishen und/oder zu abonnieren - es kann hierüber eine Redundanzlösung aufgebaut werden. |
... |
Über selbstdefinierte Payload-Profile ist es möglich, JSON-Strings die in einem Topic übertragen werden, in einzelne Unter-Datenpunkte des jeweiligen Topics entsprechend der Hierarchie aufzusplitten. |
|
0 |
Für jeden Kanal muss das zu abonnierende MQTT-Topic, sowie der zugehörige Datentyp angegeben werden. Optional kann ein beschreibender Name angegeben werden, der ebenfalls beim Anlegen der Datenpunkte berücksichtigt und dort angezeigt wird. Eingestellt können zusätzlich der QoS-Level, ob die Nachricht Retained werden soll und der Topic gepublished und/oder subscribed werden soll. |
|
Letzter Wille |
... |
Oft auch als Testament bezeichnet. Der Einsatzzweck dieser speziellen Funktion ist hauptsächlich dem verbundenen MQTT-Broker mitzuteilen, wenn der Client unerwartet offline ist (z.B. Verbindungsabbruch). In der Payload wird der entsprechende Inhalt für diesen Zustand hinterlegt und mit einem eigenen Topic definiert. |
Alle Topics bei Reconnect veröffentlichen |
Deaktiviert |
Mittels dieser Eigenschaft, kann das Publishen des MQTT-Clients bei Reconnect des Brokers erzwungen werden. Alle zwischengespeicherten Netzinhalte werden über die Topics veröffentlicht. Sollte der Broker beispielsweise unerreichbar gewesen sein, könnten somit bei Reconnect die letzten Zustände an den Broker gesendet werden. |
Basetopic |
leer |
Der BaseTopic wird in der Kanalliste bei allen Topics vorangestellt. BaseTopic 1234 würde einen bestehenden Topic "sensor/luftfeuchte/wert" in "1234/sensor/luftfeuchte/wert" automatisch umwandeln. Es ist somit möglich, wenn viele Clients von Gebäuden, Anlagen oder Geräten im Broker eindeutig abgebildet werden müssen, dies über den BaseTopic automatisch zu lösen und auch viel schneller und einfacher Kopien zu erzeugen, die sich dann nur über den BaseTopic unterscheiden. |
Name an Topic anfügen |
Deaktiviert |
Hier kann ausgewählt werden, ob der Name (Bezeichnung) des Topics zusätzlich an den Topic angefügt wird, wie er im Kanaleditor definiert wurde. Entsprechend gibt es einen neuen zusätzlichen Export-Mechanismus (Kanaleditor - Export Details), um die Topics inkl. aller Einstellungen und Datentypendefinitionen als Liste ausgeben zu können. |
Zyklischen Heartbeat deaktivieren |
Deaktiviert |
Die zyklische Heartbeat-Meldung wird nicht mehr an den Broker gepublished, wenn die Option aktiv gesetzt wird. |
Nachrichten beim Start ignorieren (Dauer [s]) |
0 |
Ignoriert beim Starten des Clients über die festgelegte Dauer eingehende Nachrichten wie z.B. retained Topics. Standardwert: 0 |
Subscription-Meldungen nicht ausgeben |
Deaktiviert |
Subscription-Meldungen werden im LogLevel 2 der erweiterten Diagnose nicht ausgegeben, sofern aktiviert. |
Publish-Meldungen nicht ausgeben |
Deaktiviert |
Publish-Meldungen werden im LogLevel 2 der erweiterten Diagnose nicht ausgegeben, sofern aktiviert. |
JSON immer direkt bei Feldänderung ermitteln |
Deaktiviert |
Meldungen über empfangene Nachrichten werden im LogLevel 2 der erweiterten Diagnose nicht ausgegeben, sofern aktiviert. |
Treiber An/Aus |
Deaktiviert |
(De)Aktivieren der Komponente |
Verbindungsdialog im Eigenschaftsfenster:
Name |
Funktion |
|---|---|
Server URL/IP: |
IP-Adresse oder Hostname des abzufragenden Servers. |
Port: |
Angabe des Kommunikationsport zum MQTT-Broker (Standard: 1883 bzw. 8883 (TLS)). Dieser Port muss in der Firewall eingetragen werden, sobald eine bidirektionale Kommunikation stattfinden soll. |
Benutzer / Passwort: |
Falls für den Zugriff auf den Broker eine Authentifizierung gefordert wird, können Benutzername und Passwort hinterlegt werden (leer lassen für anonymen Zugang). |
Timeout [s]: |
Kommunikations-Timeout in Sekunden (Standard: 5 Sekunden) |
Client-ID: |
Eindeutige Bezeichnung für diesen Client, welche nur einmal verwendet werden darf. Wird die Komponente kopiert, muss eine neue ID generiert oder ein neuer eindeutiger Name gewählt werden. |
Websocket: |
Optional kann angegeben werden, ob der Telegrammverkehr über Websockets stattfinden soll. |
TLS: |
Abhängig vom Server kann die Verbindung auch über TLS verschlüsselt werden. Damit werden die Felder für "Alle Zertifikate akzeptieren" und "Server-Zertifikat" aktiv. |
Server-Zertifikat: |
Pfadangabe zum Server-Zertifikat, welches für die Kommunikation verwendet werden soll. Standardmäßig finden Sie ein von uns selbstsigniertes Zertifkat in Ihrem EisBär-Installationsverzeichnis. Für den EisBär MQTT-Broker liegt das zu verwendende Zertifikat als pfx-Datei im gleichen Pfad, welches für den Broker nicht speziell übergeben werden muss. |
Über die Schaltfläche "Test" wird ein Anmeldeversuch am Broker ausgeführt und das Ergebnis dahinter ausgegeben.