Rule funktioniert nicht mehr seit Update auf Rel:4.3.6

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Rule funktioniert nicht mehr seit Update auf Rel:4.3.6

Beitrag von peter-pan »

Ich habe seit dem Upgrade auf Version OH 4.3.6 eine Fehlermeldung im Log, die ich seither nicht hatte.

Code: Alles auswählen

2025-07-18 11:00:00.565 [ERROR] [.handler.AbstractScriptModuleHandler] - Script execution of rule with UID 'persistence_hichi-1' failed: The argument 'state' must not be null. in persistence_hichi
Die DSL-Regel:

Code: Alles auswählen

rule "persistence Stromzähler"

when
    Item Dummy_pers_9 changed from OFF to ON or
    Time cron "0 0 0/1 1/1 * ? *" 

then

   val VerbrauchTag          = esp32c3_01_total_in.deltaSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) as Number                        // Heute aus Gesamtverbrauch
   val VerbrauchVortag       = esp32c3_01_total_in.deltaBetween(now.minusDays(1).with(LocalTime.MIN),now.minusDays(1).with(LocalTime.MAX))   // gestern
   val VerbrauchMonat        = esp32c3_01_total_in.deltaSince(now.withDayOfMonth(1).with(LocalTime.MIDNIGHT))                                // Monat

       esp32c3_01_cfPY.postUpdate(5053.0)             // Vortragswert per 15.5.24
       esp32c3_01_carryforwardini.postUpdate(8138.0)  // Vortragswert per 15.5.25

   var VerbrauchJahr         = (esp32c3_01_total_in.state as QuantityType<Energy> - esp32c3_01_carryforwardini.state as QuantityType<Energy>)     // Jahr  - hilfsweise  ;-)
   var VerbrauchVorJahr      = (esp32c3_01_carryforwardini.state as QuantityType<Energy> - esp32c3_01_cfPY.state as QuantityType<Energy>)         // Vorjahr - rechnerisch
   val VerbrauchVorMonat     = esp32c3_01_total_in.deltaBetween(ZonedDateTime.now.minusMonths(1).withDayOfMonth(1).with(LocalTime.MIDNIGHT), ZonedDateTime.now.withDayOfMonth(1).with(LocalTime.MIDNIGHT).minusSeconds(1))  // Vormonat

       esp32c3_01_yd.postUpdate(VerbrauchVortag)   // Gestern
       esp32c3_01_MTD.postUpdate(VerbrauchMonat)   // Monat
       esp32c3_01_pM.postUpdate(VerbrauchVorMonat) // VormonatMonat

       esp32c3_01_YTD.postUpdate(VerbrauchJahr)    // Jahr
       esp32c3_01_PY.postUpdate(VerbrauchVorJahr)  // Vorjahr
       esp32c3_01_curr.postUpdate(VerbrauchTag)    // Heute
  
end
Hat jemand einen Tipp für mich ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Rule funktioniert nicht mehr seit Update auf Rel:4.3.6

Beitrag von peter-pan »

Hab jetzt heraus gefunden (try and error), dass es wohl an diesem Befehl liegt:

Code: Alles auswählen

  val VerbrauchVortag       = esp32c3_01_total_in.deltaBetween(now.minusDays(1).with(LocalTime.MIN),now.minusDays(1).with(LocalTime.MAX))   // gestern
 
Hier wird wohl kein gültiger Wert ermittelt. Und wenn ich nun mit diesem Befehl

Code: Alles auswählen

esp32c3_01_yd.postUpdate(VerbrauchVortag)   // Gestern
einen Update versuche, dann kommt es zu der Fehlermeldung.

Allerdings weiss ich nicht warum ??? :? :roll: Bis gestern hat's noch funktioniert.
hichi1.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Rule funktioniert nicht mehr seit Update auf Rel:4.3.6

Beitrag von udo1toni »

Warum nutzt Du LocalTime.MIN und LocalTime.MAX?
Mein Vorgehen wäre Mitternacht (0 Uhr) zu nehmen und für den Beginn des Zeitraums einen Tag abzuziehen.

Die Funktion als solche müsste eigentlich Werte liefern, es sei denn, es existieren keine Daten für den gewählten Zeitraum...
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Rule funktioniert nicht mehr seit Update auf Rel:4.3.6

Beitrag von peter-pan »

Hallo Udo. Danke für dein Input.
Die Rule als solche läuft eigentlich jede Stunde.
Ich verstehe zwar was du meinst, aber ich muss erst mal schauen, wo du das schon einmal erläutert hast. :oops: bzw. muss mich mit der Persistence auseinander setzen. Das mit der Zeit ist niht so meins. :(

Die Funktion, die ich da benutze macht ja eigentlich auch nichts anderes, oder ??? Aber wie gesagt, die Rule hat bis gestern funktioniert ??!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten