ich habe 2 Regeln, wo bei eine Werte der anderen verarbeitet
zum einen der aktuelle Wechselrichterertrag über ModBus, wo es bei SMA leider zu einem falschen Wert bei "Keine Sonne" führt.
Hier hatte eine Forum-Fee


Code: Alles auswählen
rule "Fehlerbehebung Nacht Wechselrichter"
when
Member of gSMA_Input changed
then
val output = Inverter.members.filter[ i|triggeringItem.name.startsWith(i.name)].head
var Number nWert = 0
if(triggeringItem.state instanceof Number) {
var Number nGrenze = 0
switch(triggeringItem.name.split("_").get(1)) {
case "power" : nGrenze = 4500
case "voltage" : nGrenze = 400
case "ampere" : nGrenze = 5
case "watt" : nGrenze = 4500
}
if((triggeringItem.state as Number) < nGrenze) nWert = triggeringItem.state as Number
}
output.sendCommand(nWert)
end
Code: Alles auswählen
Number SMA40_ampere_1_In "Ampere: [%s A]" <smaampere> (gSMA_Input) {channel="modbus:data:smaSB40:smaHolding_7:input_ampere_1:number"}
Number SMA40_voltage_1_In "Volt: [%s V]" <smavolt> (gSMA_Input) {channel="modbus:data:smaSB40:smaHolding_7:input_voltage_1:number"}
Number SMA40_watt_1_In "Watt [%d W]" <smawatt> (gSMA_Input) {channel="modbus:data:smaSB40:smaHolding_7:input_watt_1:number"}
Number SMA40_ampere_1 "Ampere: [%s A]" <smaampere> (Inverter, gSMA_Ampere)
Number SMA40_voltage_1 "Volt: [%s V]" <smavolt> (Inverter, gSMA_Voltage)
Number SMA40_watt_1 "Watt [%d W]" <smawatt> (Inverter, gSMA_Watt)
Code: Alles auswählen
rule "House Consumption"
when
Item House_PowerIn changed or
Item House_PowerOut changed or
Item SMA37_BatteryWatt changed or
Item gSMA_Watt changed
then
postUpdate(House_Consumption, (House_PowerIn.state as DecimalType + gSMA_Watt.state as DecimalType - House_PowerOut.state as DecimalType + SMA37_BatteryWatt.state as DecimalType).intValue)
end
Somit hagelt es dann Fehlermeldungen im Log
Code: Alles auswählen
[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'smart-14' failed: Could not cast NULL to org.openhab.core.library.types.DecimalType; line 299, column 76, length 38 in smart

Viele Grüße