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/statusSo 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.