Hilfe
Häufige Fragen und typische Stolpersteine. Steht die Antwort nicht dabei, schreiben Sie uns — die Adresse steht unten auf der Seite.
Erste Schritte
Was kostet der Broker?
Nichts. Der Broker ist kostenlos, es gibt keine Grenzen für Geräte, Nachrichten, Abonnements oder Server, es sind keine Lizenzschlüssel nötig, und es wird keine Telemetrie erhoben.
Welche Systeme werden unterstützt?
Debian und Ubuntu (ein Paket im APT-Repository), Windows 10 und 11 x64 (eine fertige .exe) sowie Linux-Builds für amd64, arm64 und armhf, die sich auf jeder Distribution manuell starten lassen, auch auf dem Raspberry Pi.
Was muss ich sonst noch installieren?
Nichts. Die Binärdatei ist statisch gelinkt und braucht weder Laufzeitumgebung noch libc noch eine externe Datenbank: Der Zustand liegt in reinem Go-SQLite im Broker selbst.
Wohin gehe ich nach der Installation?
Das Dashboard wartet unter http://ihr-server:8567. Die Standardanmeldung ist admin mit dem Passwort admin — ändern Sie es gleich nach der ersten Anmeldung im Abschnitt Profil.
Welche Ports sind standardmäßig offen?
1883 für MQTT über TCP, 8883 für MQTT über TLS und 8567 für das Web-Dashboard sowie MQTT über WebSocket unter /mqtt. Die Ports ändert man in config.json oder über Kommandozeilenschalter.
Geräte verbinden
Ein Gerät kann sich nicht verbinden: „not authorized“. Woran liegt das?
Höchstwahrscheinlich melden Sie sich mit der Anmeldung des Dashboard-Administrators an. Das sind verschiedene Dinge: Der Administrator verwaltet nur die Weboberfläche, während Geräte sich mit eigenen Konten aus dem Abschnitt Benutzer verbinden. Legen Sie dort einen Benutzer an und verbinden Sie sich mit diesem Namen und Passwort.
Der Client verbindet sich, sieht aber keine Nachrichten.
Prüfen Sie die Rechte. ACLs gelten als Deny-by-default: Ohne ausdrückliche Erlaubnisregel gibt es keinen Zugriff. Stellen Sie sicher, dass der Benutzer für den betreffenden Topic-Filter eine Regel mit read oder readwrite besitzt und dass diese über verbietenden Regeln steht — Regeln werden von oben nach unten bis zum ersten Treffer geprüft.
Wie gebe ich einem Gerät nur Zugriff auf seinen eigenen Zweig?
Fügen Sie eine Regel mit dem Filter $u/# und dem Zugriff readwrite hinzu. Der Platzhalter $u wird zum Namen des verbundenen Clients, sodass eine Regel für alle genügt: Jedes Gerät sieht nur seinen eigenen Zweig. Im Dashboard gibt es dafür die Schaltfläche „Eigener Zweig“.
Kann ich anonymen Zugriff erlauben?
Ja, über einen eigenen Schalter unter Einstellungen → Broker. Beachten Sie: Anonymen Clients ist der gesamte $-Namensraum verwehrt, einschließlich $SYS.
Warum zeigt ein Abonnement auf # kein $SYS?
Die Spezifikation verlangt es: Platzhalter erreichen keine Topics, die mit $ beginnen. Für die Statistik brauchen Sie eine ausdrückliche Regel wie $SYS/#. Zusätzlich gibt es in den Broker-Einstellungen einen globalen $SYS-Schalter.
Wie verbinde ich mich aus dem Browser?
Über MQTT über WebSocket: die Adresse ws://ihr-server:8567/mqtt mit dem Subprotokoll mqtt. Ein separates Gateway ist nicht nötig — der WebSocket läuft auf demselben Port wie das Dashboard.
Sicherheit und TLS
Der Client beanstandet beim Verbinden auf 8883 das Zertifikat.
Beim ersten Start erzeugt der Broker ein selbstsigniertes Zertifikat — für Tests in Ordnung, aber Clients vertrauen ihm nicht. Für den Produktivbetrieb hinterlegen Sie Ihr eigenes Zertifikat im Block tls der Konfiguration (die Felder cert und key) und starten den Broker neu.
Wie ändere ich das Administratorpasswort?
Im Abschnitt Profil. Das neue Passwort wird als Hash in config.json geschrieben — es bleibt kein Klartextpasswort in der Datei.
Ich habe das Administratorpasswort vergessen.
Stoppen Sie den Broker, entfernen Sie das Feld passwordHash aus dem Block auth in config.json und tragen Sie stattdessen "password": "ihr-neues-passwort" ein. Beim nächsten Start bildet der Broker den Hash und löscht den Klartextwert aus der Datei.
Das Dashboard ist aus dem Internet erreichbar — ist das in Ordnung?
Bei der Standardinstallation unter Linux lauscht das Dashboard nur auf 127.0.0.1 und wird über nginx veröffentlicht, wo sich HTTPS und Zugriffsbeschränkungen leicht ergänzen lassen. Port 8567 direkt freizugeben ist keine gute Idee.
Wie gebe ich einem anderen System API-Zugriff?
Einstellungen → API — legen Sie ein Bearer-Token an. Es wird einmal angezeigt, gespeichert wird nur der Hash. Braucht das System nur Statistiken, setzen Sie das Häkchen „nur lesend“: Dann kommen ausschließlich GET, HEAD und OPTIONS durch.
Last und Zuverlässigkeit
Ein Gerät überflutet den Broker mit Nachrichten. Was nun?
Schalten Sie die Limiter unter Einstellungen → Broker ein: Nachrichten pro Sekunde, Burst, Bytes pro Sekunde. Sie gelten je Verbindung. Ein Überschreiten trennt weder die Verbindung noch gehen Nachrichten verloren — der Broker liest den Socket langsamer, und der Sender drosselt sich selbst.
Ein bestimmtes Topic ist laut, der Client sonst aber unauffällig.
Das ist ein Fall für Regeln → Topic-Limits. Eine Regel je Muster dünnt den Strom auf eine Rate aus und behält dabei den letzten Wert, oder verwirft das Topic ganz. Aus einem Sensor, der zehnmal pro Sekunde sendet, wird eine Nachricht pro Sekunde — und das ist der frischeste Messwert.
Was übersteht einen Neustart des Brokers?
Retained Messages, persistente Sitzungen mit ihren Abonnements und Offline-Warteschlangen, unvollendete QoS-Handshakes und verzögerte Nachrichten. Clean Sessions werden nicht gespeichert — laut Spezifikation enden sie mit der Verbindung.
Wird Clustering unterstützt?
Nein. Der Broker ist als einzelner Prozess entworfen. Um mehrere Broker zu verbinden, gibt es die Bridge, die Topics in beide Richtungen zwischen Servern weiterleitet.
Wie sehe ich, was gerade passiert?
Der Abschnitt Datenverkehr zeigt einen Live-Strom von Nachrichten und Broker-Ereignissen mit Filter und Pause, die Übersicht zeigt Ratendiagramme, Systemzustand und einen Ereignis-Feed. Die Daten kommen per WebSocket.
Wartung
Wie aktualisiere ich den Broker unter Debian oder Ubuntu?
Zusammen mit dem übrigen System: sudo apt-get update && sudo apt-get upgrade. Mehr ist nicht nötig, Einstellungen und Daten bleiben unangetastet.
Wie ziehe ich die Konfiguration auf einen anderen Server um?
Einstellungen → Import und Export: Auf dem alten Server die Datei herunterladen, auf dem neuen hochladen. Einstellungen, Benutzer und Regeln kommen mit.
Wo liegen Daten und Protokolle?
Die Daten liegen im Verzeichnis data neben der Binärdatei (unter Linux also /opt/elxmqttbroker): broker.db, users.json und die Zertifikate. Unter Linux gehen die Protokolle an journald: journalctl -u elxmqttbroker -f.
Wie erkenne ich, welche Version läuft?
Version, Build-Nummer und Bauzeit stecken in der Binärdatei: Sie stehen unten in der Seitenleiste, im Abschnitt Über und in der Ausgabe von elxmqttbroker -version.
Kann ich die Zustandsspeicherung abschalten?
Ja, mit persistence: false in config.json. Dann wird alles nur im Arbeitsspeicher gehalten und geht beim Neustart verloren — für Teststellungen durchaus sinnvoll.
Nichts gefunden. Versuchen Sie ein anderes Wort oder schreiben Sie uns.
Antwort nicht gefunden?
Schreiben Sie uns — wir versuchen zu helfen und diesen Abschnitt zu erweitern.