<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="">Hier noch kurze Erklärung, warum „aggfixedinterval“ aus meiner Sicht vermieden werden sollte:<div class=""><br class=""></div><div class="">Grundsätzlich funktioniert aggmode wie folgt:</div><div class="">bei Aufruf von „read“:</div><div class=""><span class="Apple-tab-span" style="white-space:pre">    </span>t0 = aktuelle Zeit</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Do {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">              </span>read Meters</div><div class=""><span class="Apple-tab-span" style="white-space:pre">       </span>} Loop until akz. Zeit größer t0 + aggtime.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">     </span>dann aggregate Berechnungen</div><div class=""><br class=""></div><div class="">Das Problem ist, dass das „read Meters“ bei wenigen Impulsen (und ohne „send_zero“)) solange dauert, bis das nächste Event kommt. D.h. auch mal deutlich größer als paar Sekunden/30s,...</div><div class=""><br class=""></div><div class="">Nach der Schleife werden die Zeitstempel bei „aggfixedinterval“ aber gerundet:</div><div class="">tv.tv_sec = aggtime * (long int)((it->time_ms()/1000) / aggtime);</div><div class=""><br class=""></div><div class="">D.h. die Zeit vom letzten Event (was ja bereits außerhalb des Intervals lag) wird genommen und dann auf „aggtime“ Sekunden gerundet. -> <30s -> 0s, 30s-59s -> 30s, …</div><div class=""><br class=""></div><div class="">Das führt zu Verfälschungen der Avg Werte, da hier immer von einem fixen Zeitintervall ausgegangen wird.</div><div class="">(Bei „Sum“ sollte es eigentlich/theoretisch keinen großen Unterschied machen. Letztlich stimmt die Summe über den größeren Zeitraum ja. Aber die Frontend Darstellung könnte damit Probleme haben.)</div><div class=""><br class=""></div><div class="">Ohne aggfixedInterval wird einfach als Zeitstempel der Zeitstempel vom letzten Datensatz genommen, das kommt den Daten am nächsten.</div><div class=""><br class=""></div><div class="">Mit „send_zero“ liefert der "read MeterS0" genau nach 1s einen Wert (im Falle keines Events eben 0). D.h die obige Schleife läuft immer recht regelmäßig und vor allem unabhängig von den Daten 30-31s.</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 07.01.2016 um 20:36 schrieb Matthias Behr <<a href="mailto:mbehr@mcbehr.de" class="">mbehr@mcbehr.de</a>>:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hallo,<div class=""><br class=""></div><div class="">kannst du mal folgende Kombination testen:</div><div class="">aggfixedinterval = false // das sollte man eher nicht verwenden, beschreibe später noch mal, warum nicht.</div><div class="">dafür:</div><div class="">send_zero:true // mit aggmode willst du ja alle z.B. 30s einen Datenpunkt, auch wenn der Null ist, oder?</div><div class=""><br class=""></div><div class="">Damit sollten die Effekte, die du beobachtest weg sein.</div><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Am 06.01.2016 um 20:29 schrieb Jens <<a href="mailto:panterglas@web.de" class="">panterglas@web.de</a>>:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" 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=""><span id="cid:D8DFFB85-464C-49B0-A1D1-83977C5AE827@fritz.box" class=""><Schnappschuss (2016-01-06 20.16.04).png></span></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></div></blockquote></div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; line-height: normal; border-spacing: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Gruß</div><div class=""><br class=""></div><div class="">Matthias</div></div></span>
</div>
<br class=""></div></div></div></blockquote></div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Gruß</div><div class=""><br class=""></div><div class="">Matthias</div></div></span>
</div>
<br class=""></div></body></html>