Ich habe ien Rule, mit der ich einen Solar-Akku similieren will :
Code: Alles auswählen
val Einspeis_Geld = -7.152 // Einspeisevergütung
val Bezug_Geld = 22.65 * 1.19 // Preis pro kw/h
rule "Virtual Battery2 SaveMoney"
when
Item Virt_Batt2_Level changed // Wattstunden !!
then {
var Einspeis_Delta = (Virt_Batt1_Einspeis_Ist.state as Number).floatValue - (Virt_Batt2_Einspeis.state as Number).floatValue
var Bezug_Delta = (Virt_Batt1_Use_Ist.state as Number).floatValue - (Virt_Batt2_Use.state as Number).floatValue
Einspeis_Delta = Einspeis_Delta * Einspeis_Geld / 100000 // € * kwh
Bezug_Delta = Bezug_Delta * Bezug_Geld / 100000 // € * kwh
logInfo("Batterie", "Bezug_Delta = {}",Bezug_Delta)
logInfo("Batterie", "Einspeis_Delta = {}",Einspeis_Delta)
Virt_Batt2_Save.postUpdate(Bezug_Delta)
Virt_Batt2_Save_Einspeis.postUpdate(Einspeis_Delta)
var float Delta = Bezug_Delta - Einspeis_Delta
logInfo("Batterie", "Delta = {}",Delta)
}
end
Ich habe versucht :2022-05-30 16:53:42.855 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Virtual Battery2 SaveMoney': An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.FloatExtensions.operator_minus(float,float) on instance: null
mit einen normalen Variablen
mit einer Typisierten Variablen
mit -=
Die beiden Zeilen stehen nur deshalb am Ende, weil ich den Rest nicht stören will, ich habe natürlich auch versucht, das Ergebniss in ein Item zu schreiben, ohne Erfolg
Hat da jemand eine Idee ?