msussek / arduino

13 stars 9 forks source link

Verbrauch wird bei neustart nicht upgedatet #2

Closed muerzi closed 4 years ago

muerzi commented 4 years ago

Hallo Marco,

sehr tolles Projekt das du da auf die Beine gestellt hast.

Bin beim testen jedoch auf ein kleines Problem gestoßen. Wenn der ESP neu gestartet wird und vor der ersten MQTT Nachricht ein Impuls gezählt wird, ändert sich Verbrauch_Volumen nicht,

Habe im Blockly folgende Änderung gemacht bei welcher das Problem dann nicht auftritt

image

lg Stefan

msussek commented 4 years ago

Hallo Stefan,

vielen Dank für deine Anmerkung. Ja, da hast du Recht, im Falle eines Resets des ESPs besteht eine Implementierungslücke, ich habe das nun gefixed und dabei gleich noch einen weiteren Fall behandelt:

Sollte der Impulszählerwert tatsächlich einmal überlaufen (sollte eigentlich nicht passieren bei einem long, aber wer weiß das schon), reagiert das Script nun damit, dass deltaWert auf 1 gesetzt wird, in diesem Fall gehe ich vereinfacht davon aus, dass nur ein Impuls seit dem letzten Ausleseintervall gezählt wurde (kann fehlerbehaftet sein). Andernfalls würde deltaWert auf eine große negative Zahl gesetzt werden und die Berechnungen würden auf Folgefehler laufen.

Das ganze sieht dann wie folgt aus:

image

Ich pushe den Export meines geänderten Scripts nun auch auf Github.