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
Fix kommt dann später.


Einen Kommentar schreiben: