<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hallo Andreas,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 06.01.2016 um 21:26 schrieb Andreas Götz <<a href="mailto:cpuidle@gmail.com" class="">cpuidle@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class=""></div><div class="">Hallo Jens,</div><div class=""><br class="">Am 06.01.2016 um 21:12 schrieb Jens <<a href="mailto:panterglas@web.de" class="">panterglas@web.de</a>>:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class="">Hallo Andreas,<div class=""><br class=""></div><div class="">die eintreffenden Impulse werden summiert bis das eingestellte Aggregationszeitintervall abgelaufen ist. Dann wird der summierte Impulswert in die DB geschrieben. </div></div></blockquote><div class=""><br class=""></div>Ja, Ich habe davon gehört ;)<div class=""><br class=""></div></div></div></blockquote>:)</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="auto" class=""><div class=""><blockquote type="cite" class=""><div class=""><div class="">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). </div></div></blockquote><div class=""><br class=""></div>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.</div><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div class="">Fällt nun in der Differenz ein Impuls an, </div></div></blockquote><div class=""><br class=""></div>Was heisst das? Um 10h 30m 29,5 sec?</div></div></div></blockquote><blockquote type="cite" class=""><div class=""><div dir="auto" class=""><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div class="">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.</div></div></blockquote><div class=""><br class=""></div>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.  </div><div class=""><br class=""></div><div class="">Meinst Du das?</div><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div class=""> Bei mir sieht man das gut bei etwa 70 Watt meiner Lüftungsanlage.</div></div></blockquote><div class=""><br class=""></div>Ja, hat aber m.e. Nix mit Deiner Erklärung zu tun. Was würdest Du denn stattdessen erwarten?</div><div class=""><br class=""></div></div></div></blockquote>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.</div><div><blockquote type="cite" class=""><div class=""><div dir="auto" class=""><div class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""></div><div class="">Hier ein Bild zur Verdeutlichung</div><div class=""><Schnappschuss (2016-01-06 21.08.43).png></div><div class=""><br class=""></div><div class="">Viele Grüße</div><div class="">Jens</div></div></blockquote><div class=""><br class=""></div>Viele Grüße, Andreas </div><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Am 06.01.2016 um 20:55 schrieb Andreas Götz <<a href="mailto:cpuidle@gmail.com" class="">cpuidle@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class=""></div><div class="">Danke, das könnte der lange gesucht Bug mit aggtime sein!</div><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Was meinst Du mit nicht interpoliert?</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class=""><br class=""></span></div><div class="">Viele Grüße, Andreas </div><div class=""><br class="">Am 06.01.2016 um 20:29 schrieb Jens <<a href="mailto:panterglas@web.de" class="">panterglas@web.de</a>>:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class="">Hallo Zusammen,<div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Hier ein Screenshot mit und ohne aggfixedinterval</div><div class=""><Schnappschuss (2016-01-06 20.16.04).png></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Meine Knotig, nur bis zum ersten S0-Zähler, die anderen sind gleich bis auf die UUID</div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">{</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "retry": 0,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "daemon": true,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "verbosity": 0,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "log": "/var/log/vzlogger.log",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "local": {</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    "enabled": false,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    "port": 8080,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    "index": true,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    "timeout": 0,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    "buffer": 0</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  },</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "push": [</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    {</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "url": "<a href="http://127.0.0.1:5582/" class="">http://127.0.0.1:5582</a>"</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    }</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  ],</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">  "meters": [</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    // Sensor 1</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    {</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "enabled": true,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "allowskip": false,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "interval": -1,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "aggtime": 30,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "aggfixedinterval": true,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "channels": [</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">        {</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">          "uuid": „das-ist-meine-Kanal-UUID",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">          "identifier": "Impulse",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">          "api": "volkszaehler",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">          "middleware": "<a href="http://127.0.0.1/middleware.php" class="">http://127.0.0.1/middleware.php</a>",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">          "aggmode": "SUM",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">          "duplicates": 0</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">        }</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      ],</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "protocol": "s0",</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "gpio": 4,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "resolution": 1000,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "configureGPIO": true,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">      "debounce_delay": 0</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    },</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">    // Sensor 2</div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">… weitere Sensoren</div><div class=""><br class=""></div></div></blockquote></div></div></blockquote></div><br class=""></div></div></blockquote></div></div></div></blockquote></div><br class=""></div></body></html>