MQTT Broker [x200]

<< Click to Display Table of Contents >>

Navigation:  Komponenten > IoT > MQTT >

MQTT Broker [x200]

Der EisBär MQTT-Broker beinhaltet als Besonderheit zu anderen Brokern neben einem integrierten MQTT-Client, ebenso eine skalierbare Authentifizierungs- und Autorisierungsebene, die bis auf den einzelnen Topic anwendbar ist. Mit dem integrierten Client besteht nunmehr die Möglichkeit, direkt auf die Topics des Brokers zugreifen und veröffentlichen zu können, ohne einen zusätzlichen internen Client verwenden zu müssen.

Eine Discovery-Funktion ist allerdings für den internen Client nicht gegeben, da der Broker für den Discovery laufen muss. Wer diese Funktion benötigt, sollte zu einem EisBär MQTT-Client greifen, der auf einen oder auch mehreren extern laufende MQTT-Broker verbinden kann, die beispielsweise redundant laufen.

 

Sollte ein zuverlässiger, unabhängig laufenden MQTT-Broker für einen Kunden oder ein größeres Kundenprojekt benötigt werden, der extern über eine TLS-Verbindung erreichbar sein soll, haben wir einen speziellen, hochverfügbaren redundanten MQTT-Cluster gehostet.

 
Hinweis zu Verbindungen:

Die verwendeten IP-Kommunikationsports müssen in der Firewall freigegeben werden. Standardmäßig ist dies der Port 1883 (unverschlüsselt) und 8883 (verschlüsselt).

 

Hinweis zur Lizenzierung:
Die Komponente wird mit 200 Komponenten in der Lizenzierung berechnet (Standard: Standard 200 Topics die im Broker veröffentlicht werden können = 200 Komponenten).
Weitere Topics entsprechen einer gleichwertigen Gewichtung als Komponentenanzahl. Maximum in der Berechnung sind 10.000 Komponenten durch Eingabe 10000 bzw. -1 oder >10000 - beide für unbegrenzte Topicanzahl. Für die unbegrenzte Anzahl an Topics ist eine Projektlizenz: Enterprise erforderlich.

 

 

Datenpunkte der Komponente

Name

Typ

Funktion

$SYS

Ordner

SYS-Topics (META-Topics), die für das Monitoring des Brokers zusätzlich verwendet werden können. Diese werden, wenn die Eigenschaft "Systemstatistiken veröffentlichen" aktiviert wurde, automatisch im Broker erzeugt und sind als Ausgänge an der Komponente abrufbar.

Anzahl abonnierter Topics (mit Dubletten)

Ausgang

Ausgabe der abonnierten Topics inkl. Dubletten (mehrfach abonniertes Thema) als Zahl.

Anzahl abonnierter Topics (ohne Dubletten)

Ausgang

Ausgabe der abonnierten Topics ohne Dubletten als Zahl.

Anzahl bekannter Topics

Ausgang

Ausgabe aller bekannten Topics des jeweiligen Brokers.

Anzahl der Nachrichten im Retain-Speicher

Ausgang

Gibt die Anzahl der Retain-Nachrichten, die im Broker vorgehalten werden, aus.

Anzahl verbundener Clients

Ausgang

Ausgabe der aktuell verbundenen Clients als Zahl.

Anzahl veröffentlichter Nachrichten zurücksetzen

Eingang

Durch einen beliebigen Befehl, wird der der Zähler für die veröffentlichten Nachrichten zurückgesetzt (Reset).

Broker Status

Ausgang

Hier wird der aktuelle Zustand des Brokers (Online/Offline) als booleschen Wert ausgegeben.

Client-Liste

Ausgang

Ausgabe einer namentlichen Liste der verbundenen Clients (Client-IDs), wenn "Client-Liste ausgeben" getriggert wurde. Liste wird beim Start, sowie beim An- und Abmelden von Clients automatisch sortiert.

Client-Liste ausgeben

