as Number ist nachrangig gegenüber dem +, Du musst den Wert klammern.
Also statt
Code: Alles auswählen
PV_Current_all.postUpdate(PV_Current.state as Number + PV_Current_gen24.state as Number);
Code: Alles auswählen
PV_Current_all.postUpdate((PV_Current.state as Number) + (PV_Current_gen24.state as Number));
Das Fronius Binding liefert UoM an, also solltest Du bei Berechnungen die Einheit entfernen, z.B. mit .floatValue, also
Code: Alles auswählen
PV_Current_all.postUpdate((PV_Current.state as Number).floatValue + (PV_Current_gen24.state as Number).floatValue);
Code: Alles auswählen
PV_Current_all.postUpdate((PV_Current.state as Number).floatValue + (PV_Current_gen24.state as Number).floatValue)
Code: Alles auswählen
if(!(PV_Current.state instanceof Number) || !(PV_Current_gen24.state instanceof Number))
return; // dies ist die einzige Stelle, wo in der openHAB Rules DSL ein Semikolon gebraucht wird!
PV_Current_all.postUpdate((PV_Current.state as Number).floatValue + (PV_Current_gen24.state as Number).floatValue)
Also statt:
Code: Alles auswählen
Item PV_Current received update
Code: Alles auswählen
Item PV_Current changed
Also statt
Code: Alles auswählen
rule "current_all"
Code: Alles auswählen
rule "current all"