Wasserzähler mit HallsensorReedkontakt auslesen

  • Hallo zusammen,

    versuche schon einige Zeit meinen Wasserzähler per Reedkontakt / Hallsensor auszulesen.
    Mein Aufbau ist ein ESP32 geflasht mit der Tasmota FW 13.3.0
    An GPIO 21 wurde der Counter 1 aktiviert.

    Beim ersten Versuch mit einem Reedkontakt wurden trotz 10k Pullup Widerstand am Eingang, und diverseste Debounce/Debouncehigh/low Werte, aberwitzige Zählerstände erfasst.
    Diese vom Wasserversorger gelieferter Zähler ist bereits mit einem Magnet ausgestattet. Leider gibt es nur einen Impuls pro 5l, entsprechend lange knn das Siganl anliegen oder genau irgendwo dazwischen liegen.

    Mein aktueller Versuch ist ein Hallsensor ohne externen Pullup-Widerstand. Mit diesem habe ich jetzt reellere Werte, dennoch weit von Gut und Böse.
    Seit drei Tagen wird gezählt aktuell 128 Impulse sollte eigentlich 640l ergeben (128Imp*5l/Imp).
    Tatsächlich sind 1,34m³ durchgelaufen.

    Bin irgendwie mit meinem Latein langsam am verzweifeln. Meine Vermutung ist der bescheidene 5l Impuls. Da lässt man ein Glas Wasser runter und der Magnet hängt zwischen hier und irgendwo in der Schaltschwelle. Wie kann ich die Genauigkeit erhöhen?
    Mit ner Toleranz von <100l/Monat wäre ich sehr zufrieden.

    Vorab schon mal ein Danke :)

  • leider ist keine verarbeitende Rule dargestellt?

    Einem weiteren Entprellen könnte man sich theoretisch so nähern.

    Counter2 ist Tageszähler welcher in der 2. Tagesminute auf 0 gesetzt wird, aber auch mit ener weiteren Hysterese belegt.

    rule1

    ON System#boot do Var1 0 endon

    on Time#Minute=2 do counter2 0 endon
    on counter#c1>%VAR1% do Backlog VAR1 %value%; counter2+1 endon

  • In der Konsole wurden nur die Befehle
    counterdebounce 750
    counterdebouncehigh 100
    counterdebouncelow 100
    Sowie für den Zähler nicht relevante setoption57 eingeschaltet

    Der Hallsensor ist ein 5UG 25, ist zumindest das was ich darauf entziffern kann.
    Angeschlossen an 3,3V und GND, Signal an GPIO21.

  • Verständnissfrage.

    Ist mit dieser Schaltung der Eingang nicht immer auf High gesetzt?
    Wie soll der ESP32 da nen Unterschied erkennen wenn die 3,3V durchgeschalten werden?