Ja, sicher.
Code: Alles auswählen
rule "Heizung Finn"
when
Item FinnHZ_Temperature changed
then
var swHeat = OFF
if ((FinnHZ_Temperature.state as Number) < (FinnKZ_Solltemperatur.state as Number))
swHeat = ON
if(Heating_Finn_KZ.state != swHeat)
Heating_Finn_KZ.sendCommand(swHeat)
end
Unterschied 1: die Konstantenzuordnung ist im Prinzip schon ok, aber da die Konstanten nur einmal gebraucht werden, ist das eher überflüssig. Im Zwifel könnte man auf das Casting nach Number verzichten, so wird aber für den Leser klar, dass der Status als Zahl betrachtet werden soll.
Unterschied 2 (und das ist der eigentliche...): Die Variable swHeat bekommt einen default Wert OFF zugewiesen. ist die Temperatur niedriger als das Soll, wird swHeat auf ON geändert. Anschließend wird der Befehl ans Item nur unter der Bedingung verschickt, dass Sollzustand und Istzustand voneinander abweichen. Bei Deiner Rule zieht jede Änderung der Temperatur immer einen Befehl nach sich, auch wenn dieser schon gesendet wurde.
Ob die Rule mehr oder weniger Taktzyklen braucht, ist vermutlich zu vernachlässigen, aber der Steuerbus wird entlastet, denn der Status wird nur intern in openHAB gelesen, während der Steuerbefehl auf den Bus geht.