@dime evtl. weiss ich woran es liegen könnte.
Wie lange hast du denn die Anlage schon? Länger als seit 1 Jahr oder erst dieses Jahr bekommen?
Denn wenn ich mir den Log so anschaue sehe ich folgendes:
2023-09-18 07:25:36.839 Start des API abrufes
2023-09-18 07:25:36.454 holt die "aktuell" Werte
danach die "heute" Werte
dann kommen die "Statistik" Werte und hier vermute ich beim letzten Eintrag wo "null" kommt, das dies der abruf für "Last Year" ist. Wenn dem so ist und deine Anlage noch nicht so alt ist, kommen logischerweise von der API auch "null" Werte zurück, denn dann gibt es da ja noch nichts zum abrufen.
Da müsste @nobl dann nach seinem Urlaub nochmal ran, was er bestimmt auch auch tun wird, wie ich ihn kenne
Alle Eventualitäten abzudecken bei der Programmierung ist schwierig, denn manches fällt dann eben erst wie in deinem Fall später im Feldtest auf.
Ich weiss nicht wie fit du mit Code umschreiben bist aber falls du es dir zutraust wäre ein erster Workaround, bis @nobl wieder da ist, folgender:
Unter folgendem Pfad solltest du eine "main.js" finden:
/opt/iobroker/node_modules/iobroker.senec/
(mache dir am besten ein Backup, bevor du Änderungen daran vornimmst. Im Notfall, Adapter stoppen, Backup wieder rein kopieren und dann Adapter wieder starten.)
Öffne "main.js" in einem Editor (notepad bzw. Editor unter windows oder wenn du es komfortabel haben möchtest, dann lade dir kostenfrei notepad++ im netz herunter. Da hast du dann auch gleich Zeilenummern neben dem Code stehen)
Zeile 399 - 406 findest du folgendes:
const dates = new Map([
["THIS_DAY", new Date().toISOString().split('T')[0]],
["LAST_DAY", new Date(new Date().setDate(new Date().getDate()-1)).toISOString().split('T')[0]],
["THIS_MONTH", new Date().toISOString().split('T')[0]],
["LAST_MONTH", new Date(new Date().setDate(0)).toISOString().split('T')[0]],
["THIS_YEAR", new Date().toISOString().split('T')[0]],
["LAST_YEAR", new Date(new Date().getFullYear() - 1, 1, 1).toISOString().split('T')[0]]
]);
Stelle hier // bei Zeile 405 voran um die Zeile auszukommentieren (diese Zeile wird dann vom Script nicht mehr berücksichtigt und somit lässt er das abholen der Werte für "LastYear" aus):
const dates = new Map([
["THIS_DAY", new Date().toISOString().split('T')[0]],
["LAST_DAY", new Date(new Date().setDate(new Date().getDate()-1)).toISOString().split('T')[0]],
["THIS_MONTH", new Date().toISOString().split('T')[0]],
["LAST_MONTH", new Date(new Date().setDate(0)).toISOString().split('T')[0]],
["THIS_YEAR", new Date().toISOString().split('T')[0]],
//["LAST_YEAR", new Date(new Date().getFullYear() - 1, 1, 1).toISOString().split('T')[0]]
]);
Das könnte in deinem Fall, bis @nobl wieder da ist, erstmal abhilfe schaffen. Zumindest sollten dann keine Fehler mehr im Log auftauchen und die anderen Werte normal geholt werden. "Debug" kannst du dann auch wieder "Info" umstellen wenn es soweit läuft.