[vz-users] S0-Werte aggregieren nur mit "aggfixedinterval": true

Jens panterglas at web.de
Wed Jan 6 21:44:32 CET 2016


Hallo Andreas,

> Am 06.01.2016 um 21:26 schrieb Andreas Götz <cpuidle at gmail.com>:
> 
> Hallo Jens,
> 
> Am 06.01.2016 um 21:12 schrieb Jens <panterglas at web.de <mailto:panterglas at web.de>>:
> 
>> Hallo Andreas,
>> 
>> die eintreffenden Impulse werden summiert bis das eingestellte Aggregationszeitintervall abgelaufen ist. Dann wird der summierte Impulswert in die DB geschrieben.
> 
> Ja, Ich habe davon gehört ;)
> 
:)

>> Nun ist es so, dass bei aktiviertem aggfixedinterval das nächstliegende Zeitintervall genommen wird um den zuvor aggregierten Impulswert zu schreiben (Beispiel: anstelle 10h 30m 29s wird der Wert bei 10h 30m 30s geschrieben, also eine Sekunde später).
> 
> Oder anders: es werden alle runden 30 Sekunden die vorher aggregierten Werte geschrieben, ja. Das sollte auch bei aggtime so sein, nur dass dann die 30 Sekunden Intervalle nicht "rund" sind.
> 
>> Fällt nun in der Differenz ein Impuls an,
> 
> Was heisst das? Um 10h 30m 29,5 sec?
> 
>> wird der auf das kommende Zeitintervall aufsummiert und dann zum nächsten Zeitwert (30 Sekunden später) geschrieben. Das kann bei kleinen Leistungen (wenig Impulse) zu Zackenmuster führen.
> 
> Verstehe ich nicht. Kleine Leistung wird bei aggtime _immer_ zu Sprüngen führen da Du nie verhindern kannst dass die Impulse zwischen den Intervallen um 1 schwanken.  
> 
> Meinst Du das?
> 
>> Bei mir sieht man das gut bei etwa 70 Watt meiner Lüftungsanlage.
> 
> Ja, hat aber m.e. Nix mit Deiner Erklärung zu tun. Was würdest Du denn stattdessen erwarten?
> 
Man kann eigentlich nichts anderes erwarten. Die Summe der Impulse stimmen bei Anwendung des aggfixedinterval nicht mehr 1:1 mit originalen Zeitintervall überein, da das Zeitintervall, dass für die DB genutzt wird zu.U. von dem original Zeitintervall abweichen kann (Beispiel: 100 Impulse in real 29,5 Sekunden, werden dann zu 100 Impulsen in 30 Sekunden). Soweit ich das verstehe schreibt vzlogger den aggregierten S0-Wert dann zum nächst „geraden“ Timestamp. Da gehen u.U. unweigerlich Informationen verloren, es sei denn man würde die Impulse zwischen den Zeitdifferenzen (Differenz "Zeitfenster reale Messung" und "Zeitfenster adaptiert um Funktion aggfixedinterval") auch interpolieren. Dafür müsste man aber über den Timestamp heraus loggen und die dann anfallenden Impulse entsprechend dem verwendeten Timestamp interpolieren, den man für die DB benutzt. Egal, ist auch nicht wichtig und vollkommen überdimensioniert. Es ist mir nur aufgefallen, da ich mich mit dem Zeitintervallen beschäftigt habe. Wenn die aggtime ohne aggfixedinterval funktioniert würde, wäre es ein Traum :) Dann passen Zeiten und Impulse 1:1 zusammen.
>> 
>> Hier ein Bild zur Verdeutlichung
>> <Schnappschuss (2016-01-06 21.08.43).png>
>> 
>> Viele Grüße
>> Jens
> 
> Viele Grüße, Andreas 
> 
>> 
>> 
>>> Am 06.01.2016 um 20:55 schrieb Andreas Götz <cpuidle at gmail.com <mailto:cpuidle at gmail.com>>:
>>> 
>>> Danke, das könnte der lange gesucht Bug mit aggtime sein!
>>> 
>>> Was meinst Du mit nicht interpoliert?
>>> 
>>> Viele Grüße, Andreas 
>>> 
>>> Am 06.01.2016 um 20:29 schrieb Jens <panterglas at web.de <mailto:panterglas at web.de>>:
>>> 
>>>> Hallo Zusammen,
>>>> 
>>>> ich logge einige S0 Zähler und seit zwei Wochen mit dem vzlogger. Ich möchte, dass nur alle 30 Sekunden ein Eintrag in die Datenbank geschrieben wird. Dafür nutze ich den Parameter „aggtime" auf 30. Das klappt auch, allerdings muss man den Parameter "aggfixedinterval" auf true setzen. Andernfalls werden die Daten gemäß dem Original-Impuls in die Datenbank geschrieben und aggtime wird ignoriert. Leider werden bei aktiviertem „aggfixedinterval“ die Werte nicht interpoliert, was zu kleinen Sägezahnmustern im Frontend führen kann - gerade bei kleinen Lasten.
>>>> 
>>>> Hier ein Screenshot mit und ohne aggfixedinterval
>>>> <Schnappschuss (2016-01-06 20.16.04).png>
>>>> 
>>>> 
>>>> Meine Knotig, nur bis zum ersten S0-Zähler, die anderen sind gleich bis auf die UUID
>>>> {
>>>>   "retry": 0,
>>>>   "daemon": true,
>>>>   "verbosity": 0,
>>>>   "log": "/var/log/vzlogger.log",
>>>>   "local": {
>>>>     "enabled": false,
>>>>     "port": 8080,
>>>>     "index": true,
>>>>     "timeout": 0,
>>>>     "buffer": 0
>>>>   },
>>>>   "push": [
>>>>     {
>>>>       "url": "http://127.0.0.1:5582 <http://127.0.0.1:5582/>"
>>>>     }
>>>>   ],
>>>>   "meters": [
>>>>     // Sensor 1
>>>>     {
>>>>       "enabled": true,
>>>>       "allowskip": false,
>>>>       "interval": -1,
>>>>       "aggtime": 30,
>>>>       "aggfixedinterval": true,
>>>>       "channels": [
>>>>         {
>>>>           "uuid": „das-ist-meine-Kanal-UUID",
>>>>           "identifier": "Impulse",
>>>>           "api": "volkszaehler",
>>>>           "middleware": "http://127.0.0.1/middleware.php <http://127.0.0.1/middleware.php>",
>>>>           "aggmode": "SUM",
>>>>           "duplicates": 0
>>>>         }
>>>>       ],
>>>>       "protocol": "s0",
>>>>       "gpio": 4,
>>>>       "resolution": 1000,
>>>>       "configureGPIO": true,
>>>>       "debounce_delay": 0
>>>>     },
>>>>     // Sensor 2
>>>> … weitere Sensoren
>>>> 
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20160106/3b1b888f/attachment-0001.html>


More information about the volkszaehler-users mailing list