# Was ist Mosquitto?

> Der MQTT-Broker, den HELIOS auf Wunsch betreibt. Geräte schicken ihre Messwerte an ihn, der MQTT-Collector holt sie dort ab.

**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](/docs/referenz/mqtt-collector/) ist ein solcher Abonnent.

Seit Version 1.5 betreibt [HELIOS](/docs/referenz/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.

## Einrichten

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.

## Adresse für Geräte

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

| Erreichbarkeit                            | Adresse                                                  |
| :---------------------------------------- | :------------------------------------------------------- |
| Direkt über IP-Adresse oder Hostname      | `:1883`, unverschlüsselt                             |
| Eigene Domain über internen Traefik       | `<domain>:1883` unverschlüsselt, `<domain>:8883` mit TLS |
| Eigene Domain über externen Reverse Proxy | `: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.

> **Übernahme einer bestehenden Installation**
>
>
> Einen Broker in der `compose.yaml` übernimmt HELIOS beim Import nicht, auch keinen, den es selbst geschrieben hat. Der Import bricht dann ab und nennt den Broker. Abhilfe: den Broker aus der `compose.yaml` entfernen, den Import starten und danach den internen Broker in HELIOS einschalten.
>

## Gespeicherte Nachrichten

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`](/docs/referenz/mosquitto/konfiguration/#mosquitto_volume_path).

## Docker-Image

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