<html xmlns:v="urn:schemas-microsoft-com:vml" 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 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.m-2024002216697058698msoplaintext, li.m-2024002216697058698msoplaintext, div.m-2024002216697058698msoplaintext
{mso-style-name:m_-2024002216697058698msoplaintext;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.E-MailFormatvorlage19
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ich habe den von René verlinkten thread durchgelesen. Ja, das ist das gleiche Problem wie bei mir. Nur das der Workaround den er seinerzeit durchgeführt hat,, nämlich das Aggregate-Table zu löschen und neu aufzubauen bei mir nur temporär wirkt.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Der Fehler kommt nach einiger Zeit wieder.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Leider scheint es seither keine Lösung dafür zu geben oder auch nur eine konkrete Ursache bekannt zu sein.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Grüße<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Micha<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> volkszaehler-users [mailto:volkszaehler-users-bounces@demo.volkszaehler.org] <b>Im Auftrag von </b>René W<br><b>Gesendet:</b> Montag, 20. März 2023 15:10<br><b>An:</b> volkszaehler.org - users<br><b>Betreff:</b> Re: [vz-users] Aggregation (minute) schlägt fehl<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Ich hatte „damals“ auch schon diese nervige Meldung: <o:p></o:p></p><div><p class=MsoNormal><a href="https://demo.volkszaehler.org/pipermail/volkszaehler-users/2019-June/013374.html">https://demo.volkszaehler.org/pipermail/volkszaehler-users/2019-June/013374.html</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Vielleicht sind dort ja noch ein paar Hinweise. Ich selber nutze VZ nicht mehr dafür.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Gruß René<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Michael Hartmann <<a href="mailto:hartmann-micha@web.de">hartmann-micha@web.de</a>> schrieb am Mo. 20. März 2023 um 15:03:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Hallo Christian,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>ich hatte erst an negative Werte gedacht und keine um den „Ausstiegszeitpunkt“ gefunden. Das scheidet aber auch aus, da sich die Werte im Zähler befinden und somit keine Division durch Null hervorrufen können.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Was mich irritiert ist das nach Löschen der aggregierten Daten deren Neuerstellung fehlerfrei durchläuft.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Kann jemand aus der Fehlermeldung erkennen um welchen Kanal (Channel_ID) es gehen könnte?</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Grüße</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Micha</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'> </span><o:p></o:p></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> volkszaehler-users [mailto:<a href="mailto:volkszaehler-users-bounces@demo.volkszaehler.org" target="_blank">volkszaehler-users-bounces@demo.volkszaehler.org</a>] <b>Im Auftrag von </b>Christian Lange<br><b>Gesendet:</b> Montag, 20. März 2023 11:29<br><b>An:</b> <a href="mailto:volkszaehler-users@demo.volkszaehler.org" target="_blank">volkszaehler-users@demo.volkszaehler.org</a><br><b>Betreff:</b> Re: [vz-users] Aggregation (minute) schlägt fehl</span><o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p>Hi Micha, <o:p></o:p></p><p>ich hab leider keine Ahnung, wie die Datenbank aussieht (ich nutze selbst eine andere), aber der Fehler sagt aus, dass eine Division durch 0 vorliegt. <o:p></o:p></p><p>Die einzige Zeile in der SQL Query, die mir da ins Auge sticht ist diese hier:<o:p></o:p></p><p>> COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) - MIN(agg.prev_timestamp)), <o:p></o:p></p><p>Das Maximum des Timestamps minus dem Minimum des vorherigen Timestamps aus der (on the fly) erzeugten "agg" Tabelle sind zusammen 0. Daher klappt die Division und damit die SQL Query nicht. Die Daten stammen (soweit ich das sehen kann) aus der "data" Tabelle. Vielleicht fällt dir ja da etwas auf in den Daten bei den Timestamps. Den Rest überlasse ich den Experten, die das Tool so im Einsatz haben ;)<o:p></o:p></p><p>Viel Erfolg,<br>Christian <o:p></o:p></p><p> <o:p></o:p></p><p> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Am 20.03.2023 um 10:37 schrieb Michael Hartmann:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Hallo,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>ich hole das hier noch einmal vor, da es ziemliche nervt.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Via cronjob lasse ich alle 10min eine Aggregation auf die Minute laufen. Bereits vor einigen Wochen ist diese dann plötzlich mit der folgenden Fehlermeldung ausgestiegen:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><p class=m-2024002216697058698msoplaintext><span lang=EN-US>In AbstractMySQLDriver.php line 128:</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> An exception occurred while executing 'REPLACE INTO aggregate (channel_id,</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> type, timestamp, value, count) SELECT channel_id, ? AS type, MAX(agg.timest</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> amp) AS timestamp, COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) - M</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> IN(agg.prev_timestamp)), AVG(agg.value)) AS value, COUNT(agg.value) AS coun</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> t FROM ( SELECT channel_id, timestamp, value, value * (timestamp - @prev_ti</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> mestamp) AS val_by_time, COALESCE(@prev_timestamp, 0) AS prev_timestamp, @p</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> rev_timestamp := timestamp FROM data CROSS JOIN (SELECT @prev_timestamp :=</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%d %H:%</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = ? AND aggreg</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> ate.channel_id = ?) AS vars WHERE channel_id = ? AND timestamp >= IFNULL((S</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> ELECT UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, "%Y-%m-%</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> d %H:%i:00"), INTERVAL 1 minute)) * 1000 FROM aggregate WHERE type = ? AND</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> aggregate.channel_id = ? ), 0) AND timestamp < UNIX_TIMESTAMP(DATE_FORMAT(N</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> OW(), "%Y-%m-%d %H:%i:00")) * 1000 ) AS agg GROUP BY channel_id, YEAR(FROM_</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> UNIXTIME(timestamp/1000)), DAYOFYEAR(FROM_UNIXTIME(timestamp/1000)), HOUR(F</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> ROM_UNIXTIME(timestamp/1000)), MINUTE(FROM_UNIXTIME(timestamp/1000))' with</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> params [1, 1, "3", "3", 1, "3"]:</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> SQLSTATE[22012]: Division by zero: 1365 Division by 0</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US>In Exception.php line 18:</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> SQLSTATE[22012]: Division by zero: 1365 Division by 0</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US>In PDOStatement.php line 117:</span><o:p></o:p></p><p class=m-2024002216697058698msoplaintext><span lang=EN-US> </span><o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm'><p class=m-2024002216697058698msoplaintext><span lang=EN-US> SQLSTATE[22012]: Division by zero: 1365 Division by 0</span><o:p></o:p></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Die Aggregation auf Stunde und Tag bereitet (bisher) keine Probleme.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Beim letzten Mal hatte ich die Aggregationstabelle gelöscht und neu aufgebaut. Nach einigen Wochen kommt der Fehler nun wieder.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Kann mir jemand erklären wo das Problem liegt? Die Fehlermeldung kann ich nicht interpretieren.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Viele Grüße<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Micha<o:p></o:p></p></blockquote></div></div></blockquote></div></div></div></body></html>