[vz-users] immer noch Spikes bei auswertung Zählerstände Solar

Rupert Schöttler rupert.schoettler at gmx.de
So Jul 30 14:23:42 CEST 2023


Hallo Tobias,

ich verstehe Deinen Frust, vermutlich habe ich ihn mit meinen halbgaren
Hinweisen sogar gesteigert -- nochmals sorry...


Am 30.07.23 um 10:37 schrieb Tobias Baumann:
> Da ich beim letzten mal im Mai bereits über 40 value per hand gelöscht
> habe war mir es diesmal zu umständlich ich habe mal einen Script bauen
> lassen von chatgpt + einige änderungen von mir

In PowerShell bin ich nicht wirklich fit. Ich lese aber heraus, es
löscht auf einem Kanal V2 in einem Zeitfenster V3 bis V4 alle Werte, die
größer sind als eine Schwelle V5.

Ich rate mal, was Du da machen willst: Das Skript fragt den Kanal (UUID)
der Zählerstände ab, bekommt aber (weil kein "&options=raw" enthalten
ist), die Leistungen im Zeitfenster zurück. Solange das Leistungsmaximum
größer als die Schwelle V5 ist, löscht es den Zählerstand raus, der zur
höchsten Leistung geführt hat.

Da habe ich spontan die Frage: Wird der richtige Zählerstand gelöscht?
Es sollte m.E. der am Anfang des Spikes sein. Also z.B. in dem Fall, den
Daniel analysiert hat: Wenn um 16:56 wg. abgelaufenem Duplicates der
bisherige Zählerstand nochmal geschrieben wurde und um 16:57 der
umgesprungene Zählerstand rein kam, würde ich den Zählerstand von 16:56
löschen. Ist das der Zeitstempel, der dem Peak zugeschrieben wird? Dann
passt's. Wenn das Skript den Zählerstand von 16:57 löscht, ist der Peak
vermutlich auch weg, aber Du hast die Leistungsdaten zumindest
geringfügig verfälscht.

Ein anderer Lösungsweg könnte sein, die Zählerstände zu analysieren
(also mit &options=raw), und den späteren zu löschen, wenn er identisch
dem vorherigen ist. Also duplicates auf DB-Ebene korrigieren, wenn
vzlogger es nicht geschafft hat.

Hab' noch mal in den Code von vzlogger geschaut:

- Default von duplicates ist 0, auskommentieren hilft also sicher nicht.

- Werte <0 sollten eine Ausnahme werfen und werden vielleicht auch auf
den default gesetzt.

- Die Variable duplicates ist vom Typ int, wird aber mit 1000
multipliziert duplicates_ms zugewiesen -- und das ist auch int. In C++
sollte INT_MAX mindestens 2^31 -1 sein, also etwas über 2 Milliarden.
Der Parameter duplicates sollte damit 2 Mio Sekunden vertragen, das
wären über 3 Wochen -- da hat die PV-Anlage hoffentlich mehr als 0,1 kWh
geliefert, und der Peak würde nur noch bei ungünstigen Reboots auftreten
können.

Oder der Betrachter der Grafik kennt das "Problem" und schaut es sich
weg. Alle Daten und weiteren Auswertungen sind ja richtig, nur die
Leistung stimmt nicht in diesem kurzen Zeitraum.

Viel Erfolg und viele Grüße

Rupert

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : smime.p7s
Dateityp    : application/pkcs7-signature
Dateigröße  : 5996 bytes
Beschreibung: S/MIME Cryptographic Signature
URL         : <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20230730/89749e11/attachment.bin>


Mehr Informationen über die Mailingliste volkszaehler-users