[vz-dev] S0Meter Daten falsch?

Frank Richter frank.richter83 at gmail.com
Sa Apr 25 22:21:51 CEST 2020


Hallo Thomas,

welche Länge haben deine Impulse? Hast du mal mit debounce_delay gespielt?
Wenn nicht explizit konfiguriert, nimmt vzlogger IMHO 30ms als Default.

Dass es da ein grundsätzlich Problem gibt, mag ich noch nicht recht
glauben, denn mit S0-Stromzählern, für die die Funktion ursprünglich
gedacht war, funktioniert das seit Jahren, ohne das derartige Messfehler
berichtet werden. Und die bouncen auch nicht...

Viele Grüße
Frank

Thomas Gentsch <tg at e-tge.de> schrieb am Sa., 25. Apr. 2020, 21:30:

>
> Hallo allerseits,
> ich hab seit einer Weile den VZ laufen plus einem separaten vzlogger, der
> im Moment u.a. 2x Gas (per Reed-Kontakte) und 1x H20 (aehnlich dem hier:
>
> https://wiki.volkszaehler.org/hardware/controllers/ferrariszaehler_lesekopf_rpi_gpio
> bloss eben auf die kleine Drehscheibe im Wasserzaehler angewendet) misst.
>
> Die Gas-Zaehler sind recht zuverlaessig, aber Wasser stimmt gar nicht. Ich
> hab eine Weile gebraucht, glaube aber, das Problem verstanden zu haben.
>
> Es zuwenig gezaehlt, was m.A. daher kommt, weil in
> MeterS0::HWIF_GPIO::waitForImpulse() bereits Werte gelesen werden:
>  - MeterS0::counter_thread ruft in der Endlosschleife waitForImpulse()
>  - waitForImpulse() pollt den FD und (im Moment), wenn etwas da, liest von
> dort + return true
>  - counter_thread merkt, es gibt was zu lesen u liest in status() selbst
> nochmal - jetzt ist aber schon nichts mehr da und der Impuls ist verloren
>  - wenn man noch etwas logging einbaut, sieht das dann so aus:
> [Apr 08 11:31:07][S0]   MeterS0:HWIF_GPIO:first poll returned 1 for GPIO
> 18 (FD 6, PRI: 2)
> [Apr 08 11:31:07][S0]   MeterS0:HWIF_GPIO:wait: read on FD 6 ok: 1
> [Apr 08 11:31:07][S0]   MeterS0:counter_thread has value (timed out: 0)
> [Apr 08 11:31:07][S0]   MeterS0:HWIF_GPIO:status: read on FD 6 ok: 0
>
> Bei den Gaszaehlern faellt das nicht auf, weil die Reed-Kontakte bouncen
> und in MeterS0:HWIF_GPIO:status() kann nochmal erfolgreich gelesen werden.
> Ich hab jetzt mal das pread() in MeterS0::HWIF_GPIO::waitForImpulse()
> ausgebaut, scheint OK.
>
> *** Jetzt die Frage: Warum ist das so? Verstehe ich das nur nicht richtig?
> Sieht jemand Probleme mit meiner Aenderung?
>
> 1000 Dank!!
>   Thomas
>
> --
>  ........................................................
>  Thomas Gentsch
>  e-mail: tg at e-tge.de
>  ........................................................
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20200425/bf825a0d/attachment.html>


More information about the volkszaehler-dev mailing list