Regenmengen-Sensor von DFRobotWie bereits im Artikel ESP32 mit Regenmengen-Sensor beschrieben, ist bei mir seit einigen Wochen ein entsprechendes Gerät in Betrieb genommen worden. Die Anzeige wird vom Smarthome-System Home Assistant übernommen. Auf dem Übersichts-Panel von Home Assistant lasse ich mir die Werte für 24 Stunden, 6 Stunden und letzter Stunde anzeigen. Inzwischen fiel mir auf, dass zeitweise die Werte "wackeln". Meine Vermutung war, dass es sich um einen Wackelkontakt beim Anschluss des Gravity-Sensors an den ESP32 handelt.

Ich habe das Gerät nun mehrfach überprüft und konnte keine Wackelkontakte feststellen - wohl aber die "Wackelwerte", die das ESP-Board via MQTT an Home Assistant überträgt. Also nahm ich mir die selbst geschriebene Software vor. Grundsätzlich war auch hier keine fehlerhafte Codierung festzustellen. Doch der Fehler war da!  Beruflich habe ich auch mit Controllern und Sensoren zu tun. Da bekommt man schon ab und an einen "Ahnimus", woher das ganze herrühren könnte.

Werte-Verlauf vor und nach Firmware-Optimierung

Das eingesetzte Gravity-Board beim DFRobot-Rainfall-Sensor liefert die Werte über den I2C-Bus - sie werden also hardwaretechnisch bereitgestellt. Meine Vermutung war nun, dass der auf dem Gravity-Board verwendete Baustein eventuell nicht schnell genug ist, die entsprechenden Werte bereitzustellen. Somit begann ich die bisher eingesetzte Firmware derart zu modifizieren, dass das Auslesen von Werten nicht in kurzen sondern in mehreren Zyklen mit dazwischenliegenden Pausen ausgelesen werden. Damit der Rest des Systems (der integrierte Webserver für die Abfrage der Werte per REST-API und das Abhandeln von Firmware-Uploads) in akzeptablen Zeiten arbeitet, waren diverse Zeitschranken nötig. Im Endeffekt liegen nun etwa 2 Sekunden zwischen dem Auslesen der Werte für 24-Stunden, 6-Stunden und 1-Stunde. Das scheint geholfen zu haben. Die Abbildung zeigt den Werteverlauf am Beispiel des 24-Stunden-Wertes in gnadenloser Verbesserung vor und nach der Optimierung. Wenn ihr also auch über unerklärliche Wertesprünge zwischen dem eigentlichen Wert und Null verzweifelt, dann erhöht mal die Wartezeit zwischen den einzelnen Abrufen der Werte über die Library.


Tagesschau

Die aktuellen Beiträge der Seite https://www.tagesschau.de/infoservices/alle-meldungen-100.html