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