Ich habe ein par kleinere Geräte entwickelt, welche auf Grund eines Tipps aus dem Forum hier, Nachrichten an den MQTT Broker im LB senden. Der Tipp war super! So konnte ich mit Arduinos mit wenig Aufwand ein par coole Dinge machen, wie bspw. eine Wasserstandsmessung in meiner Zisterne oder auch ein Controller für meine Poolsteuerung.
Jetzt bin ich dran einen Regensensor einzubinden (wegen der Platzierung per WiFi). Es ist ein simpler "Tipping Bucket Gauge", welcher bei einer bestimmten Regenmenge einen Impuls (Schliesskontakt/Reedswitch mit Magnet). Meine Idee war, dass ich der Einfachheit halber, diese Impulse per MQTT an den Miniserver "weiterleite", und dieser dann mit einem Zählerbaustein den Regen berechnet. Da der Arduino (in diesem Fall ein ESP8266) die meiste Zeit im Tiefschlaf ist und nur vom Regensensor geweckt wird, wollte ich vermeiden, da allzu komplizierte Berechnungen mit Zeitstempeln zu machen, und das alles dem Miniserver überlassen. Konkret heisst das, dass ich das MQTT topic rain/impulse auf 1 setze, und nach einer gewissen Zeit wieder auf 0. Der Miniserver erkennt die steigende Flanke als Impuls und zählt es.
Das funktioniert so weit eigentlich ganz gut

Dabei ist mir aber eine Frage aufgekommen. Und zwar ist mir aufgefallen, dass ich offensichtlich einen Wert in MQTT maximal alle ca. 20 Sekunden verändern kann. Also wenn ich die 1 sende, dann muss ich 20s warten, bis ich wieder einen neuen Wert, also die 0, senden kann. Ansonsten ignoriert Mosquitto den Wert einfach.
Wieso ist das so? Gibt es dazu irgendwo eine Einstellung, die ich übersehe? Mir scheint es unwahrscheinlich, dass der Wert aufgrund hohen Workloads nicht verarbeitet werden kann.
Klar, ich kann einfach diese 20s warten, respektive kann ich auch das selbe Topic abonnieren, um zu wissen, ob der Wert erfolgreich wieder auf 0 ist. Mich würde es aber trotzdem sehr interessieren, was der Grund dafür ist.
Danke!
Kommentar