INSTAR Deutschland GmbHINSTAR Deutschland GmbH

Mosquitto 2.0 MQTT Broker mit Management Dashboard



Q: Mosquitto bietet jetzt ein Management-Dashboard mit Version 2. Wie kann ich den Broker installieren und mit meiner Kamera verwenden?

A: Der einfachste Weg die gesamte Plattform zu installieren, ist die Verwendung des offiziellen Docker basierten Installer-Images cedalo/installer, das man aus dem Docker Hub herunterladen kann.

Das Installationsprogramm führt Sie durch den Installationsprozess und lässt Sie auswählen, welche Komponenten Sie installieren möchten: Eclipse Mosquitto, Eclipse Streamsheets, das Management Center oder Kombinationen davon.

In den folgenden Abschnitten wird beschrieben, wie Sie die Docker-basierte Installation unter Linux durchführen - aber die Installation unter Windows und macOS ist praktisch identisch.

Docker Installation

Wenn Sie dies noch nicht getan haben, installieren Sie Docker für Ihre Linux-Plattform (siehe Installationsanleitung hier). Docker ist zum Beispiel verfügbar für Centos, Debian, Fedora oder Ubuntu.

Verwenden Sie das Installationsprogramm

Für eine Installation unter Linux verwenden Sie das Installer-Image mit dem Tag 2.0-linux:

docker run -it -v ~/mosquitto:/cedalo cedalo/installer:2-linux

Im folgenden Dialog können Sie (mit der Leertaste) auswählen, welche Komponenten installiert werden sollen:

Select what to install › - Space to select. Return to submit
◉   Management Center for Eclipse Mosquitto
◉   Eclipse Streamsheets
◉   Eclipse Mosquitto 2.0
◯   Eclipse Mosquitto 1.6

Wenn Sie die zu installierenden Komponenten ausgewählt haben, drücken Sie die Eingabe-Taste, wodurch der Installationsvorgang gestartet wird. Während des Installationsvorgangs werden die folgenden Dateien im Installationsverzeichnis angelegt:

~/mosquitto
├── docker-compose.yml  # Docker Compose Datei
├── mosquitto           #
│   ├── config          # Konfiguration für Mosquitto
│   ├── data            # Daten Verzeichnis für Mosquitto
├── start.sh            # Start Skript
├── stop.sh             # Stop Skript
├── streamsheets        #
│   ├── init.json       # Konfiguration für Streamsheets
├── update.sh           # Update Skript

Starten Sie Mosquitto

Um alles zu starten, was Sie installiert haben, verwenden Sie einfach die Datei start.sh.

cd ~/mosquitto
sh start.sh

Öffnen Sie die Anwendungen

Wenn alles korrekt installiert und gestartet ist, sollten die Anwendungen unter den folgenden URLs verfügbar sein:

  • Eclipse Mosquitto: mqtt://localhost:1883
  • Eclipse Streamsheets Web UI: http://localhost:8081
  • Management Center Web UI: http://localhost:8088

Eclipse Streamsheets Standard Login admin/1234

Mosquitto Dashboard

Öffnen Sie die folgende URL innerhalb Ihres Webbrowsers http://localhost:8088 und Sie werden vom Broker-Dashboard begrüßt. Wechseln Sie auf die Client-Seite und klicken Sie auf die Schaltfläche Plus unten rechts, um einen neuen Client hinzuzufügen:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Debugging

Ich möchte damit beginnen, ein Debugging-Tool - z.B. MQTT.fx, MQTT Explorer usw. - hinzuzufügen, mit dem ich sehen kann, welcher Datenverkehr von meinem Broker verarbeitet wird. Ich werde das MQTT.fx Tool verwenden. Um mich mit meinem Mosquitto Broker verbinden zu können, muss ich zunächst einen Benutzer für den neuen Client anlegen:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Wählen Sie Ihre Client-ID und Ihr Login frei und klicken Sie auf Speichern, um den neuen Client hinzuzufügen. Nun müssen wir unserem neuen Client die Berechtigung geben, MQTT-Topics zu abonnieren/veröffentlichen - dies kann im Menü Rollen erfolgen. Klicken Sie auf die Schaltfläche Plus, um eine neue Rolle hinzuzufügen:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Zunächst müssen wir die Rolle - ich habe sie einfach mqttfx genannt - anlegen, indem wir auf Speichern klicken:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Dies bringt Sie zurück zur Rollenliste - klicken Sie auf die Rolle "mqttfx", um sie erneut zu bearbeiten. Nun haben Sie einen weiteren Reiter namens ACLS. Hier müssen wir Mosquitto mitteilen, auf welche MQTT-Themen der Client mit dieser Rolle hören darf. Zum Debuggen wähle ich den Platzhalter # - was alle bedeutet:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Kehren Sie nun zu Ihrer Liste der Clients zurück und weisen Sie Ihrem MQTT.fx-Client die Rolle mqttfx zu:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Jetzt müssen wir MQTT.fx mit den gleichen Informationen konfigurieren:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Versuchen Sie, eine Verbindung zu Mosquitto herzustellen und eine Nachricht zu veröffentlichen, um zu sehen, ob alles korrekt eingerichtet wurde:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Wechseln Sie im Broker-Dashboard zum Themenbaum und überprüfen Sie, ob Ihr Test empfangen wurde:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Kamera hinzufügen

Beginnen Sie mit der Überprüfung Ihrer MQTT-Konfiguration in Ihrer Kamera. Wir wollen unseren neuen Mosquitto-Broker auf Port 1883 hinzufügen. Wir müssen auch eine Client-ID und Authentifizierung hinzufügen, die wir später verwenden werden, um den neuen Client auf unserem Broker einzurichten:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Klicken Sie in unserem Broker-Dashboard auf das "Plus", um einen neuen Client hinzufügen und geben Sie die Authentifizierung und die Client-ID ein, die Sie in Ihrer Kamera hinterlegt habe

Mosquitto 2.0 MQTT Broker with Management Dashboard

Mit einem Klick auf Speichern gelangen Sie zurück in die Client-Liste. Wechseln Sie nun auf die Registerkarte Rollen und klicken Sie auf die Schaltfläche Plus, um eine neue Rolle für Ihre Kamera hinzuzufügen:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Auch hier müssen wir zuerst die Rolle erstellen, bevor wir mit der Bearbeitung ihrer Berechtigungen beginnen können. Klicken Sie also auf Speichern und geben Sie sie erneut auf bearbeiten, um die ACLS-Einstellungen zu hinterlegen. Hier möchte ich sicherstellen, dass diese Kamera nur Topics empfängt, die für sie bestimmt sind. In meiner MQTT-Konfiguration (innerhalb der Kamera-WebUI) habe ich den MQTT-Präfix auf cameras und die MQTT-ID auf 116 gesetzt. Also werde ich das Veröffentlichungs- und Abo-Muster auf cameras/116/# setzen:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Zurück in der Client Liste müssen Sie die neue Rolle jetzt noch zuweisen, damit Ihre Kamera MQTT-Topics veröffentlichen und abonnieren kann:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Kehren Sie zum Themenbaum zurück. Sie sollten nun alle (retained) Topics sehen, die von Ihrer Kamera veröffentlicht wurden:

Mosquitto 2.0 MQTT Broker with Management Dashboard

Sie können nun alle weiteren Kameras hinzufügen und Mosquitto 2 als zentralen MQTT-Broker für Ihr Smarthome verwenden!