Überlauf bei Zählerstand, wie in Software verarbeiten?

CommanderBond

Enthusiast
Thread Starter
Mitglied seit
16.04.2012
Beiträge
703
Hallo, ich trage meine Zählerstände immer in InfluxDB ein um sie mir anschließend mit Grafana darstellen zu können, zB die jährlichen und monatlichen Verläufe.

Jetzt ist es so dass mir aufgefallen ist dass im April ein Wärmemengenzähler übergelaufen ist.
Am 02.04 war der Zähler 65395
Und am 09.04 stand der Zähler bei 21

Ich stehe jetzt auf dem Schlauch wie ich das möglichst geschickt händeln/darstellen kann. Grundsätzlich rechne ich mir immer die Differenz der jeweiligen letzten Zählerstände jeden Monats aus. Was im April aber so nicht mehr klappt. Und auch beim Jahresverbrauch wird es so nicht mehr klappen.
Was ist das Beste vorgehen? Auch bei der InfluxDB Datenbank stehen mir natürlich alle Optionen offen wie zB einfach jetzt 65.535 drauf rechnen. Das würde zwar alle meine Probleme lösen, finde ich aber nicht wirklich schön weil ich dann nicht mehr die "echten" Werte in der Datenbank stehen habe.

Alternativ "hardcode" ich das einfach in Grafana indem er ab dem Zeitstempel des ersten Wertes nach dem Überlauf 65.535 drauf rechnen soll.

Gibt es noch andere Möglichkeiten?

Die Tagesverbräuche sich erst zu errechnen und anschließend alles aufsummieren erachte ich als unschön für jährliche und monatliche Verbräuche auch deswegen weil es dabei schon zu mehreren Rundungsfehlern jeweils kommen wird..

Oder in der Datenbank ein Feld "Überläufe" ergänzen?

Ferner mache ich mir Gedanken wie man mit Zählerwechsel umgeht am Besten.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Meine Programmierer Zeit ist einige Zeit vorbei. Also Vorsicht... ;)
65xxx ist 2^16.

Jetzt müsstest du schauen was das für ein Variablentyp ist, wie der in deiner Datenbank definiert ist und dann überlegen wie du damit umgehst.

Aber wie ich das sehe hast du nur 3 Möglichkeiten:
1. Du machst deine Variable größer. Also mehr Bits. Dann kannst du höher zählen ( von INT auf LONG INT oder so)
2. Du änderst den Datentyp dass du in der gleichen Datengröße weiter zählen kannst.
(Wenn du Variablen hast die auch negative Zahlen zulassen auf eine die nur positive zulässt. Oder auf Gleitkomma)
3. Du ziehst von allen Variablen einen Wert ab und lebst mit dem Offset. Z.B überall -30.000.
4. Du baust dir eine Krücke, in dem du von Hand einen Wert addierst, was nichts anderes ist als 1. Mit extra Aufwand.
 
Zuletzt bearbeitet:
Es gibt in InfluxDB die increase() Funktion die liefert mir nur die kumulative Summe zurück. Habe in meinen Daten jetzt einfach nur für den 08.04 den Zählerstand von 65535 ergänzt. Jetzt wird alles sauber aufaddiert und die absoluten Zählerstände spielen keine Rolle mehr
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh