# Geräte über MQTT verbinden

## Über MQTT

MQTT ist ein OASIS-Standard-Messaging-Protokoll für das Internet der Dinge (IoT). Es ist als leichtgewichtiges Publish/Subscribe-Nachrichtentransportsystem konzipiert, das sich ideal für die Verbindung entfernter Geräte mit geringem Codeumfang und minimaler Netzwerkbandbreite eignet.

Das Protokoll basiert auf dem Publish/Subscribe-Modell (auch bekannt als Pub/Sub) und besteht aus 4 Hauptkomponenten:

1. **Publisher**: Ein Publisher ist eine Nachrichtenquelle. Er sendet Nachrichten an bestimmte "Topics" im Netzwerk. Topics sind benannte Kanäle oder Kategorien, die den Nachrichtentyp identifizieren. Beispielsweise könnte ein Sensor einer Wetterstation Daten zum Topic "Weatherdata" veröffentlichen.
2. **Subscriber**: Ein Subscriber empfängt Nachrichten, indem er bestimmte Topics abonniert. Er gibt an, an welchen Topics er interessiert ist, und erhält dann die entsprechenden Nachrichten von Publishern, die Nachrichten an diese Topics senden.
3. **Broker**: Ein MQTT-Broker ist ein Server, der alle Nachrichten von den Publishern empfängt und die Nachrichten dann an die entsprechenden Subscriber weiterleitet. Der Broker ist das Herz des MQTT-Protokolls.
4. **Topics** sind wie Kanäle oder Kategorien, unter denen Nachrichten gruppiert werden. Publisher senden Nachrichten an bestimmte Topics, und Subscriber empfangen Nachrichten, indem sie Topics abonnieren. Beispielsweise könnten Topics Themen wie "Sensor Data/Temperature", "Messages/Warnings" oder "Control Commands/Light" sein.

## Vorgehen

Geräte werden in den folgenden Schritten über MQTT verbunden:

1. Zunächst wird eine Verbindung zu einem Broker hergestellt und konfiguriert.
2. Auf diesem Broker wird ein Abonnement für ein bestimmtes Topic erstellt.

{% hint style="warning" %}
Alle Schritte in diesem Dokument setzen voraus, dass ein ordnungsgemäß funktionierender Broker verfügbar ist. Dieses Dokument erklärt nicht, wie ein Broker konfiguriert wird.
{% endhint %}

{% hint style="info" %}
Interne Broker-Version: mosquitto Version 2.0.11 Client-Version: MQTT 3.1/3.1.1 Protokoll
{% endhint %}
