Hallo Community,
Gibt es in Volkszähler sowas wie das Counter Feld in rrd, welches aus aufeinanderfolgenden Zählerwerten dann die Differenz ermittelt? Rrd erkennt auch den Überlauf des Zählers.
Grüße
Det
Hallo Community,
Gibt es in Volkszähler sowas wie das Counter Feld in rrd, welches aus aufeinanderfolgenden Zählerwerten dann die Differenz ermittelt? Rrd erkennt auch den Überlauf des Zählers.
Grüße
Det
Waswillst Du damit bezwecken, bzw. was willst Du damit machen?
Stefan
Ich habe einen S0 USB Adapter, der liefert quasi den aufsteigenden Zählerwert. Über die Zeit wird quasi daraus der kWh Wert berechnet. In rrd kann man den Counter Typ für sowas verwenden. Kann man auch selbst programmieren, aber wenn es sowas schon in VZ gibt, brauche ich mir die Mühe nicht machen .
VG
Det
Gibt es meines Wissens nicht.
Hätte ich selbst schon brauchen können, speziell den Überlauf.
mfg JAU
Sonst werden doch auch Zählerstände in die DB geschrieben, warum funktioniert das nicht in dem Fall?
Vielleicht steh ich aber auch auf dem Schlauch...
Stefan
Es handelt sich dabei (wohl) um einen Zähler mit einer begrenzten Variablen. Z.B. ein einzelnes Byte, das läuft bei 254 über und beginnt wieder bei 0. Mit sowas kommt der VZ nicht klar und der Graph geht ins Negative.
mfg JAU
Ja genau so ist es
pi@vz01:/onewire $ tail -f L1v.txt
202537
tail: L1v.txt: Datei abgeschnitten
202549
tail: L1v.txt: Datei abgeschnitten
202557
tail: L1v.txt: Datei abgeschnitten
202561
tail: L1v.txt: Datei abgeschnitten
202564
tail: L1v.txt: Datei abgeschnitten
202568
tail: L1v.txt: Datei abgeschnitten
202576
rrd macht aus sowas dann z.B.
<snip>
<!-- 2020-12-05 20:20:00 CET / 1607196000 --> <row><v>2.225000000e+01</v><v>4.327110524e-02</v></row>
<!-- 2020-12-05 20:25:00 CET / 1607196300 --> <row><v>2.225000000e+01</v><v>1.029685424e-01</v></row>
<!-- 2020-12-05 20:30:00 CET / 1607196600 --> <row><v>2.225000000e+01</v><v>1.067578481e-01</v></row>
<!-- 2020-12-05 20:35:00 CET / 1607196900 --> <row><v>2.225000000e+01</v><v>1.100373065e-01</v></row>
<!-- 2020-12-05 20:40:00 CET / 1607197200 --> <row><v>2.225000000e+01</v><v>1.130520610e-01</v></row>
<!-- 2020-12-05 20:45:00 CET / 1607197500 --> <row><v>2.225000000e+01</v><v>1.136648368e-01</v></row>
</snip>
Das hintere sind die Differenzwerte zum vorigen Zeitstempel
/usr/bin/rrdtool create my.rrd --step 300 \
DS:temps:GAUGE:600:-40:110 \ <-- Tempertaturwert
DS:powcnts:COUNTER:600:0:U \ <-- Power
Der Counter darf auch überlaufen, das kann rrd dann erkennen, dass der Vorwert größer war als der aktuelle Wert und berechnet die Differenz dann trotzdem korrekt. Wenn ich es richtig gelesen habe, kann ein 32 Bit und ein 64 Bit Wertüberlauf erkannt werden.
VG
Det