Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Was ist MQTT?

MQTT ist ein Übertragungsprotokoll, das besonders Anwendung im IoT-Bereich findet. Dabei gibt es eine Zentrale, den Broker. Möchte man als Client etwas senden, so sendet man diese Nachricht unter einem Topic zuerst an den Broker. Das nennt man dann publish. Möchte man als Client etwas empfangen, so kann man bestimmte topics beim Broker abonnieren. Das nennt man subscribe. Das hat den Vorteil, dass Sender und Empfänger sich nicht kennen müssen, sondern nur jeweils den Broker. Die Topics sind mit „/“ aufgebaut, zum Beispiel „sensoren/küche/raumtemperatur“. Wenn man jetzt „sensoren/#“ subscribed („#“ steht für „alles“), dann bekommt man die Daten aller Sensoren. Subscribed man „sensoren/küche/#“, dann nur die der Sensoren in der Küche, usw.

Was ist Mosquitto?

Mosquitto bietet sowohl einen Client, um auf einen MQTT Server zuzugreifen, als auch den MQTT Server selbst. In diesem Beitrag soll es hauptsächlich um den Server gehen.

Installation von Mosquitto

Mosquitto lässt sich recht einfach im Terminal installieren mit:

Konfiguration von Mosquitto

Damit man auch aus dem Netzwerk auf den Server zugreifen kann, muss man noch eine kleine Einstellung vornehmen. Dazu erstellt man die Datei /etc/mosquitto/conf.d/mosquitto.conf:

Und fügt dort folgendes ein:

Um die Einstellungen zu übernehmen, muss man den Mosquitto-Server noch neu starten:

Testen

Möchte man den Server ausprobieren, kann man das zum Beispiel mit einem weiteren Linux-Rechner tun. Dazu installiert man zuerst den Mosquitto Client:

Mit folgendem Befehl lässt sich etwas auf dem Broker subscriben:

Die IP-Adresse musst du natürlich anpassen. „-v“ sorgt dafür, dass nicht nur der Inhalt der Nachricht, sondern auch das Topic angezeigt wird. Hinter dem „-t“ steht in Anführungszeichen das Topic, das man subscriben möchte. „#“ steht für alles.

Mit folgendem Befehl lässt sich eine Nachricht senden:

Die IP-Adresse musst du wieder anpassen. Hinter dem „-t“ steht wieder das Topic und in diesem Fall hinter dem „-m“ die Nachricht.