Newbie fragt: Rules schreiben in OH5
Verfasst: 8. Jul 2026 19:40
Guten Tag,
ich möchte gerne eine Rule schreiben, die den einen Wert vom anderen abzieht.
Leider komme ich mit der OH-Doku nicht klar. so dass mir jeder Ansatz fehlt, die Rule zu editieren.
Im Menue links finde ich "Rules >", dann kann ich meine Idee benennen und When-Events zuordnen (s.u).
Bei "Then" komme ich nicht weiter. Edit: nun doch, habe den Schaltet 'Inline-Script' gefunden um eine DSL-Rule einzugeben:
mit hilfe göögle, liefert jedoch keinen Wert aus:
//Variante 1: Mit Einheiten (Empfohlen)
//Verwende diese Variante, wenn dein Ergebnis-Item ein Number:Power oder Number:Energy Item ist. Die Einheit wird automatisch beibehalten.
Zeile1: val val1 = Sonnen_Battery_Battery_Charging as QuantityType<Number>
Z2: val val2 = Sonnen_Battery_Battery_Discharging as QuantityType<Number>
//val val1 = (Sonnen_Battery_Battery_Charging as QuantityType<Number>).floatValue
//val val2 = (Sonnen_Battery_Battery_Discharging as QuantityType<Number>).floatValue
//Variante 2: Als reiner Zahlenwert (Fließkommazahl)
//Verwende diese Variante, wenn dein Ergebnis-Item ein einfaches Number Item ohne feste physikalische Einheit ist.
//val val1 = Sonnen_Battery_Battery_Charging.state as QuantityType<Number>
//val val2 = Sonnen_Battery_Battery_Discharging.state as QuantityType<Number>
Zeile3: val differenz = val1.subtract(val2)
// Wert an das Ergebnis-Item senden
Zeile4: Battery Bilanz Charging (sonnenbattery_bilanz_batteryCharging).postUpdate(differenz)
// (sonnenbattery_bilanz_batteryCharging).postUpdate(differenz)
Dem Ergebnis-Item wird kein Wert zugeordnet (NULL) - Was mache ich bitte falsch?
ich möchte gerne eine Rule schreiben, die den einen Wert vom anderen abzieht.
Leider komme ich mit der OH-Doku nicht klar. so dass mir jeder Ansatz fehlt, die Rule zu editieren.
Im Menue links finde ich "Rules >", dann kann ich meine Idee benennen und When-Events zuordnen (s.u).
Bei "Then" komme ich nicht weiter. Edit: nun doch, habe den Schaltet 'Inline-Script' gefunden um eine DSL-Rule einzugeben:
mit hilfe göögle, liefert jedoch keinen Wert aus:
//Variante 1: Mit Einheiten (Empfohlen)
//Verwende diese Variante, wenn dein Ergebnis-Item ein Number:Power oder Number:Energy Item ist. Die Einheit wird automatisch beibehalten.
Zeile1: val val1 = Sonnen_Battery_Battery_Charging as QuantityType<Number>
Z2: val val2 = Sonnen_Battery_Battery_Discharging as QuantityType<Number>
//val val1 = (Sonnen_Battery_Battery_Charging as QuantityType<Number>).floatValue
//val val2 = (Sonnen_Battery_Battery_Discharging as QuantityType<Number>).floatValue
//Variante 2: Als reiner Zahlenwert (Fließkommazahl)
//Verwende diese Variante, wenn dein Ergebnis-Item ein einfaches Number Item ohne feste physikalische Einheit ist.
//val val1 = Sonnen_Battery_Battery_Charging.state as QuantityType<Number>
//val val2 = Sonnen_Battery_Battery_Discharging.state as QuantityType<Number>
Zeile3: val differenz = val1.subtract(val2)
// Wert an das Ergebnis-Item senden
Zeile4: Battery Bilanz Charging (sonnenbattery_bilanz_batteryCharging).postUpdate(differenz)
// (sonnenbattery_bilanz_batteryCharging).postUpdate(differenz)
Dem Ergebnis-Item wird kein Wert zugeordnet (NULL) - Was mache ich bitte falsch?