<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=DE link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hey,</p><p class=MsoNormal>ich habe die Tabelle „Aggregate“ geleert und dann „php /var/www/<a href="http://volkszaehler.org/bin/aggregate"><span style='color:#954F72'>volkszaehler.org/bin/aggregate</span></a> run -m delta -l minute >/dev/null“ ausgeführt. Das lief ohne Fehler. Danach habe ich es nochmal ausgeführt und in der Tabelle wurde ein Datensatz entfernt. Seit dem läuft es wieder.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Danke<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Von: </b><a href="mailto:cpuidle@gmail.com">Andreas Goetz</a><br><b>Gesendet: </b>Samstag, 15. Juni 2019 13:52<br><b>An: </b><a href="mailto:volkszaehler-users@demo.volkszaehler.org">volkszaehler.org - users</a><br><b>Betreff: </b>Re: [vz-users] SQLSTATE[22012]: Division by zero</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi Rene,<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Das hat wie vermutet mit vzlogger überhaupt gar nicht zu tun:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>> Subject: Cron <pi@raspberrypi> php /var/www/<a href="http://volkszaehler.org/bin/aggregate"><span style='color:#954F72'>volkszaehler.org/bin/aggregate</span></a> run -m delta -l minute >/dev/null<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Irgendwie hast Du es geschafft einen Fehler zu provozieren den es noch nie gab. Mach mal bitte ein <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span class=apple-tab-span>                </span>aggregate clear (oder so ähnlich)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>dann den Befehl von oben.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Mal schauen ob die Tabelle sauber wieder aufgebaut werden kann. Irgendwas ist da sehr krumm…<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Viele Grüße, Andreas<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>On 15. Jun 2019, at 12:04, René W. <<a href="mailto:tylonhh@gmail.com">tylonhh@gmail.com</a>> wrote:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hallo Zusammen,<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>da habe ich wohl zu weit Gedacht und nur auf meine Anfängererfahrung vertraut. Manchmal ist es aber nicht gut wenn man „mitdenkt“. Daher meine zielgerichtete Frage.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Also dann mal von ganz Anfang:<o:p></o:p></p></div><div><p class=MsoNormal>In SSH erhalte ich die Meldung das ich eine „Mail“ habe<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>pi@raspberrypi:~ $ cat /var/mail/pi<o:p></o:p></p></div><div><p class=MsoNormal>From pi@raspberrypi Sat Jun 15 11:50:02 2019<o:p></o:p></p></div><div><p class=MsoNormal>Return-path: <pi@raspberrypi><o:p></o:p></p></div><div><p class=MsoNormal>Envelope-to: pi@raspberrypi<o:p></o:p></p></div><div><p class=MsoNormal>Delivery-date: Sat, 15 Jun 2019 11:50:02 +0200<o:p></o:p></p></div><div><p class=MsoNormal>Received: from pi by raspberrypi with local (Exim 4.92)<o:p></o:p></p></div><div><p class=MsoNormal>        (envelope-from <pi@raspberrypi>)<o:p></o:p></p></div><div><p class=MsoNormal>        id 1hc5Jy-0004aw-An<o:p></o:p></p></div><div><p class=MsoNormal>        for pi@raspberrypi; Sat, 15 Jun 2019 11:50:02 +0200<o:p></o:p></p></div><div><p class=MsoNormal>From: root@raspberrypi (Cron Daemon)<o:p></o:p></p></div><div><p class=MsoNormal>To: pi@raspberrypi<o:p></o:p></p></div><div><p class=MsoNormal>Subject: Cron <pi@raspberrypi> php /var/www/<a href="http://volkszaehler.org/bin/aggregate"><span style='color:#954F72'>volkszaehler.org/bin/aggregate</span></a><span class=apple-converted-space> </span>run -m delta -l minute >/dev/null<o:p></o:p></p></div><div><p class=MsoNormal>MIME-Version: 1.0<o:p></o:p></p></div><div><p class=MsoNormal>Content-Type: text/plain; charset=UTF-8<o:p></o:p></p></div><div><p class=MsoNormal>Content-Transfer-Encoding: 8bit<o:p></o:p></p></div><div><p class=MsoNormal>X-Cron-Env: <SHELL=/bin/sh><o:p></o:p></p></div><div><p class=MsoNormal>X-Cron-Env: <HOME=/home/pi><o:p></o:p></p></div><div><p class=MsoNormal>X-Cron-Env: <PATH=/usr/bin:/bin><o:p></o:p></p></div><div><p class=MsoNormal>X-Cron-Env: <LOGNAME=pi><o:p></o:p></p></div><div><p class=MsoNormal>Message-Id: <E1hc5Jy-0004aw-An@raspberrypi><o:p></o:p></p></div><div><p class=MsoNormal>Date: Sat, 15 Jun 2019 11:50:02 +0200<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>In AbstractMySQLDriver.php line 106:<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>  An exception occurred while executing 'REPLACE INTO aggregate (channel_id,<o:p></o:p></p></div><div><p class=MsoNormal>  type, timestamp, value, count) SELECT channel_id, ? AS type, MAX(agg.timest<o:p></o:p></p></div><div><p class=MsoNormal>  amp) AS timestamp, COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) - M<o:p></o:p></p></div><div><p class=MsoNormal>  IN(agg.prev_timestamp)), AVG(agg.value)) AS value, COUNT(agg.value) AS coun<o:p></o:p></p></div><div><p class=MsoNormal>  t FROM ( SELECT channel_id, timestamp, value, value * (timestamp - @prev_ti<o:p></o:p></p></div><div><p class=MsoNormal>  mestamp) AS val_by_time, COALESCE(@prev_timestamp, 0) AS prev_timestamp, @p<o:p></o:p></p></div><div><p class=MsoNormal>  rev_timestamp := timestamp FROM data CROSS JOIN (SELECT @prev_timestamp :=<o:p></o:p></p></div><div><p class=MsoNormal>  UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%d %H:%<o:p></o:p></p></div><div><p class=MsoNormal>  i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = ? AND aggreg<o:p></o:p></p></div><div><p class=MsoNormal>  ate.channel_id = ?) AS vars WHERE channel_id = ? AND timestamp >= IFNULL((S<o:p></o:p></p></div><div><p class=MsoNormal>  ELECT UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%<o:p></o:p></p></div><div><p class=MsoNormal>  d %H:%i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = ? AND<o:p></o:p></p></div><div><p class=MsoNormal>  aggregate.channel_id = ? ), 0) AND timestamp < UNIX_TIMESTAMP(DATE_FORMAT(N<o:p></o:p></p></div><div><p class=MsoNormal>  OW(), "%Y-%m-%d %H:%i:00")) * 1000 ) AS agg GROUP BY channel_id, YEAR(FROM_<o:p></o:p></p></div><div><p class=MsoNormal>  UNIXTIME(timestamp/1000)), DAYOFYEAR(FROM_UNIXTIME(timestamp/1000)), HOUR(F<o:p></o:p></p></div><div><p class=MsoNormal>  ROM_UNIXTIME(timestamp/1000)), MINUTE(FROM_UNIXTIME(timestamp/1000))' with<o:p></o:p></p></div><div><p class=MsoNormal>  params [1, 1, "1", "1", 1, "1"]:<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>  SQLSTATE[22012]: Division by zero: 1365 Division by 0<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>In PDOStatement.php line 119:<o:p></o:p></p></div><div><p class=MsoNormal>  SQLSTATE[22012]: Division by zero: 1365 Division by 0<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>In PDOStatement.php line 117:<o:p></o:p></p></div><div><p class=MsoNormal>  SQLSTATE[22012]: Division by zero: 1365 Division by 0<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>run [-l|--level LEVEL] [-m|--mode MODE] [-p|--periods PERIODS] [-v|--verbose] [--] [<uuid>...]<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Das ist erstmal die Ausgangssituation.<o:p></o:p></p></div><div><p class=MsoNormal>Wenn ich jetzt aber so über die Sinnhaftigkeit der aggtime nachdenke, macht es dann nicht eher Sinn mit den Gesamtzählerständen zu arbeiten? Mein Ziel ist es jedenfalls den momentanen Verbrauch (also die Differenz zweier Gesamtstände) darzustellen. Das hätte zumindest den Vorteil das mir kein Verbrauch flöten geht. Oder?<o:p></o:p></p></div><div><p class=MsoNormal>Ich würde stand jetzt erstmal den Intervall bei den Leistungswerten deaktivieren, wenn ich das richtig verstanden habe.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>LG<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><div><p class=MsoNormal><b>Von:<span class=apple-converted-space> </span></b><a href="mailto:vz@jahp.de"><span style='color:#954F72'>Daniel Lauckner</span></a><br><b>Gesendet:<span class=apple-converted-space> </span></b>Samstag, 15. Juni 2019 08:25<br><b>An:<span class=apple-converted-space> </span></b><a href="mailto:volkszaehler-users@demo.volkszaehler.org"><span style='color:#954F72'>volkszaehler.org - users</span></a><br><b>Betreff:<span class=apple-converted-space> </span></b>Re: [vz-users] SQLSTATE[22012]: Division by zero<o:p></o:p></p></div></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Hallo,<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>am Samstag, 15. Juni 2019 um 04:30 hat René W. geschrieben:<o:p></o:p></p></div><div><p class=MsoNormal>> ich erhalte eine SQL Fehlermeldung „SQLSTATE[22012]: Division by Zero“.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Details?<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>> Ich vermute sehr stark das es an den aggtime und interval<o:p></o:p></p></div><div><p class=MsoNormal>> liegt.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Glaube ich ehrlich gesagt nicht.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>> Kann da bitte jemand mal auf meine conf schauen?<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Jupp, kann ja nix schaden.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>> Welche Werte würden denn dort sonst Sinn machen?<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Bei d0-Zählern stellt sich eigentlich die Frage: Entweder/Oder<o:p></o:p></p></div><div><p class=MsoNormal>Es ergibt keine Sinn den Zähler(stand) mehrfach abzufragen nur um<o:p></o:p></p></div><div><p class=MsoNormal>dann die Werte zu aggregieren. Es genügt die Anwendung von Intervall.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Bei Leistungswerten muss man aber jeden verfügbaren Wert abgreifen um<o:p></o:p></p></div><div><p class=MsoNormal>einen möglichst aussgekräftigen Mittelwert zu erhalten. Da würde man<o:p></o:p></p></div><div><p class=MsoNormal>auch bei einem D0-Zähler auf Aggregation zurückgreifen. Aber ohne<o:p></o:p></p></div><div><p class=MsoNormal>Intervall.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>mfg Daniel<o:p></o:p></p></div></div></blockquote></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>