Eingang

Trigger-Eingang, um die aktuell verbundenen Client-Namen am Datenpunkt "Client Liste" auszugeben.

Client-Liste ausgeben (erweitert)

Eingang

Trigger-Eingang, um die aktuell verbundenen Clients (Client-IDs) am Datenpunkt "Client Liste" auszugeben. Hierbei wird zusätzlich zum Client-Name auch deren Topics beim Eintreffen am Broker ausgegeben.

Diagnose [Text]

Ausgang

Hier werden Fehlertexte ausgegeben. Diese können z.B. mit der Komponente "Protokollfenster" angezeigt werden. Verbunden mit dem Eingang [Signal] des Protokollfensters werden dort die Diagnoseinformationen angezeigt.

Dynamisch

Ordner

In diesem Ordner werden die erzeugten, dynamischen Datenpunkte aus dem Kanaleditor angelegt.

Erweiterte Diagnose

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. Anzeige der IP-Adressen der verbundenen Clients.

2 = Aktiviert die komplette Protokollausgabe inkl. Publish-/Subscribe-Meldungen aller User/Clients/$SYS, sofern in den Einstellung der Komponente die Subscription-/Publish-Meldungen nicht abgeschaltet wurden. Anzeige der IP-Adressen der verbundenen Clients.

Letzte Nachricht

Ordner

Hier werden alle Informationen zur letzten eingegangenen Nachricht (aktuellster Topic) in aufgeschlüsselter Form als einzelne Datenpunkte mit allen Details ausgegeben.

Liste bekannter Topics

Ausgang

Gibt die Namen der bekannten Topics aus. Die Liste wird erst dann gefüllt, sobald ein Topic seinen Wert ändert.

Management

Ordner

Diverse Statistikausgaben zu Benutzern; spezielle Funktionen sind nur dem EisBär-Supportteam zugänglich.

Plotter - Ausgewähltes Topic

Eingang

Verbindung zur Listenauswahl "Ausgewählter Wert"

Plotter - Daten (csv)

Ausgang

Eine Darstellung der Werte kann über die Komponente MiniChart (CSV darstellen [string]) erfolgen.

Plotter - Liste bekannter Topics (Listenansicht)

Ausgang

Verbindung zur Listenauswahl "Daten aus Zeichenkette importieren"

Retain-Speicher löschen

Eingang

Wird dieser Eingang getriggert, werden alle retained-Nachrichten gelöscht.

Treiber An/Aus

Bidirektional

(De)Aktivieren der Komponente.

Treiber Gateway - KNX

Bidirektional

Bidirektionale Kommunikationsschnittstelle zwischen KNX und MQTT-Broker. Siehe Treiber Gateway.

Treiber Gateway - BACnet Server

Bidirektional

Bidirektionale Kommunikationsschnittstelle zwischen BACnet Server und  MQTT-Broker. Siehe Treiber Gateway.

Treiber Gateway - BACnet Client

Bidirektional

Bidirektionale Kommunikationsschnittstelle zwischen BACnet Client und  MQTT-Broker. Siehe Treiber Gateway.

Treiber Gateway - Modbus Master

Bidirektional

Bidirektionale Kommunikationsschnittstelle zwischen Modbus Master und  MQTT-Broker. Siehe Treiber Gateway.

Unverschlüsselter Endpunkt gültig

Ausgang

Statusausgabe, ob der unverschlüsselte Endpunkt (IP/Port) aktiviert und gültig ist.

Uptime (Bridge)

Ausgang

Laufzeit der MQTT-Bridge-Verbindung ab Start als Zeichenkette im Format Tag.Stunden:Minuten:Sekunden (00.00:00:00).

Uptime (Bridge) [s]

Ausgang

Laufzeit der MQTT-Bridge-Verbindung als Zahl in Sekunden.

Uptime (Broker)

Ausgang

