ELX-Software

Industrielle Automatisierung und IoT

ELX-MQTT Broker

Ein vollständiger MQTT-Broker mit lebendiger Weboberfläche

MQTT 3.1.1 und 5.0, von Grund auf umgesetzt, ohne fremde Protokollbibliotheken. Eine einzige Datei, die Oberfläche, Speicher und TLS bereits enthält: installieren und es läuft.

v1.0.39 WindowsLinuxARM Kostenlos

Beide Protokollversionen, vollständig

MQTT 3.1.1 und 5.0 nach der Spezifikation geschrieben: sämtliche Paketeigenschaften, Topic-Aliase, geteilte Abonnements, Abonnement-Kennungen, No Local, Retain Handling, Will Delay, Message Expiry, Ursachencodes und das AUTH-Paket.

Eine Oberfläche, die den Verkehr zeigt

Nachrichtenrate, Bandbreite, verbundene Clients, aktive Topics und ein Ereignisstrom — per WebSocket, ohne Neuladen der Seite. Ein Gerät, das sich danebenbenimmt, sieht man, statt es zu erschließen.

Rechte auf Topic-Ebene

Eine Regel besteht aus Filter, Zugriffsart und Urteil — erlauben oder verweigern —, und verweigert ist alles, was nicht dasteht. Eine Zeile mit dem Platzhalter $u sperrt einen Client in seinen eigenen Zweig des Baums.

Brücken zu anderen Brokern

Beidseitige Weiterleitung von Topics auf Serverebene: Richtung, Präfixe, TLS, Schleifenschutz und selbsttätiges Wiederverbinden. Um zwei Installationen zu verbinden, braucht es kein Skript dazwischen.

Verzögertes Veröffentlichen und Begrenzer

Eine Veröffentlichung nach $delayed/60/topic kommt eine Minute später an und übersteht einen Neustart. Ein Token-Eimer je Verbindung und Regeln je Topic dünnen einen geschwätzigen Sensor aus, statt ihn zu trennen.

Alles über REST

Was die Oberfläche kann, kann auch ein Token: Geräte anlegen, Rechte vergeben, Statistik lesen. Für Überwachungssysteme gibt es Tokens, die nur lesen dürfen.

Screenshots

Die Oberfläche: Nachrichtenrate, Verkehr, Verbindungen und Maschinenzustand auf einen Blick
Verbundene Clients mit Protokollversion, Abonnements und Verkehr
Der lebende Topic-Baum mit Raten und aufbewahrten Werten
Verlauf von Bandbreite und Nachrichtenrate
Eine Nachricht von Hand veröffentlichen, mit QoS und Retain
Regeln zum Umschreiben von Topics
Benutzer und ihre Rechte auf Topics
Broker-Einstellungen: Ports, TLS, Grenzen und Speicherung
Brücken zu anderen Brokern
Eingebaute Dokumentation, im Broker auch ohne Internet verfügbar

Was es ist

ELX-MQTT Broker ist ein Nachrichtenvermittler für das MQTT-Protokoll, das die meisten Sensoren, Regler und Hausautomationssysteme sprechen. Geräte veröffentlichen Nachrichten in Topics, andere Geräte abonnieren diese Topics, und der Broker sitzt dazwischen, entscheidet, wer mit wem sprechen darf, und sorgt dafür, dass unterwegs nichts verlorengeht.

Das Protokoll ist hier keine Hülle um eine fremde Bibliothek. Beide Versionen sind unmittelbar nach der Spezifikation umgesetzt, weshalb die unbequemen Teile — geteilte Abonnements, Nachrichtenablauf, verzögertes Testament, Flusskontrolle — sich so verhalten, wie die Spezifikation es sagt, und nicht so, wie es einer Abhängigkeit gerade geriet.

Eine Datei, keine AbhängigkeitenOberfläche, Ressourcen, Speicherschicht und TLS liegen in der ausführbaren Datei. Kein Docker-Abbild zu holen, keine Laufzeitumgebung zu installieren und keine externe Datenbank einzurichten — selbst die Speicherung nutzt ein reines Go-SQLite, das ohne CGO auskommt.

Was er kann

BereichWas Sie bekommen
ProtokollMQTT 3.1.1 und 5.0, QoS 0/1/2, aufbewahrte Nachrichten, Testament, dauerhafte Sitzungen, Warteschlangen für abwesende Clients
TransporteEinfaches TCP, TLS, MQTT über WebSocket und über gesichertes WebSocket
OberflächeLebende Diagramme, Client-Liste, Topic-Baum, Ereignisstrom, Veröffentlichungsformular, Einstellungen — in sieben Sprachen
ZugriffsrechteRechte je Topic, standardmäßig verweigert, Platzhalter je Benutzer, getrenntes Lesen und Schreiben
ZugangsdatenEingebaute Liste, MariaDB oder MySQL, SQLite, CSV, JWT, externer HTTP-Dienst
VermittlungRegeln zum Umschreiben von Topics, selbsttätige Abonnements, Brücken zwischen Brokern
VerkehrsformungToken-Eimer je Verbindung, Raten und Verwerfen nach Topic-Mustern
ZeitsteuerungVerzögertes Veröffentlichen über $delayed, EMQX-kompatibel, sichtbar und abbrechbar
AnbindungREST-API mit Tokens, Nur-Lese-Tokens, Statistik-Endpunkte
SpeicherungAufbewahrte Nachrichten, Sitzungen, Warteschlangen und verzögerte Nachrichten in SQLite

In Betrieb nehmen

Unter Linux richtet das Paket einen systemd-Dienst ein und startet ihn. Unter Windows läuft die ausführbare Datei so, wie sie ist — starten Sie sie und öffnen Sie die Oberfläche.

Debian / Ubuntu
sudo dpkg -i elxmqttbroker_*.deb
sudo systemctl status elxmqttbroker
# Oberfläche: http://<server>:8567   MQTT: 1883, TLS: 8883
Windows
elxmqttbroker.exe
# Oberfläche: http://127.0.0.1:8567
# Standardzugang: admin / admin — beim ersten Einstieg ändern
Ports1883 ist einfaches MQTT, 8883 MQTT über TLS, 8567 die Oberfläche, und WebSocket teilt sich den Port der Oberfläche. Alle vier sind einstellbar, und keiner davon muss ins Internet zeigen, damit der Broker nützt.

Auf einen Blick

Protokoll
MQTT 3.1.1 und MQTT 5.0
Betriebssysteme
Debian, Ubuntu, Windows 10 und 11
Architekturen
amd64, arm64, armhf
Geschrieben in
Go, ohne CGO
Speicher
SQLite, eine Datei
Sprachen der Oberfläche
Sieben
Standard-Ports
1883, 8883, 8567
Externe Abhängigkeiten
Keine

ELX-MQTT Broker

Ein vollständiger MQTT-Broker mit lebendiger Weboberfläche

Herunterladen

In derselben Rubrik