Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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.
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?
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.
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 ...
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:
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)
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar