MQTT-Sensornetzwerk aufbauen - Von 1 auf 10 Gerate

Ein ESP32 an MQTT ist einfach. 10 ESP32s sind eine Herausforderung. Hier ist wie ich mein Netzwerk skaliert hab.

Topic-Struktur

Meine Struktur: standort/geratetyp/name/messwert. Beispiele:

wohnzimmer/sensor/monstera/feuchte
keller/sensor/luftfeuchte/feuchte
garten/aktor/pumpe/status

So kann ich mit +/sensor/+/temperatur alle Temperatursensoren abonnieren.

Retained Messages

Der Broker speichert die letzte Nachricht und liefert sie sofort an neue Subscriber. Ideal fur Status-Werte. Aber Vorsicht: nicht fur Datenstrome nutzen!

Last Will Testament (LWT)

Was passiert wenn ein ESP32 absturzt? Mit LWT sendet der Broker sofort eine "offline"-Nachricht wenn der Client die Verbindung verliert.

mqtt.connect("esp32-wohnzimmer", "wohnzimmer/status", 1, true, "offline");
mqtt.publish("wohnzimmer/status", "online", true);

Debugging bei 10+ Geraten

Heartbeat-Pattern: Jedes Gerat sendet einmal pro Minute gerat/status/heartbeat. Ein Python-Skript subscribed +/status/heartbeat und alarmiert wenn ein Gerat >2 Minuten keinen Heartbeat sendet.