Das Problem ist hier, dass die Variable lLStufe noch nicht initialisiert ist. Das liegt aber nicht daran, dass die Rule nicht triggert. Ein Change ist ein Change, es spielt keine Rolle, ob der Ausgangswert nun NULL oder 0 oder sonstwas war, nur die Änderung zählt. Deshalb muss man allgemein in Rules, prüfen, ob der alte Status NULL war (die Variable previousState ist automatisch gesetzt, wenn die Rule wegen eines Change getriggert wurde).
Das Problem hier ist vermutlich, dass die Items für Abluft/Zuluft/Außenluft vor dem Item LuefterStufe gesetzt wird, das heißt, die Rule wurde noch nicht ausgeführt. Du kannst versuchen, das Symptom zu bekämpfen, indem Du der ersten Rule einen weiteren Trigger hinzufügst:
Code: Alles auswählen
rule "luefter geändert"
when
System started or
Item LuefterStufe changed
then
lLStufe = now.millis
end
Damit wird die Rule jedesmal ausgeführt, wenn Du openHAB neu startest oder die *.rules Datei bearbeitest, in der die Rule liegt. Was natürlich dazu führt, dass auhc bei bereits laufender Anlage die Werte eine Zeit lang nicht aktualisiert werden. Irgendwas ist ja immer...
Alternativ könntest Du natürlich als erstes in der Rule prüfen, ob die Variable lLStufe != null ist und in diesem Fall auf now.minusMinutes(15) setzen, auf die Gefahr hin, dass dann doch (beim Neustart von openHAB kurz nach Änderung der Lüfterstufe) für einen kurzen Zeitraum falsche Werte angezeigt werden.