Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread - "DatabaseAddOn" Plugin

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

    #76
    Zitat von gklein Beitrag anzeigen
    ich hole mein Issue nochmal hoch, da es vermutlich zwischen dem Startproblem untergegangen ist. Vlt. hat ja jemand eine Idee.
    Hallo Gunnar,

    ich schaue mir das mal an. Kann gut sein, dass es da noch einen Bug gibt.
    Kann aber etwas dauern.

    Was Du noch machen kannst: Schalte mal das Debug-Log ein. Dort wird jeder Berechnungsschritt mitgelogged. Vielleicht fällt dir schon dort was auf.

    Beste Grüße
    Michael

    Kommentar


      #77
      Hallo Michael,

      ich habe das Debugging mal probiert, bekomme aktuell aber nur die Statements für ein manuelles Triggern ausgegeben:
      2024-05-13 08:34:22 DEBUG plugins.db_addon queue_entry=Item: Haus.Zentral.Strom_Haushalt.Gesamtverbrauch_Total. verbrauch_jahr
      2024-05-13 08:34:22 INFO plugins.db_addon # 1 item(s) to do. || 'on-demand' item=Haus.Zentral.Strom_Haushalt.Gesamtverbrauch_T otal.verbrauch_jahr will be processed.
      2024-05-13 08:34:22 DEBUG plugins.db_addon Called with query='SELECT time, val_num as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end ORDER BY time DESC LIMIT 1', params={'item_id': 71, 'ts_start': 1704063600000, 'ts_end': 1735686000000}, cur=None
      2024-05-13 08:34:22 DEBUG plugins.db_addon Result of query=SELECT time, val_num as value FROM log WHERE item_id = 71 AND time BETWEEN 1704063600000 AND 1735686000000 ORDER BY time DESC LIMIT 1: ((1715582016380, 15826.4),)
      2024-05-13 08:34:22 DEBUG plugins.db_addon Called with query='SELECT time, val_num as value FROM log WHERE item_id = :item_id AND time < :ts_start ORDER BY time DESC LIMIT 1', params={'item_id': 71, 'ts_start': 1704063600000}, cur=None
      2024-05-13 08:34:22 DEBUG plugins.db_addon Result of query=SELECT time, val_num as value FROM log WHERE item_id = 71 AND time < 1704063600000 ORDER BY time DESC LIMIT 1: ((1704063576415, 11885.12),)
      2024-05-13 08:34:22 INFO plugins.db_addon Item value for 'Haus.Zentral.Strom_Haushalt.Gesamtverbrauch_Total .verbrauch_jahr' will be set to 3941.28​
      Die Statements aus den normalen Berechnungen werden mir aktuell nicht angezeigt, nur der Ergebniswert.
      Ich kann mich an einen Forums-Beitrag zum Logging des Addons erinnern, finde den aber nicht wieder. Vlt. kannst Du mir da mal auf die Sprünge helfen.

      Viele Grüße
      Gunnar

      Kommentar


        #78
        Zitat von gklein Beitrag anzeigen
        ich hole mein Issue nochmal hoch, da es vermutlich zwischen dem Startproblem untergegangen ist. Vlt. hat ja jemand eine Idee.
        Kannst Du bitte noch folgende Infos liefern:
        • Plugin Version
        • Item Definition
        Danke dir

        Kommentar


          #79
          Darf ich hier nochmal nachhaken? Bei mir tut das Database Add-on irgendwie immer noch nicht, wie es soll :-(
          Was mach ich falsch?

          Zitat von ooUrmeloo Beitrag anzeigen
          Sorry! ... neuer Versuch. Hier mal das, was ich denke, was helfen könnte:

          Code:
          2024-04-07 22:19:45 DEBUG plugins.db_addon parse item: temperatur.aussen.min1d due to 'db_addon_fct'
          2024-04-07 22:19:45 DEBUG plugins.db_addon minmax_tag_min: item_attribute_dict={'cat': 'wertehistorie', 'on': 'change', 'sub_cat': 'onchange', 'item_type': 'num', 'calc': 'daily', 'params': False, 'description': 'Minimalwert seit Tagesbeginn'}
          2024-04-07 22:19:45 DEBUG plugins.db_addon Attribut 'db_addon_database_item' for item='temperatur.aussen.min1d' has been found 0 level above item at 'temperatur.aussen.min1d'.
          2024-04-07 22:19:45 DEBUG plugins.db_addon _database_item_path='paradigma.Aussentemperatur', temperatur.aussen.min1d
          2024-04-07 22:19:45 DEBUG plugins.db_addon database_item='paradigma.Aussentemperatur', db_addon_startup=None, db_addon_ignore_value_list=None, db_addon_ignore_value=None
          2024-04-07 22:19:45 DEBUG plugins.db_addon Item=temperatur.aussen.min1d added with db_addon_fct=minmax_tag_min and database_item=paradigma.Aussentemperatur
          2024-04-07 22:19:45 DEBUG plugins.db_addon Item 'temperatur.aussen.min1d' added to be run daily.
          
          
          2024-04-07 22:19:45 DEBUG plugins.db_addon parse item: temperatur.aussen.max1d due to 'db_addon_fct'
          2024-04-07 22:19:45 DEBUG plugins.db_addon minmax_tag_max: item_attribute_dict={'cat': 'wertehistorie', 'on': 'change', 'sub_cat': 'onchange', 'item_type': 'num', 'calc': 'daily', 'params': False, 'description': 'Maximalwert seit Tagesbeginn'}
          2024-04-07 22:19:45 DEBUG plugins.db_addon Attribut 'db_addon_database_item' for item='temperatur.aussen.max1d' has been found 0 level above item at 'temperatur.aussen.max1d'.
          2024-04-07 22:19:45 DEBUG plugins.db_addon _database_item_path='paradigma.Aussentemperatur', temperatur.aussen.max1d
          2024-04-07 22:19:45 DEBUG plugins.db_addon database_item='paradigma.Aussentemperatur', db_addon_startup=None, db_addon_ignore_value_list=None, db_addon_ignore_value=None
          2024-04-07 22:19:45 DEBUG plugins.db_addon Item=temperatur.aussen.max1d added with db_addon_fct=minmax_tag_max and database_item=paradigma.Aussentemperatur
          2024-04-07 22:19:45 DEBUG plugins.db_addon Item 'temperatur.aussen.max1d' added to be run daily.
          
          
          2024-04-07 22:19:44 DEBUG plugins.db_addon verbrauch_tag: item_attribute_dict={'cat': 'verbrauch', 'on': 'change', 'sub_cat': 'onchange', 'item_type': 'num', 'calc': 'daily', 'params': False, 'description': 'Verbrauch am heutigen Tag (Differenz zwischen aktuellem Wert und den Wert am Ende des vorherigen Tages)'}
          2024-04-07 22:19:44 DEBUG plugins.db_addon Attribut 'db_addon_database_item' for item='paradigma.Betriebsstunden_Tag_bisher' has been found 0 level above item at 'paradigma.Betriebsstunden_Tag_bisher'.
          2024-04-07 22:19:44 DEBUG plugins.db_addon _database_item_path='paradigma.Betriebsstunden', paradigma.Betriebsstunden_Tag_bisher
          2024-04-07 22:19:44 DEBUG plugins.db_addon database_item='paradigma.Betriebsstunden', db_addon_startup=None, db_addon_ignore_value_list=None, db_addon_ignore_value=None
          2024-04-07 22:19:44 DEBUG plugins.db_addon Item=paradigma.Betriebsstunden_Tag_bisher added with db_addon_fct=verbrauch_tag and database_item=paradigma.Betriebsstunden
          2024-04-07 22:19:44 DEBUG plugins.db_addon Item 'paradigma.Betriebsstunden_Tag_bisher' added to be run daily.​

          bei manuellem Trigger:

          Code:
          2024-04-07 22:24:02 INFO plugins.db_addon # 1 item(s) to do. || 'on-demand' item=temperatur.aussen.max1d will be processed.
          2024-04-07 22:24:02 DEBUG plugins.db_addon Item=temperatur.aussen.max1d with item_config={'db_addon': 'function', 'db_addon_fct': 'minmax_tag_max', 'database_item': Item: paradigma.Aussentemperatur, 'query_params': {'func': 'max', 'timeframe': 'day', 'start': 0, 'end': 0}, 'suspended': False, 'database_item_path': True, 'on': 'change', 'cycle': 'daily', 'startup': False}
          2024-04-07 22:24:02 DEBUG plugins.db_addon db_addon_fct='minmax_tag_max' will _query_item with params={'func': 'max', 'timeframe': 'day', 'start': 0, 'end': 0, 'database_item': Item: paradigma.Aussentemperatur}.
          2024-04-07 22:24:02 DEBUG plugins.db_addon called with func='max', item=paradigma.Aussentemperatur, timeframe='day', start=0, end=0, group='', group2='', ignore_value_list=None, use_oldest_entry=False
          2024-04-07 22:24:02 DEBUG plugins.db_addon Called with query="SELECT id, name, time, val_str, val_num, val_bool, changed FROM item WHERE name = 'paradigma.Aussentemperatur'", params={}, cur=None
          2024-04-07 22:24:02 DEBUG plugins.db_addon Connect to database.
          2024-04-07 22:24:02 DEBUG plugins.db_addon Result of query=SELECT id, name, time, val_str, val_num, val_bool, changed FROM item WHERE name = 'paradigma.Aussentemperatur': (19, 'paradigma.Aussentemperatur', 1712521293540, None, 16.7, 1, 1712521294563)
          2024-04-07 22:24:02 DEBUG plugins.db_addon Called with query='SELECT min(time) FROM log WHERE item_id = :item_id;', params={'item_id': 19}, cur=None
          2024-04-07 22:24:02 DEBUG plugins.db_addon Result of query=SELECT min(time) FROM log WHERE item_id = 19;: [(1712261852021,)]
          2024-04-07 22:24:02 DEBUG plugins.db_addon _get_oldest_log for item=paradigma.Aussentemperatur = 1712261852021
          2024-04-07 22:24:02 DEBUG plugins.db_addon Requested timeframe='day' with start=0 and end=0 resulted in start being timestamp=1712440800000/2024-04-07 00:00:00 and end being timestamp=1712527200000/2024-04-08 00:00:00
          2024-04-07 22:24:02 DEBUG plugins.db_addon Called with func='max', item_id=19, ts_start=1712440800000, ts_end=1712527200000, group='', group2='', ignore_value_list=None
          2024-04-07 22:24:02 DEBUG plugins.db_addon query='SELECT time, MAX(val_num) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1', params={'item_id': 19, 'ts_start': 1712440800000, 'ts_end': 1712527200000}
          2024-04-07 22:24:02 DEBUG plugins.db_addon Called with query='SELECT time, MAX(val_num) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1', params={'item_id': 19, 'ts_start': 1712440800000, 'ts_end': 1712527200000}, cur=None
          2024-04-07 22:24:02 DEBUG plugins.db_addon Result of query=SELECT time, MAX(val_num) as value FROM log WHERE item_id = 19 AND time BETWEEN 1712440800000 AND 1712527200000 AND val_bool = 1: [(1712493392368, 25.1)]
          2024-04-07 22:24:02 DEBUG plugins.db_addon result of '_query_log_timestamp' query_result=[(1712493392368, 25.1)]
          2024-04-07 22:24:02 DEBUG plugins.db_addon value for item=paradigma.Aussentemperatur with query_params={'func': 'max', 'item_id': 19, 'ts_start': 1712440800000, 'ts_end': 1712527200000, 'group': '', 'group2': '', 'ignore_value_list': None}: [[1712493392368, 25.1]]
          2024-04-07 22:24:02 DEBUG plugins.db_addon result is 25.1 for item 'temperatur.aussen.max1d' with 'db_addon_fct='minmax_tag_max''
          2024-04-07 22:24:02 INFO plugins.db_addon Item value for 'temperatur.aussen.max1d' will be set to 25.1​
          Warum steht denn da überall 'added to be run daily' wenn es on-change sein sollte?

          Kommentar


            #80
            ooUrmeloo
            Stell mal deine Item Config der Problemitems hier ein

            Kommentar


              #81
              Siehe zwei Beispiel Items weiter vorne:
              https://knx-user-forum.de/forum/supp...63#post1948163

              Kommentar


                #82
                Zitat von ooUrmeloo Beitrag anzeigen
                Siehe zwei Beispiel Items weiter vorne:
                https://knx-user-forum.de/forum/supp...63#post1948163
                Und die Definition der beiden Database-Items, die du per Attribut nutzt? paradigma....

                Kommentar


                  #83
                  Code:
                  paradigma:
                        Aussentemperaturraw:
                            type: num
                            name: AT
                            enforce_updates: True
                            modBusObjectType@paradigma: InputRegister 
                            modBusAddress@paradigma: 0000
                            modBusFactor@paradigma: 0.1
                            modBusDataType@paradigma: int16
                            database_maxage: 30
                            database: yes
                            cache: True
                         Aussentemperatur: 
                            type: num
                            eval: round(sh.paradigma.Aussentemperaturraw(), 2)
                            eval_trigger: paradigma.Aussentemperaturraw
                            database_maxage: 1100
                            database: yes
                            cache: True
                  
                  
                       Betriebsstunden: 
                            type: num
                            name: Betrieb
                            enforce_updates: True
                            # modBusObjectType@paradigma: HoldingRegister (default) 
                            modBusAddress@paradigma: 0027
                            modBusFactor@paradigma: 1
                            modBusDataType@paradigma: uint32
                            eval: round(value, 2)
                            eval_trigger: paradigma.Betriebsstunden
                            database_maxage: 365
                            database: yes
                            cache: True

                  Kommentar


                    #84
                    ooUrmeloo

                    Ich konnte den Fehler nachvollziehen und habe für den Bugfix einen PR erstellt.'
                    Kannst Du den PR bzw den Inhalt mal testen?

                    Kommentar


                      #85
                      Sisamiwe : Vielen Dank!! Sieht auf den Blick gut aus. Die min / max Werte scheinen jetzt zu stimmen. Muss aber auch mal noch Woche, Monat, etc. ausprobieren. Die Betriebsstunden (d.h. verbrauch_tag) kann ich aktuell nicht testen, weil meine Heizung schon ne Weile nicht mehr starten muss ...
                      Muss mal überlegen, wie ich das aktuell testen könnte.

                      Wenn ich das richtig sehe, hast Du ja aber noch einiges ändern müssen.

                      Kommentar


                        #86
                        ... sorry ... hier war ein Fehler von mir drin ... hab's gelöscht.
                        Zuletzt geändert von ooUrmeloo; 08.06.2024, 22:06.

                        Kommentar


                          #87
                          Bei dem Betriebsstunden Item von vorher steht im log ständig folgender Eintrag und der Wert ist ebenfalls unplausibel.

                          Code:
                          2024-06-08  22:16:07 INFO     plugins.db_addon    + Updated item 'paradigma.Betriebsstunden' with value 6783 is now due to be put to queue for processing. 1 items to do.
                          2024-06-08  22:16:07 DEBUG    plugins.db_addon    queue_entry=(Item: paradigma.Betriebsstunden, 6783)
                          2024-06-08  22:16:07 INFO     plugins.db_addon    # 1 item(s) to do. || 'onchange' item=paradigma.Betriebsstunden with value=6783 will be processed.
                          2024-06-08  22:16:07 INFO     plugins.db_addon      Item value for 'paradigma.Betriebsstunden_Jahr_bisher' with func=None will be set to 6783​
                          Keine Ahnung, warum der Eintrag so häufig kommt. Wie gesagt, der Wert ändert sich aktuell gar nicht ...

                          Kommentar


                            #88
                            Gestern hatte ich fälschlicherweise versucht, mit 'verbrauch_tag' folgendes Item auszuwerten. Geht ja aber nicht, da es kein absoluter Zählerstand o.ä. ist, sondern der aktuelle Verbrauch. Diese Funktion habe ich im DB Addon nicht entdeckt. Wäre evtl. eine Idee für eine Zusaetzfunktion?!
                            Man müsste den Verbrauch quasi aufsummieren. Ich habe das aktuell so umgesetzt:

                            Code:
                            sonnenbatterie:
                                Consumption_W:
                            #   House consumption in watts    
                                    type: num
                                    jsonread_filter@realtime: .Consumption_W
                                    database_maxage: 365
                                    database: yes
                                    cache: True
                                    Hour:
                                        type: num
                                        database: yes
                                        database_maxage: 30
                                        cache: True
                                        crontab: '0 * * * * = 1'
                                        eval: sh.sonnenbatterie.Consumption_W.db('integrate', '1h', 'now') / 1000 / 60 / 60 / 1000
                                    Day:
                                        type: num
                                        database: yes
                                        database_maxage: 30
                                        cache: True
                                        crontab: '0 0 * * * = 1'
                                        eval: round(sh.sonnenbatterie.Consumption_W.Hour.db('sum', '1d', 'now'), 2)
                                    Day_since:
                                        type: num
                                        database: yes
                                        database_maxage: 30
                                        cache: True
                                        eval_trigger: sonnenbatterie.Consumption_W.Hour
                                        eval: round(sh.sonnenbatterie.Consumption_W.Hour.db('sum', sh.date.hour.since.midnight.dbstr(), 'now'), 2)​
                            und dann entsprechend für Woche, Monat, Jahr ...

                            Kommentar


                              #89
                              Zitat von ooUrmeloo Beitrag anzeigen
                              Keine Ahnung, warum der Eintrag so häufig kommt. Wie gesagt, der Wert ändert sich aktuell gar nicht ...
                              Auch wenn der Wert sich nicht ändert, wird dann der immer gleiche Wert des Zahlerstandes gesendet und ins Item geschrieben?
                              Nimm mal das enforce_updates aus paradigma.Betriebsstunden raus. Dann sollte der Eintrag nicht mehr kommen.

                              PS: enforce_updates bewirkt, dass auch bei Zuweisung des gleichen Wertes alle Aktivitäten (Eintrag in DB usw. geschehen)

                              Kommentar


                                #90
                                Zitat von ooUrmeloo Beitrag anzeigen
                                Man müsste den Verbrauch quasi aufsummieren. Ich habe das aktuell so umgesetzt:
                                Wie meinst Du "Verbrauch aufsummieren?
                                Erklär mal.

                                Kommentar

                                Lädt...
                                X