[vz-dev] vzlogger.log läuft voll

Frank Richter frank.richter83 at gmail.com
Wed Feb 22 01:40:46 CET 2017


Hi Christian,

Aggregation in vzlogger wird gebraucht für Zähler, die ihre Daten
unverlangt senden. Übliche SML-Zähler senden ca. alle 2s ein
Datentelegramm. Wenn man das in dieser Auflösung in die DB schreibt,
geht das auf die Performance und die Lebensdauer der Speicherkarte.

aggtime und aggmode hast du grundsätzlich verstanden: mit aggtime wird
die Zeit angegeben, in der die Daten gepuffert werden. Der Parameter
aggmode entscheidet dann, was nach Ablauf der Zeit an die middleware
übertragen wird. Für Zählerstände wählt man MAX, für Impulse SUM und
AVG für Messwerte bei denen Mittelwertbildung Sinn macht.
aggfixedinterval sorgt dafür, dass die Timestamps auf "glatte" Zeiten
gerundet werden (Bei aggtime=60 zu jeder vollen Minute, bei
aggtime=3600 zur vollen Stunde usw.).
Keinen Sinn macht gesetzte aggtime ohne definierten aggmode oder
gesetzter aggmode mit aggtime=0 oder -1.

Das brauchst du aber alles nicht, weil du bei deinem Zähler mittels
interval festlegen kannst, wie oft er abgefragt werden soll. Da wir ja
festgestellt haben, dass aggtime in deinem Setup Probleme verursacht,
lass es einfach weg (also alles was mit agg... anfängt rauswerfen!).

zu duplicates: du kannst die Zeit ja noch höher stellen wenn dir ein
doppelter Wert pro Stunde noch zu viel ist. Komplett verhindern ist
weder möglich noch sinnvoll. Dass du damit ein Problem hast, passt
aber nicht zur eingangs geposteten vzlogger.conf, mit der du
massenhaft Temperatursensorren im 30s-Intervall logst - da würde ich
mir eher Gedanken drum machen...

read_timeout soll verhindern, dass vzlogger ewig in einer Schleife
festhängt, weil er noch auf Zeichen vom Zähler wartet. Nach Ablauf der
Zeit erfolgt Fehlermeldung und neuer Versuch. Ist doch eigentlich ganz
logisch, oder?

Wie interval funktioniert und wie das Timing bei diversen
konfigurierten Zählern funktioniert, darfst du dir mit Logfile-Studium
selbst erarbeiten...

Grüße
Frank