Laufzeit des MQTT-Brokers ab Start als Zeichenkette im Format Tag.Stunden:Minuten:Sekunden (00.00:00:00).

Uptime (Broker) [s]

Ausgang

Laufzeit des MQTT-Brokers als Zahl in Sekunden.

Verbindungsstatus (Bridge)

Ausgang

Gibt den derzeitigen Verbindungsstatus als An/Aus-Signal aus.

Veröffentlichte Nachrichten

Ordner

Hier wird die Anzahl der Nachrichten pro angegebener Zeiteinheit ausgegeben - aktuelle(r)/letzte(r) Minute/Stunde/Tag/Woche/Monat/Jahr. Quota pro Stunde und Total werden zusätzlich gespeichert und beim Start wieder geladen.

Verschlüsselter Endpunkt gültig

Ausgang

Statusausgabe, ob der verschlüsselte Endpunkt (IP/Port) aktiviert und gültig ist.

 

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.

 
Es gibt 3 QoS-Stufen in MQTT:

•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 (Broker)

...

Parametereinstellungen für Broker und Client. Detaillierte Beschreibung siehe unten - Verbindung (Broker)

Payload Profile

0

Ü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. Ein separater JSON-Parser ist somit nicht mehr nötig. Über den Wizzard kann der gesamte JSON-String automatisch konvertiert werden.

Kanäle (Broker)

0

Da der EisBär MQTT-Broker als Besonderheit einen eigenen internen MQTT-Client integriert hat, können hier für jeden Kanal das zu abonnierende/veröffentlichende Topic, sowie der zugehörige Datentyp angegeben werden. Optional kann ein beschreibender Name angegeben werden, der ebenfalls beim Anlegen der Datenpunkte angezeigt wird. Für jedes Topic kann der Zugriff auch auf bestimmte Clients beschränkt werden, sofern diese in der Client-Liste vorhanden sind. Es werden die Clients zur Auswahl angezeigt, die unter "Benutzer" eingetragen wurden.

Authentifizierung (Clients)

0

Für den zusätzlichen, kontrollierten Zugriff - gesteuert unter Authentifizierung/Autorisierung (Benutzer) - können die entsprechenden IDs der berechtigten MQTT-Clients angelegt werden.

Authentifizierung/Autorisierung (Benutzer)

0

Kontrollierte Zugriffssteuerung von Clients können über eine spezifische Benutzeranmeldung wie in der eigentlichen Brokerverbindung definiert werden. Somit ist es z.B. möglich, falls es festgelegte Clients (ID) gibt, diese dem jeweiligen Benutzer explizit für den Zugriff zu erlauben. Die Option "Auf jedem Client erlauben" muss dann abgewählt werden. Es lässt sich hiermit eine Zugriffssteuerung auf die Topics realisieren.

Autorisierung (Benutzer-Berechtigungen)

0

