Die Meldung ergibt tatsächlich keinerlei Sinn, denn es findet ja gar keine Zuweisung bzw. kein Casting statt, das passiert jeweils eine Zeile darunter, die ist aber nicht unterstrichen.
Nun ja, es handelt sich ohnehin "nur" um eine Warnung, ändert aber nichts daran, dass sie Schwachsinn ist.
Es bringt auch nichts, die Prüfung zu unterlassen, denn die Persistence kann selbstverständlich auch
null liefern.
Du kannst spaßeshalber mal ein paar log Meldungen einbauen (bzw. ich...)
Code: Alles auswählen
rule "Stromverbrauch Tag Woche Monat Jahr" // Deutscher Zeichensatz zulässig
when
Item SM_DG_ges_Verbrauch changed // changed reicht.
then
logInfo("countUpdate","Rule gestartet.")
val ZonedDateTime zdt = ZonedDateTime.now() // jetzt
val ZonedDateTime start_of_day = zdt.with(LocalTime.MIDNIGHT) // heute, Mitternacht
val ZonedDateTime start_of_week = start_of_day.minusDays(start_of_day.getDayOfWeek.getValue - 1) // Montag
val ZonedDateTime start_of_month = start_of_day.withDayOfMonth(1) // Erster Tag des Monats (1)
val ZonedDateTime start_of_year = start_of_day.withDayOfYear(1) // Erster Tag des Jahres (1)
logInfo("countUpdate","Daten definiert ")
var Stromverbrauch_Heute = -1.0
var Stromverbrauch_Woche = -1.0
var Stromverbrauch_Monat = -1.0
var Stromverbrauch_Jahr = -1.0
logInfo("countUpdate","Variablen definiert ")
if(SM_DG_ges_Verbrauch.deltaSince(start_of_day,"influxdb") instanceof Number)
Stromverbrauch_Heute = (SM_DG_ges_Verbrauch.deltaSince(start_of_day,"influxdb") as Number).floatValue
if(SM_DG_ges_Verbrauch.deltaSince(start_of_week,"influxdb") instanceof Number)
Stromverbrauch_Woche = (SM_DG_ges_Verbrauch.deltaSince(start_of_week,"influxdb") as Number).floatValue
if(SM_DG_ges_Verbrauch.deltaSince(start_of_month,"influxdb") instanceof Number)
Stromverbrauch_Monat = (SM_DG_ges_Verbrauch.deltaSince(start_of_month,"influxdb") as Number).floatValue
if(SM_DG_ges_Verbrauch.deltaSince(start_of_year,"influxdb") instanceof Number)
Stromverbrauch_Jahr = (SM_DG_ges_Verbrauch.deltaSince(start_of_year,"influxdb") as Number).floatValue
logInfo("countUpdate","Variablen gesetzt. heute {} woche {} monat {} jahr {}",Stromverbrauch_Heute,Stromverbrauch_Woche,Stromverbrauch_Monat,Stromverbrauch_Jahr)
SM_Tag_VerbrauchStrom.postUpdate(Stromverbrauch_Heute)
SM_Woche_VerbrauchStrom.postUpdate(Stromverbrauch_Woche)
SM_Monat_VerbrauchStrom.postUpdate(Stromverbrauch_Monat)
SM_Jahr_VerbrauchStrom.postUpdate(Stromverbrauch_Jahr)
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet