Hallo,
ich habe eine Regel, die den Stromverbrauch ausliest aus einer db4o und darauf basierend einige Berechnungen durch führt. Ich musste jetzt die db4o Datenbank löschen und neu machen, da openHab andauernd einen Java Heap Space geworfen hat.
Das ist ein Teil der Regel:
Und die Exception:
Hat jemand eine Idee?
Danke, Manuel
ich habe eine Regel, die den Stromverbrauch ausliest aus einer db4o und darauf basierend einige Berechnungen durch führt. Ich musste jetzt die db4o Datenbank löschen und neu machen, da openHab andauernd einen Java Heap Space geworfen hat.
Das ist ein Teil der Regel:
Code:
rule Stromverbrauch
when
// Check every minute
Time cron "0 * * * * ?"
then
var powerWeek_Int = 0
var heatingWeek_Int = 0
logWarn("FILE","------ UPDATE POWER FIGURES ------")
logWarn("FILE","powerNow/heatingNow="+(Zaehler_Strom.historicState(now,"db4o").state+"/"+(Zaehler_WP.historicState(now,"db4o").state)
// Read actual values via python from power meter
// executeCommandLine("/usr/bin/python /Users/macadmin/Desktop/vzlogger.py")
// Actual values / counter
logWarn("FILE","STROM-1")
var Number powerNow = (Zaehler_Strom.historicState(now,"db4o").state)
var Number heatingNow = (Zaehler_WP.historicState(now,"db4o").state as DecimalType)
logWarn("FILE","STROM-2")
// Actual values / counter as Integer
var powerNow_Int = (powerNow*1000)
logWarn("FILE","STROM-3")
var heatingNow_Int = (heatingNow*1000).intValue()
logWarn("FILE","STROM-4")
var powerConsumption = powerNow_Int - powerOld
var heatingConsumption = heatingNow_Int - heatingOld
logWarn("FILE","STROM-5->"+powerOld)
var Number tmpInt = powerOld
tmpInt = tmpInt.intValue()
powerOld = tmpInt
logWarn("FILE","STROM-5.1->"+powerOld)
if(powerOld == -1) {
logWarn("FILE","STROM-6.1")
Verbrauch_Strom.postUpdate(0)
Verbrauch_WP.postUpdate(0)
//logWarn("FILE", "Initialize old powerNow="+powerOld+" heatingNow="+heatingOld)
} else {
logWarn("FILE","STROM-6.2")
Verbrauch_Strom.postUpdate(powerConsumption)
Verbrauch_WP.postUpdate(heatingConsumption)
//logWarn("FILE", "Old powerNow(consumption)=" + powerNow_Int + " - " + powerOld + "(" + (powerNow_Int - powerOld) + ")")
//logWarn("FILE", "Old heatingNow(consumption)=" + heatingNow_Int + " - " + heatingOld + "(" + (heatingNow_Int - heatingOld) + ")")
}
logWarn("FILE","STROM-7")
// SAVE OLD Power/Heating usage
powerOld = powerNow_Int
logWarn("FILE","STROM-8")
heatingOld = heatingNow_Int
logWarn("FILE","STROM-9")
var powerMidnight_Int = ((Zaehler_Strom.historicState(now.toDateMidnight,"db4o").state as DecimalType)*1000).intValue()
var heatingMidnight_Int = ((Zaehler_WP.historicState(now.toDateMidnight,"db4o").state as DecimalType)*1000).intValue()
logWarn("FILE","STROM-10")
Und die Exception:
Code:
2014-12-19 16:33:00.168 ERROR o.o.m.r.i.e.ExecuteRuleJob[:57] - Error during the execution of rule Stromverbrauch java.lang.ClassCastException: null at java.lang.Class.cast(Class.java:3047)
Danke, Manuel


Kommentar