In der Client-Berechtigung kann für jeden einzelnen Topic bzw. via Wildcard (#) der Zugriff der Clients festgelegt werden. Standard ist, dass alle Clients auf alle Topics subscriben und publishen dürfen. Sobald die Optionen abgwählt werden, lassen sich auf die jeweiligen Topics oder auch BaseTopics die Autorisierung der einzelnen Clients einstellen. Es gibt Anwendungsfälle, dass bestimmte Clients nur publishen dürfen, aber nicht subscriben und umgekehrt.

Verbindung (Bridge)

...

Hier werden die Login-Daten des externen Brokers eingetragen, mit dem eine Bridge-Verbindung aufgebaut werden soll.

Bridge Topics

0

Hier werden die Topics des externen Brokers abonniert, welche auf den EisBär-Broker weitergeleitet werden sollen und umgekehrt. Sollen alle Topics übermittelt werden, kann dies mit Wildcard "#" erreicht werden.

Systemstatistiken veröffentlichen

Deaktiviert

SYS-Topics (META-Topics), die für das Monitoring des Brokers zusätzlich verwendet werden können. Diese werden, wenn die Eigenschaft "Systemstatistiken veröffentlichen" aktiviert wurde, automatisch im Broker erzeugt und sind als Ausgänge an der Komponente abrufbar.

Maximale Anzahl an Topics

200

Setzen der maximale Anzahl an Topics, die auf dem Broker veröffentlicht werden können. Das ist auch der EisBär-Lizenzierungsfaktor. Standard 200 Topics = 200 Komponenten. Weitere Topics entsprechen einer gleichwertigen Gewichtung als Komponentenanzahl. Maximum in der Berechnung sind 10.000 Komponenten durch Eingabe >=10000 oder -1 - beide für unbegrenzte Topicanzahl (Projektlizenz Enterprise erforderlich).

Topic Plotter aktivieren

 

Wenn aktiviert, wird für jedes Topic mit einem unterstützten Datenpunkt (Als Double darstellbare und als String übertragene Zahlenwerte) die letzten X Werte gespeichert und bei Auswahl des Topics grafisch dargestellt

Anzahl zu speichernder Datenpunkte

100

Anzahl zu speichernder Datenpunkte bei aktiviertem Topic Plotter

Treiber An/Aus

Deaktiviert

(De)Aktivieren der Komponente.

 

Verbindung (Broker)

Bezeichnung

Standard

Funktion

Client ID

Beliebig

Einmalige ID oder Bezeichnung des internen MQTT-Clients des Brokers. Client-ID muss mindestens 10 Zeichen beinhalten.

Maximal laufende Nachrichten pro Client

512

Limitierung der maximalen Nachrichten, die pro Client am Broker anstehen können (max. 10000).

Timeout [s]

5

Zeitdauer bis zur Erkennung eines fehlgeschlagenen Verbindungsaufbau.

Persistente Sitzung erlauben

Aktiviert

Statische und konstante Sitzungen von Clients erlauben.

Retain-Speicher beim Starten löschen

Deaktiviert

Beim Neustart des Brokers werden die Retain-Daten nicht gelöscht. Für die manuelle Auslösung zur Löschung gibt es ein spezielles Kommunikationsobjekt, falls nötig.

Retain-Nachrichtenspeicherung unterstützen

Aktiviert

Diese Option aktiviert die Speicherung der Retain-Daten.

Authentifizierung prüfen

Deaktiviert

(De)Aktiviert die Client-Anmeldung. Ist diese Option aktiviert, müssen sich die Clients mit diesen Login-Daten am Broker authentifizieren.

Autorisierung prüfen

Deaktiviert

(De)Aktiviert die Clientautorisierung. Ist diese Option aktiviert, greifen die Einstellungen, die a) unter Authentifizierung/Autorisierung (Benutzer) und b) unter Autorisierung (Client-Berechtigungen) definiert wurden. Ist diese deaktiviert, werden die gesetzten Benutzer- und Client-Berechtigungen ignoriert.

Admin / Passwort

 

Benutzername und Passwort für den Zugriff auf den Broker. Sobald Benutzer angelegt und benutzt werden, wird dieser Account zum "Hauptadministrator-Zugriff" auf diesen Broker.

Unverschlüsselten Endpunkt aktivieren

Aktiviert

Die Kommunikation zwischen Client und Broker findet unverschlüsselt statt.

   - Lokale Schnittstellen-IP

 

Lokale IP-Adresse des Brokers.

   - Port

1883

Kommunikationsport für die unverschlüsselte Verbindung (Standard: 1883). Dieser Port muss in der Firewall freigegeben werden.

Verschlüsselten Endpunkt aktivieren

Aktiviert

Die Kommunikation findet SSL/TLS verschlüsselt statt.

   - Lokale Schnittstellen-IP

 

Lokale IP-Adresse des Brokers.

   - Port

8883

Kommunikationsport für die verschlüsselte Verbindung (Standard 8883). Dieser Port muss in der Firewall freigegeben werden.