Seite 1 von 1

Persistence - Vorjahr ermitteln

Verfasst: 5. Jun 2025 15:17
von peter-pan
Hallo Zusammen,
ich möchte gerne einen Vorjahreswert aus einem kumulierten Wert ermitteln. Konkret ich möchte aus dem Gesamtwert meiner Tasmota-Steckdose den Vorjahreswert extrahieren.
Die Code-Zeile hierzu (DSL):

Code: Alles auswählen

var VerbrauchVorJahr = SP111_01_Verb.deltaBetween( now.minusYears(1).withMonth(1).withDayOfMonth(1).with(LocalTime.MIDNIGHT), now.minusYears(0).withMonth(1).withDayOfMonth(1).with(LocalTime.MIDNIGHT).minusSeconds(10))  // Vorjahr
      SP111_01_PY.postUpdate(VerbrauchVorJahr)

Das funktioniert im Prinzip auch, aber wenn keine Vorjahreswerte vorhanden sind, gibt es "kein" Ergebnis und ich bekomme diese Fehlermeldung:

Code: Alles auswählen

2025-06-05 15:09:14.753 [ERROR] [.handler.AbstractScriptModuleHandler] - Script execution of rule with UID 'persistence_gosund01-1' failed: The argument 'state' must not be null. in persistence_gosund01


Kann ich diesen Fehler abfangen ? Und wenn ja, wie ?

.items

Code: Alles auswählen

Number:Energy SP111_01_Verb "GoS 01 Echo 8 Verbrauch Total[%.2f kWh]"  <gosundsp111>  (gSP111_01)["Power"]  { channel="mqtt:topic:danny:sp11101:total" }   
Number:Energy SP111_01_PY   "GoS 01 Verbrauch Vorjahr[%.2f kWh]"       <gosundsp111>  (gSP111_01)["Power"]   //Rule
Bin für jeden Tipp dankbar.

Re: Persistence - Vorjahr ermitteln

Verfasst: 5. Jun 2025 18:29
von udo1toni
Allenfalls könntest Du eine Abfrage für den Startzeitpunkt ausführen und falls dieser Wert nicht null ist, kannst Du die Differenz abfragen. Natürlich wäre es dann sinnvoll, auch den Endwert einzeln abzufragen, womit es dann nicht mehr lohnt, das delta abzufragen, schließlich kannst Du das dann auch leicht selbst ausrechnen...

Re: Persistence - Vorjahr ermitteln

Verfasst: 5. Jun 2025 18:55
von peter-pan
Ich versuch's mal. Danke