<div dir="ltr"><div>Danke Manfred, jetzt habe ich auch das Problem verstanden. Deine Erklärung ist plausibel. Es hat zwar nur 4 Jahre gedauert, aber besser als nie. ;-)</div><div>Gruß René<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Mo., 24. Apr. 2023 um 20:20 Uhr schrieb mh <<a href="mailto:mh.er@arcor.de">mh.er@arcor.de</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    Hallo Micha,<br>
    <br>
    das Problem entsteht dadurch, dass du einen Datenwert exakt bei der
    vollen Minute <span>(Sonntag,
      23.04.2023, 22:15Uhr) hast, und das aggregate Script für diesen
      Zeitpunkt den nächsten Wert der aggregate Tabelle berechnen will.<br>
      <br>
      In der SQL Anweisung </span><br>
    <span><br>
      COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) -
      MIN(agg.prev_timestamp)),<br>
      <br>
      ist dann </span><span><span>(MAX(agg.timestamp) </span>=
    </span><span><span>MIN(agg.prev_timestamp), was
        zur Division durch Null führt. <br>
        Das Problem tritt übrigens nur auf, weil es nur einen Datenwert
        in diesem Minutenslot gibt.<br>
        (ich hatte das schon am 24.3. mal geschrieben - zugegebenermaßen
        etwas schwer verständlich formuliert).<br>
        <br>
        Ich habe beim Check meiner Datenbank übrigens das gleiche
        Problem entdeckt, das da seit Anfang Januar "schlummert".<br>
        <br>
        Hier mal zwei Screenshots aus HeidiSQL, einmal die Daten zum
        kritischen Zeitpunkt<br>
        <br>
        <br>
        <img src="cid:187b4f248a5e7e7311e1"><br>
        <br>
        und die zugehörige aggregate Tabelle, die am 2023-01-02 15:09:53
        abbricht, weil der Wert für 15:10 immer wieder zur Division
        durch 0 führt, <br>
        weil kein weiterer Datenwert im Zeitslot für 15:10 existiert
        (sonder erst um 15:11:37).<br>
        <br>
        <img src="cid:187b4f248a557b7e6272"><br>
        <br>
        Du kannst die SQL Kommandos modifiziert für channel_id und
        Zeitpunkt bei dir mal ausprobieren, und solltest etwas ähnliches
        finden.<br>
        <br>
        Es gibt zwei Abhilfen:<br>
        a. du kannst die aggregate Tabelle für den Kanal neu rechnen
        lassen, dann kommt das Skript "über" die kritische Stelle<br>
        b. du kannst den Zeitstempel des Datenwertes modifizieren, z.b.
        ein Sekunde dazugeben.<br>
        <br>
        zu b.:<br>
        Wenn du HeidiSQL verwendest, geht das einfach durch Ändern der
        entsprechenden Zelle.<br>
        <br>
        In mysql geht das mit folgendem Befehl:<br>
        <br>
        REPLACE INTO volkszaehler.data (channel_id,timestamp,value)
        VALUES (3, </span></span><span><span><span>1682280901000 </span>,
        <dein value>)<br>
        <br>
        Falls du mit SQL nicht vertraut bist:<br>
        Den Wert von <dein value> kannst du mit dem Kommando<br>
        <br>
        SELECT * FROM </span></span><span><span><span><span>volkszaehler.data</span></span>
        WHERE channel_id=3 AND timestamp= </span></span><span><span><span></span><span><span><span>1682280900000<br>
              <br>
              herausfinden.<br>
              <br>
              Ich werde einen issue aufmachen, um einen fix im Script zu
              addressieren.<br>
              <br>
              Gruss<br>
              Manfred<br>
              <br>
              <br>
              <br>
            </span></span></span></span></span>
    <div>Am 24.04.2023 um 17:07 schrieb
      <a href="mailto:hartmann-micha@web.de" target="_blank">hartmann-micha@web.de</a>:<br>
    </div>
    <blockquote type="cite">
      
      
      
      <div>
        <p class="MsoNormal"><span>Hallo
            Jens, <u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span>erwartungsgemäß
            ist das Problem wieder da! Die Aggregation die ich nun alle
            15min nur noch auf ausgewählte Kanäle laufen lasse schlägt
            wieder fehl.<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span>Ich
            habe dein SQL-Statement ausgeführt und hänge die CSV-Datei
            hier an.<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span>Hier
            sehe ich mit Timestamp 1682280900000 (Sonntag, 23.04.2023,
            22:15Uhr) Nullwerte. Das passt da ich erstmalig 22:30Uhr die
            Fehlermeldung bekomme.<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span>Wie
            muss ich das nun interpretieren. Dabei brauche ich
            Unterstützung!<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span>Viele
            Grüße<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span>Micha<u></u><u></u></span></p>
        <div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0cm 0cm">
          <p class="MsoNormal"><b>Von:</b> Jens Scheidtmann
            <a href="mailto:jens.scheidtmann@gmail.com" target="_blank"><jens.scheidtmann@gmail.com></a> <br>
            <b>Gesendet:</b> Samstag, 25. März 2023 14:30<br>
            <b>An:</b> Michael Hartmann <a href="mailto:hartmann-micha@web.de" target="_blank"><hartmann-micha@web.de></a>;
            <a href="http://volkszaehler.org" target="_blank">volkszaehler.org</a> - users
            <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<u></u><u></u></p>
        </div>
        <p class="MsoNormal"><u></u> <u></u></p>
        <div>
          <p class="MsoNormal">Hallo Micha,<u></u><u></u></p>
        </div>
        <div>
          <p class="MsoNormal"><u></u> <u></u></p>
        </div>
        <div>
          <p class="MsoNormal">die Statements sollen im Fehlerfall die
            Tabellenzeilen finden, die zum Fehler führen. <u></u><u></u></p>
        </div>
        <div>
          <p class="MsoNormal">Ohne Fehler gibt es keine 0-Zeilen.<u></u><u></u></p>
        </div>
        <div>
          <p class="MsoNormal"><u></u> <u></u></p>
        </div>
        <div>
          <p class="MsoNormal">Wenn es jetzt nicht mehr auftritt, dann
            war die Drohung ausreichend. <span style="font-family:"Segoe UI Emoji",sans-serif">😉</span><u></u><u></u></p>
        </div>
        <div>
          <p class="MsoNormal"><u></u> <u></u></p>
        </div>
        <div>
          <p class="MsoNormal">Jens <u></u><u></u></p>
        </div>
        <p class="MsoNormal"><u></u> <u></u></p>
        <div>
          <p class="MsoNormal">Michael Hartmann <<a href="mailto:hartmann-micha@web.de" target="_blank">hartmann-micha@web.de</a>>
            schrieb am Sa. 25. März 2023 um 12:40:<u></u><u></u></p>
        </div>
        <p class="MsoNormal"><span style="color:rgb(31,73,125)">Hallo Jens,</span><u></u><u></u></p>
        <p class="MsoNormal"><span style="color:rgb(31,73,125)"> </span><u></u><u></u></p>
        <p class="MsoNormal"><span style="color:rgb(31,73,125)">ich habe das erste SQL-Statement
            ausgeführt und hänge das CSV hier an.</span><u></u><u></u></p>
        <p class="MsoNormal"><span style="color:rgb(31,73,125)"> </span><u></u><u></u></p>
        <p class="MsoNormal"><span style="color:rgb(31,73,125)">Einen Nullwert kann ich da nicht
            ausmachen. Auch scheint mir die Ausgabe nicht so zu sein wie
            gewünscht/erwartet? Die Frage ist auch, ob der Ansatz so
            funktioniert, da ich die Aggregationstabelle ja neu
            aufgebaut habe und das minütliche Aggregieren aktuell
            fehlerfrei ist.</span><u></u><u></u></p>
        <p class="MsoNormal" style="background-color:rgba(0,0,0,0)"><span style="color:rgb(31,73,125)">[…]</span><u></u><u></u></p>
      </div>
    </blockquote>
    <br>
  </div>
</blockquote></div>