Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread - "DatabaseAddOn" Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Zitat von Sisamiwe Beitrag anzeigen
    Die Agrartemperatursummen werde ich basierend auf der Tagesmitteltemperatur berechnen.
    Aktuell wird diese aus dem Mittelwert der Stundenmittelwerte aller in der DB enthaltenen Daten errechnet. Mal schauen, vielleicht fällt mir noch was besseres ein.
    Ja ich habe mich ein wenig durch den Quellcode gewühlt und auch gedacht, dass das anders sicherlich sinnvoller ist. Klingt gut.

    Zitat von Sisamiwe Beitrag anzeigen
    Ggf. noch ein Hochpass- und TiefpassFilter, so dass alle Werte unterhalb und überhalb ignoriert werden. Hast Du da eine Idee?
    Schlussendlich kann die Auswertung nur so gut sein, wie die Daten in der DB.
    Ich denke ein Filter wäre nicht notwendig. Da sollte ja nur das gespeichert sein, was man auch braucht, außer im Zweifel Nullwerte, die da nicht reingehören, die man aber noch mit dem Parameter im Item filtern könnte. Es wird bei mir jede Wertänderung gespeichert.

    Zitat von Sisamiwe Beitrag anzeigen
    Das ist tatsächlich viel. Kannst Du dir die Rohdaten in der DB mal anschauen, ab diese korrekt sind?
    Habe ich gemacht, aber so richtig schlau werde ich draus nicht. Ich habe erst einmal alle Daten in Excel importiert, die das Jahr 2023 betreffen. Aber letztendlich nützen mir die Zahlen nichts. Zumindest wüsste ich nicht, wo ich da was prüfen sollte. Summenwerte, Mittelwerte?

    Was ich aber noch gemacht habe die Kältesumme noch mal an einem anderen Messpunkt ermitteln lassen. So ergibt sich einmal eine Kältesumme von 117 und beim anderen messpunkt von 140. Beide Werte etwas hoch, wie ich meine.

    Kommentar


      #17
      Hi,

      ich habe jetzt angefangen meine vorhanden Berechnung zu erweitern und habe bei einem Wert noch ein Problem mit den Werten für Monat, Vormonat und Jahr für ein Item.
      Heute, gestern, vorgestern, Woche und Vorwoche werden berechnet.In der DB steht ein ordentlicher Wert zum 1.1.23. Trotz allem wird als Wert "-4294962458.1" ermittelt - siehe Screenshot



      ac_energy.png​Das Debug-Log hat mich noch nicht weitergebracht.

      Code:
      2023-03-30 13:48:24 UTC DEBUG    __init__          Main         parse item: Haus.Zentral.Wechselrichter.ac_energy_total.verbrauch_jahr due to 'db_addon_fct'  --  (__init__.py:parse_item:233)
      2023-03-30 13:48:24 UTC DEBUG    __init__          Main         [B]Attribut 'database' has not been found for item=Haus.Zentral.Wechselrichter.ac_energy_tota[/B]l.verbrauch_jahr 1 level above item.  --  (__init__.py:get_database_item:198)
      2023-03-30 13:48:24 UTC DEBUG    __init__          Main         Item 'Haus.Zentral.Wechselrichter.ac_energy_total.verbrauch_jahr' added with db_addon_fct=verbrauch_jahr and database_item=Haus.Zentral.Wechselrichter.ac_energy_total  --  (__init__.py:parse_item:262)
      2023-03-30 13:48:24 UTC DEBUG    __init__          Main         Item 'Haus.Zentral.Wechselrichter.ac_energy_total.verbrauch_jahr' added to be run on-change.  --  (__init__.py:parse_item:349)
      ​.
      .
      .
      plugins.db_addon.work_item_queue Item value for 'Haus.Zentral.Wechselrichter.ac_energy_total.verbrauch_jahr' will be set to -4294962458.1  --  (__init__.py:handle_onchange:742)
      ​
      Das "database"-Attribut ist da, sonst könnte er den Rest ja vermutlich auch nicht berechnen?
      Das genaue Statement habe ich noch nirgendwo beim Debug gefunden, sonst würde ich das mal direkt gegen die DB laufen lassen. Weitere Items funktionieren problemlos.
      Ich bin für Tipps und Hinweise zur weiteren Fehlersuche dankbar.

      Danke und Grüße
      Gunnar

      Edit: Mittlerweile habe ich das Statement gefunden - Item-ID 52
      :
      Code:
      Called with query='SELECT time, ROUND(MIN(val_num), 1) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1 ORDER BY time ASC', params={'item_id': 52, 'ts_start': 1679270400000, 'ts_end': 1679788800000},
      
      und noch eins, inkl. unsinnigem Result
      
      SELECT time, ROUND(MAX(val_num), 1) as value FROM log WHERE item_id = 52 AND time BETWEEN 1672531200000 AND 1675209600000 AND val_bool = 1 ORDER BY time ASC;
      +---------------+-----------+
      | time          | value     |
      +---------------+-----------+
      | 1672561002447 | 4294967.3 |
      +---------------+-----------+
      1 row in set (0.957 sec)
      
      ​
      -----------------

      In der DB waren sinnlose Einträge,die beim Select durchschlagen. Die hat auch das WebIF vom Database-Addon nicht angezeigt, ware nur über Abfrage im mySQL zu finden.

      Code:
      
      
      1670336740253 | 3584.88 |
      | 1670337550326 | 3584.89 |
      [B]| 1670376078067 | 4294967.29 |[/B]
      | 1670396301329 | 3584.89 |
      | 1670398162051 | 3584.9 |
      | 1670398522470 | 3584.91 |
      | 1670398852291 | 3584.92 |
      
      ​MariaDB [smarthome]> delete from log WHERE item_id = 52 and val_num='4294967.29';
      Query OK, 27 rows affected (19.562 sec)
      Danach passten die Berechnungen.
      Zuletzt geändert von gklein; 30.03.2023, 19:38. Grund: Info zur Lösung

      Kommentar


        #18
        Hallo Sisamiwe

        ich habe eine Frage zum integrierten Struct. Nach dem Neustart von SHNG dauert es ja eine Weile bis die Daten neu berechnet werden, was hier im Hause zu temporärer Verwirrung geführt hat
        Ich habe jetzt überlegt, das Struct um "cache: yes" zu erweitern und dabei im Code gesehen, dass Du das dort schon drin aber auskommentiert hast.

        Code:
          
        item_structs:
            verbrauch_1:
                name: Struct für Verbrauchsauswertung bei Zählern mit stetig ansteigendem Zählerstand (Teil 1)
                verbrauch_heute:
                    name: Verbrauch heute
                    db_addon_fct: verbrauch_heute
                    type: num
                    visu_acl: ro
                    # cache: yes
        
                verbrauch_woche:
                    name: Verbrauch seit Wochenbeginn
                    db_addon_fct: verbrauch_woche
                    type: num
                    visu_acl: ro
                    # cache: yes​
        ​
        Gibt es dafür einen guten Grund oder kann ich das guten Gewissens ändern?

        Danke und Grüße
        Gunnar​

        Kommentar


          #19
          Zitat von gklein Beitrag anzeigen
          Gibt es dafür einen guten Grund oder kann ich das guten Gewissens ändern?
          Hallo Gunnar,

          es gibt keinen spezifischen Grund. Ich hatte die Fragen auch aus einem anderen Kanal.
          Es gibt einen PR, um das wieder zu aktivieren.

          Beste Grüße
          Michael

          Kommentar

          Lädt...
          X