Zum Inhalt springen

Was ist Mosquitto?

Mosquitto ist ein MQTT-Broker. Ein Broker nimmt Nachrichten von Geräten entgegen und reicht sie an alle weiter, die das jeweilige Topic abonniert haben. Der MQTT-Collector ist ein solcher Abonnent.

Seit Version 1.5 betreibt HELIOS auf Wunsch einen eigenen Broker. Ein separater Broker, etwa in ioBroker oder Home Assistant, ist dann nicht mehr nötig. Ein bestehender Broker lässt sich aber weiterhin nutzen.

Unter Konfiguration → Datenquellen → MQTT steht die Wahl zwischen einem externen Broker und dem internen Broker Mosquitto, von HELIOS betrieben. Für den internen Broker fragt HELIOS nur noch drei Dinge ab: Port, Benutzername und Passwort. Die Verbindung des Collectors zum Broker richtet HELIOS selbst ein.

Der Broker startet, sobald er eingerichtet ist, auch wenn noch kein Sensor über MQTT liest. So können Geräte schon senden, bevor die Zuordnung steht.

Eine Anmeldung ist immer Pflicht. Der Broker nimmt keine Nachrichten von Geräten ohne Benutzername und Passwort an.

Die Adresse, an die Geräte senden, zeigt HELIOS auf der Karte MQTT an. Sie hängt davon ab, wie SOLECTRUS erreichbar ist:

ErreichbarkeitAdresse
Direkt über IP-Adresse oder Hostname<IP>:1883, unverschlüsselt
Eigene Domain über internen Traefik<domain>:1883 unverschlüsselt, <domain>:8883 mit TLS
Eigene Domain über externen Reverse Proxy<IP>:1883, unverschlüsselt

Statt 1883 gilt der Port, der in HELIOS eingestellt ist. Eine verschlüsselte Verbindung gibt es nur mit dem Traefik, den HELIOS selbst betreibt. Ein externer Reverse Proxy leitet keinen MQTT-Verkehr weiter.

Nachrichten, die ein Gerät mit dem Flag retain sendet, hält Mosquitto auf der Platte fest. Sie überstehen einen Neustart. Wo sie liegen, bestimmt MOSQUITTO_VOLUME_PATH.

Das offizielle Docker-Image von Mosquitto ist auf Docker Hub verfügbar:
https://hub.docker.com/_/eclipse-mosquitto