MQTT Broker für ein HAM Netzwerk

Diese Anleitung erklärt, wie du den Mosquitto MQTT-Broker auf einem Raspberry Pi mit Raspberry Pi OS (Raspbian) installierst und konfigurierst und ihn über den mDNS-Hostnamen mqtt.ham.local im Netzwerk erreichbar machst.


📦 Voraussetzungen

  • Raspberry Pi mit Raspberry Pi OS (Debian-basiert)
  • Lokales Netzwerk mit mDNS/Bonjour-Unterstützung (unter Linux/macOS standardmäßig vorhanden, unter Windows Bonjour erforderlich)

1. System aktualisieren

sudo apt update
sudo apt upgrade -y

2. Mosquitto-Broker und -Clients installieren

sudo apt install mosquitto mosquitto-clients -y
  • mosquitto → der MQTT-Broker-Dienst
  • mosquitto-clients → Testwerkzeuge (mosquitto_pub, mosquitto_sub)

Der Broker startet automatisch und lauscht auf dem Port 1883.


3. mDNS-Hostname aktivieren (mqtt.ham.local)

Installiere Avahi für mDNS-Unterstützung:

sudo apt install avahi-daemon -y

Bearbeite die Avahi-Konfiguration:

sudo nano /etc/avahi/avahi-daemon.conf

Hostname setzen:

host-name=mqtt.ham

Avahi neu starten:

sudo systemctl restart avahi-daemon

Dein Pi ist nun erreichbar unter:

mqtt.ham.local

4. Mosquitto konfigurieren (optional)

Standardmäßig erlaubt Mosquitto anonyme Verbindungen im LAN. Um die Konfiguration anzupassen:

sudo nano /etc/mosquitto/mosquitto.conf

Beispiel für eine minimale Konfiguration:

listener 1883
allow_anonymous true
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log

Broker neu starten:

sudo systemctl restart mosquitto

5. Broker testen

Öffne zwei Terminals oder nutze zwei Geräte:

Subscriber (Abonnent):

mosquitto_sub -h mqtt.ham.local -t test

Publisher (Veröffentlicher):

mosquitto_pub -h mqtt.ham.local -t test -m "Hello MQTT"

Du solltest die gesendete Nachricht im Subscriber-Terminal sehen ✅.


6. ESP32/ESP8266-Clients verbinden

In deinem Arduino/ESP32-Code den MQTT-Server so konfigurieren:

client.setServer("mqtt.ham.local", 1883);

✅ Ergebnis

  • Der Raspberry Pi läuft als stabiler MQTT-Broker.
  • Alle Geräte können sich über den Hostnamen mqtt.ham.local verbinden.
  • Keine statische IP-Konfiguration erforderlich.