Am 22. Februar 2017 um 00:53 schrieb Christian Wulff <christianwulff at gmx.de>:
> Also erstmal vielen Dank, ich bin auf jeden Fall einen riesen Schritt weiter und hab viel dabei gelernt :-)
>
> ----------
> @Daniel: Du schriebst: Entweder "aggmode": "MAX" oder "interval": 60
> Warum ist interval: 60 sinnvoller? Warum genau 60? Ich hab jetzt zufällig 30. Ist das besser oder schlechter?
>
> @Frank: Du schriebst: Im geloggten Zeitraum hat sich dein Zählerstand nur um 0,2kWh geändert, also recht kleine Leistung. Wenn der Fehler wirklich durch S0-Impulse generiert wird, müsste er um so öfter auftreten, je höher die Leistung ist. Also das gleiche nochmal mit ordentlicher Last (Kochfeld, Trockner,...).
> Da der Fehler momentan nicht mehr so regelmäßig auftritt wie vorher, bin ich schon mal sehr zufrieden.
> Ich werde das natürlich beobachten (er ist seit gestern nur noch 1x aufgetreten), aber dazu brauche ich erstmal etwas Zeit. Also muss ich das noch eine Weile vertagen.
> ------------
>
> Aktuell habe ich in meiner vzlogger.conf folgende Werte für die beiden d0 Zähler:
> Dahinter habe ich die gerade gefundenen Erklärungen eingefügt.
>
> "interval": 30                          // Wartezeit in Sekunden bis neue Werte in die middleware übertragen werden
> "aggtime": -1                         // aggregate meter readings and send middleware update after <aggtime> seconds
> "aggfixedinterval": false   // round timestamps to nearest <aggtime> before sending to middleware
> "duplicates": 3600               // duplicate handling, default 0 (send duplicate values)
>                                                    //   >0: send duplicate values only each <duplicates> seconds
>                                                   // Activate only for abs. counter values (Zaehlerstaende) and not for impulses
> "read_timeout": 30          // optional read timeout, default 10s. Data reading is considered finished if no state change after that timeout
>
> Den hab ich momentan gar nicht drin:
> "aggmode": "MAX"         // aggregation mode: aggregate meter readings during <aggtime> interval
>                                                 /* Mittelwert fuer Leistung, "MAX" fuer Zaehler, "SUM" fuer Counter */
>
> Leider verstehe ich die Variablen trotz der kurzen Erklärung noch nicht vollständig.
> Es wäre sehr viel verständlicher wenn es ein Ablaufdiagramm geben würde, wie der Prozess abläuft.
>
> 1. >duplicates< ist mir denke ich klar. Bei duplicates=3600 wird nur alle 3600 Sekunden ein Messwert in die DB geschrieben, wenn dieser sich nicht geändert hat. (Fragt sich nur wozu dieser Wert dann geschrieben wird?! Den braucht doch keiner, da er ja doppelt ist.) Wäre es da nicht sinnvoller wenn NIE ein doppelter Wert in die DB geschrieben wird? Wie erreicht man das?
>
> 2. Beim >aggmode< vermute ich, dass man damit entscheiden kann, ob ein Mittelwert, der Maximalwert oder Summe der Einzelmessungen innerhalb der aggtime weitergeleitet werden. ....Welchen Sinn ergibt das bei aggtime= -1 ?!?!?! (vielleicht ist es das was Daniel meint, dass es nicht sinnvoll ist) ....geht das überhaupt?
>
> 3. Dann ist >aggtime< die Zeit, in der die Mittelwert- / Maximalwert- / Summenbildung erfolgt, am Ende der Zeit wird dieser Wert dann an die middleware gesendet. Korrekt?
>
> 4. "aggfixedinterval" ist mir völlig unklar, welchen Sinn das haben soll?!
>
> 5. "interval" ist mir noch nicht wirklich klar was das ist?! Ist das nun die Zeit (wie ein Timer) wann das Meter abgefragt wird (das würde ich verstehen), oder die Zeit bis neue Werte in die middleware geschrieben werden (das wäre mir absolut unverständlich, warum man mit dem Schreiben warten sollte?!).
>
> 6. "read_timeout" die obige Erklärung habe ich schon gelesen und verstanden. Trotzdem weiss ich nicht wofür genau man das braucht?!?!
>
>
> Ich würde mich ja bereiterklären und ein Ablaufdiagramm erstellen, wie genau der vzlogger funktioniert. Aber dazu müsste ich das Ding erstmal verstehen.
> Mein vzlogger läuft zwar, aber ich könnte nicht mal ansatzweise erklären, wie das im Detail funktioniert.
> Ich hab z.B. aktuell 23 Stück 1-wire Temperatursensoren, 1 Stück S0 Wasseruhr und 2 Stück Stromzähler (1x Ein-Tarif, 1x Zwei-Tarif) verbaut. Das sind insgesamt 27 Kanäle.
> Ich vermute mal ganz stark, dass diese in der Reihenfolge der vzlogger.conf abgefragt werden?
> ....ist das auch so wenn ich unterschiedliche Intervalle eingebe?
> ....wie lange dauert es, bis alle Meter einen Wert abgegeben haben?
> ....
> Fragen über Fragen, ich weiss, is doof, aber was nützt es, wenn es nirgendwo verständlich dokumentiert ist?!
>
> Lieben Gruß,
> Chris
>
>
>
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: Daniel Lauckner [mailto:vz at jahp.de]
> Gesendet: Montag, 20. Februar 2017 17:43
> An: volkszaehler.org
> Betreff: Re: [vz-dev] vzlogger.log läuft voll
>
> Hallo Christian,
>
>
> am Montag, 20. Februar 2017 um 17:34 hast du geschrieben:
>> Was ist denn daran falsch?
>> Was wäre denn richtig?
>
> Entweder "aggmode": "MAX"
> oder "interval": 60
>
> Letzteres wäre sinnvoller.
>
>
> mfg Daniel
>
>
>


More information about the volkszaehler-dev mailing list