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