Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread - "DatabaseAddOn" Plugin

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

    Support Thread - "DatabaseAddOn" Plugin

    Hallo,

    das ist der Support Thread für das "DatabaseAddOn" Plugin.

    #2
    Hallo,

    vielen Dank für das AddOn.
    Es funktioniert jetzt sogar mit Sqlite, oder?

    Gruß,
    Hendrik

    Kommentar


      #3
      henfri

      Ja, es funktioniert auch mit sqlite

      Beste Grüße

      Kommentar


        #4
        So ich habe das Update etzt gezogen und alles eingerichtet. Irgendwie werden mir aber keine Werte gezeigt:

        Code:
                Wetterstation:
                    Temperatur:
                        type: num
                        knx_dpt: 9
                        knx_cache: 4/0/0
                        database: init
                        database_maxage: 732
                        visu_acl: ro
                        Gruenlandtemperatursumme:
                            type: num
                            database: init
                            database_maxage: 732
                            db_addon_fct: gruenlandtempsumme
                            db_addon_params: "year=current"
                            db_addon_startup: yes
                        Waermesumme:
                            type: num
                            database: init
                            database_maxage: 732
                            db_addon_fct: waermesumme      
                            db_addon_params: "year=current"
                            db_addon_startup: yes​
        Das Plugin läuft und meine Items werden auch gelistet. Der Wert belibt 0 und scheint auch vom plugin, lauit Item-Info nicht geändert worden zu sein.

        Habe ich was übersehen?

        Kommentar


          #5
          Zitat von Cannon Beitrag anzeigen
          Habe ich was übersehen?
          Die Konfig sieht gut aus.

          Was sagt denn das Debug-Log dazu?

          Kommentar


            #6
            Zitat von Sisamiwe Beitrag anzeigen
            Was sagt denn das Debug-Log dazu
            Kein Eintrag dazu.

            Kommentar


              #7
              Zitat von Sisamiwe Beitrag anzeigen
              Was sagt denn das Debug-Log dazu?
              Ich habe jetzt nochmal mit dem Plugin gespielt. Also das Plugin mal im Webif pausiert und wieder fortgesetzt. Beides steht im Log. Es gibt aber sonst keine Meldungen vom Plugin. Es rechnet einfach nicht.

              Kommentar


                #8
                Zitat von Cannon Beitrag anzeigen
                Es rechnet einfach nicht.
                Rechnet es gar nicht oder nur die Wärmesummer und Gruenlandtemperatursumme nicht?

                Kommentar


                  #9
                  Zitat von Sisamiwe Beitrag anzeigen
                  Rechnet es gar nicht oder nur die Wärmesummer und Gruenlandtemperatursumme nicht?
                  Das musste ich erst einmal prüfen. Mehr als die beiden Sachen nutze ich ja gar nicht. Ich habe nun noch mit minmax_heute_min und minmax_heute_max getestet. Das geht. Also gehen nur die Temperatursummen nicht.

                  Als Ansatz evtl. die minmax werden bei on_change aktualisiert, die Temperaturen nur täglich. Vielleicht ist da ein Problem?
                  Zuletzt geändert von Cannon; 20.03.2023, 18:46.

                  Kommentar


                    #10
                    Cannon


                    Ich habe mich nochmal schlau gemacht:

                    Die Wärmesumme ist nicht eindeutig definiert. Ich habe es so implementiert, dass bei "current" die Jahreswärmesumme als Summe der Tagesmitteltemperaturen in der Zeit vom 20.3. und 21.9 des aktuellen Jahres errechnet werden. D.h. bislang war der Ergebnis per Definition 0.

                    Gruenlandtemperatursumme ist mehr oder weniger definiert. Hier werden für das laufende Jahr die (positiven) Tagesmitteltemperaturen addiert. Die Werte im Januar werden mit 0,5 gewichet, die von Februar mit 0,75.

                    Es gibt in der Tat einen Fehler im Plugin. Der Parameter "db_addon_startup: yes​" wird aktuell für die Temperatursumme nicht beachtet.

                    Bei einer im WebIF ausgelösten Neuberechnung funktioniert die Berechnung bei mit.
                    Wenn du den Log-Level auf Debug stellst, kannst Du im Log die Berechnung der Items verfolgen. Bei mir sieht das so aus:

                    Code:
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        handle_ondemand        handle_ondemand: _db_addon_fct='gruenlandtempsumme' detected; _db_addon_params={'year': 'current', '_database_item': Item: wetter.foshk.outdoor.temp}
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query_item            _query_item called with func='max', item=wetter.foshk.outdoor.temp, timeframe='year', start=0, end=0, group='day', group2=None, ignore_value=None
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _get_oldest_log        _get_oldest_log for item wetter.foshk.outdoor.temp = 1658055085967
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query_item            _query_item: Requested timeframe='year' with start=0 and end=0 resulted in start being timestamp=1672531200000 / 2023-01-01 00:00:00 and end being timestamp=1704067200000 / 2024-01-01 00:00:00
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query_log_timestamp   _query_log_timestamp: Called with func='max', item_id=996, ts_start=1672531200000, ts_end=1704067200000, group='day', group2=None, ignore_value=None
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query_log_timestamp   _query_log_timestamp: query="SELECT time, ROUND(MAX(val_num), 1) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1 GROUP BY date((time/1000),'unixepoch') ORDER BY time ASC", params={'item_id': 996, 'ts_start': 1672531200000, 'ts_end': 1704067200000}
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query                 _query: Called with query="SELECT time, ROUND(MAX(val_num), 1) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1 GROUP BY date((time/1000),'unixepoch') ORDER BY time ASC", params={'item_id': 996, 'ts_start': 1672531200000, 'ts_end': 1704067200000}, cur=None
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query                 _query: Result of 'SELECT time, ROUND(MAX(val_num), 1) as value FROM log WHERE item_id = 996 AND time BETWEEN 1672531200000 AND 1704067200000 AND val_bool = 1 GROUP BY date((time/1000),'unixepoch') ORDER BY time ASC': []
                    2023-03-21  22:17:04 INFO     plugins.priv_db_addon        _handle_query_result    No values for item in requested timeframe in database found.
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        _query_item            _query_item: value for item=wetter.foshk.outdoor.temp with timeframe='year', func='max': [[0, 0]]
                    2023-03-21  22:17:04 DEBUG    plugins.priv_db_addon        handle_ondemand        handle_ondemand: result is 0 for item 'wetter.foshk.outdoor.temp.gruenlandtempsumme_aktuell' with '_db_addon_fct='gruenlandtempsumme''
                    2023-03-21  22:17:04 INFO     plugins.priv_db_addon        handle_ondemand          Item value for 'wetter.foshk.outdoor.temp.gruenlandtempsumme_aktuell' will be set to 0​
                    Schau bei dir bitte nochmal.

                    Fix kommt dann später.

                    Kommentar


                      #11
                      Zitat von Sisamiwe Beitrag anzeigen
                      Die Wärmesumme ist nicht eindeutig definiert. Ich habe es so implementiert, dass bei "current" die Jahreswärmesumme als Summe der Tagesmitteltemperaturen in der Zeit vom 20.3. und 21.9 des aktuellen Jahres errechnet werden. D.h. bislang war der Ergebnis per Definition 0.

                      Gruenlandtemperatursumme ist mehr oder weniger definiert. Hier werden für das laufende Jahr die (positiven) Tagesmitteltemperaturen addiert. Die Werte im Januar werden mit 0,5 gewichet, die von Februar mit 0,75.
                      Ja die Grünlandtemperatur ist klar. Allerdings führte auch eine Neuberechnung über das Web-Interface nicht zu einem Ergebnis > 0. Ich werde das Log-Level dann noch mal hoch setzen. -> Vielleicht ist es künftig machbar, dass man das LogLevel der Plugins im WebIF (ohne Neustart) einstellen kann. :-)

                      Wäremesumme ist ist der Tat komplizierter als ich dachte. Aber ich habe eine Seite gefunden, wo mehrere der Definitionen Verwendung finden, vielleicht kann man das im plugin noch weiter aufteilen. Schau mal hier: https://www.wetterportal.net/agrarwerte.php Da gibt es die Wärmesumme, die wie ich vermute einfach alle positiven Werte addiert (und das Datum außer Acht lässt) und dann noch mal Wachstumstage bei 5 °C bzw. 10 °C.

                      Ich versuche das mit den Daten intelligent für meien Rasenbewässerung und Düngung umzusetzen, deshalb sind die Zahlen alle sehr interessant. Denn die Temperaturen spielen eine entscheidene Rolle. Ich weiß nur noch nicht welche genau. Beispiel: Wenn wir jetzt 30°C draußen hätten, wäre der Boden mit 19% Bodenfeuchte schon fast zu trocken. Jetzt bei 10 °C würde ich aber gar nicht auf die Idee kommen zu wässern - wäre ja auch verrückt. Dennoch muss ich da immer noch recht viel manuell machen, weil es nicht pefekt an Hand der Feuchte läuft.

                      Kommentar


                        #12
                        Cannon

                        Den Log Level kannst du bereits heute ohne Neustart umstellen. Im AdminIF Menü unter logs geht das. Wenn du für das Plugin keinen extra Logger definiert hast, kannst du den log level für alle Plugin während der Laufzeit ändern. Hast du für das Plugin einen eigenen Logger definiert, dann auch nur für DAS Plugin.
                        Schau mal.

                        Bzgl der Temperatursumme: ich habe kein Problem damit, die Definition zu ändern bzw eine weitere Funktion hinzu zu bringen.
                        Was meinst du?

                        Kommentar


                          #13
                          Zitat von Sisamiwe Beitrag anzeigen
                          Den Log Level kannst du bereits heute ohne Neustart umstellen. Im AdminIF Menü unter logs geht das. Wenn du für das Plugin keinen extra Logger definiert hast, kannst du den log level für alle Plugin während der Laufzeit ändern. Hast du für das Plugin einen eigenen Logger definiert, dann auch nur für DAS Plugin.
                          Das ist ja toll und ich starte immer wieder neu und tippe da in irgendwelche Dateien rum. Großartig!!! :-)

                          So und nun zum Log. Offensichtlich gibt es doch auch ERROR im Log, die ich nicht gesehen habe, weil die nur nach dem manuellen anstoßen des Updates auf Grund des bekannten Bugs auftreten. Hier mal mit Log:

                          Code:
                          2023-03-22  09:38:14 INFO     plugins.db_addon    Zentral.Wetter.Wetterstation.Temperatur.Gruenlandtemperatursumme received.
                          2023-03-22  09:38:14 INFO     plugins.db_addon    # 6 item(s) to do. || 'on-demand' item Zentral.Wetter.Wetterstation.Temperatur.Gruenlandtemperatursumme will be processed.
                          2023-03-22  09:38:14 ERROR    plugins.db_addon    _query_item: ItemId for item=Zentral.Wetter.Wetterstation.Temperatur.Gruenlandtemperatursumme not found. Query cancelled.
                          2023-03-22  09:38:14 INFO     plugins.db_addon      Result was None; No item value will be set.​
                          Offensichlich wird das Item nicht gefunden, aber warum?

                          Zitat von Sisamiwe Beitrag anzeigen
                          Bzgl der Temperatursumme: ich habe kein Problem damit, die Definition zu ändern bzw eine weitere Funktion hinzu zu bringen.
                          Was meinst du?
                          Ich bin ja nicht der einzige. Aber ich teste das auch mal mit der Kältesumme. Wenn das dem auf der Agrarseite entspricht, sollten wir uns evtl. daran orientieren. Es ergibt meiner Meinung nach auch mehr Sinn die Wärmesumme ab Januar zu rechnen, wenn es denn entsprechend warm wäre.

                          Kommentar


                            #14
                            So ich habe mir die Sachen noch mal angeschaut und nun auch mit der Kältesumme getestet. Das passt auch irgendwie nicht.

                            Kältesumme:
                            Aktuell steht da bei mir -117 °C. Da von allen negativen Temperaturen nur der Betrag addiert werden sollte, sollte es auch keine negativen Werte geben. Aber selbst dann erscheint mir der Wert sehr hoch. Auf dem Wetter-Portal sehe ich andere Werte und bei mir als Vergleich würde ich zwischen Berlin-Pankow (7,8) und Frankfurt (26,4) irgendwie einen Wert erwarten.

                            Wärmesumme:
                            Eine Anpassung auf das komplette Jahr wäre wirklich interessant.

                            Grünlandtemperatur:
                            Funktioniert auch mit der manuellen Berechnung nicht.
                            Zuletzt geändert von bmx; 23.03.2023, 11:46.

                            Kommentar


                              #15
                              Zitat von Cannon Beitrag anzeigen
                              So ich habe mir die Sachen noch mal angeschaut und nun auch mit der Kältesumme getestet. Das passt auch irgendwie nicht.
                              Hi,
                              ich überarbeite das Plugin grad nochmal und stelle auch die Berechnungen um, so dass wie Werte wieder korrekt sind.

                              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.
                              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.

                              Zitat von Cannon Beitrag anzeigen
                              Aktuell steht da bei mir -117 °C
                              Das ist tatsächlich viel. Kannst Du dir die Rohdaten in der DB mal anschauen, ab diese korrekt sind?

                              Kommentar

                              Lädt...
                              X