Besser wäre es gewesen, Deine gesamte Rule (bzw. vermutlich deren zwei) zu posten.
Außerdem reicht es nicht, die
Abschaltzeit zu nennen, Du musst auch einen Zeitpunkt benennen, ab dem das Licht wieder eingeschaltet werden darf.
Ein Ansatz sähe z.B. so aus: (angenommener Startpunkt ist 20 Uhr)
Code: Alles auswählen
rule "Nachtlicht an"
when
Item LUX_K1LUX changed
then
if((LUX_K1LUX.state as Number) > 210) // heller als 210 -> Licht aus
Licht.sendCommand(OFF)
else
if((LUX_K1LUX.state as Number) < 200) // dunkler als 200...
if((now.getDayOfWeek > 5 && now.minusHours(1).getHourOfDay > 18) || (now.plusDays(1).getDayOfWeek < 6 && now.plusHours(1).getHourOfDay > 20))
Licht.sendCommand(ON)
end
rule "Nachtlicht aus"
when
Time cron "0 0 23 ? * 1-4,7" or // Montag-Donnerstag, Sonntag 23 Uhr
Time cron "0 0 1 ? * 6,7" // Samstag, Sonntag 1 Uhr
then
Licht.sendCommand(OFF)
end
Die erste Rule schaltet das Licht aus, sofern die Helligkeit überschritten wird.
Die Schwelle ist etwas höher als die Einschaltschwelle, damit es nicht zum Flattern kommt.
Falls die Helligkeit unterschritten wird, prüft die nächste etwas komplere Bedingung den korrekten Zeitraum. Der Trick ist hier, das Datum und die Zeit so zu verschieben, dass nicht diverse zusätzliche Prüfengen fällig werden.
Samstags und sonntags (Tag der Woche > 5) wird von der aktuellen Zeit eine Stunde abgezogen. Um 00:59:59 Uhr wäre die Uhrzeit also 23:59:59 Uhr. Um 20:00:00 Uhr wäre die Uhrzeit dann 19:00:00 Uhr. Damit müsste die Stunde dann größer als 18 sein, wenn die Untergrenze 20 Uhr wäre.
Die zweite Teilbedingung ist nochmals verschwurbelter. Sonntags bis Donnerstags (das ergibt sich daraus, dass Sonntag +1 Montag ist, Und Donnerstag + 1 Freitag ist, somit ist getDayOfWeek dann 1-5, also kleiner 6) wird geprüft, ob die Uhrzeit + eine Stunde größer als 20 ist (aus 22:59:59 wird 23:59:59, aus 20:00:00 Uhr wird 21:00:00 Uhr).
Damit wird das Licht nur dann eingeschaltet, wenn die Helligkeit unter den festgelegten Wert sinkt und es nach 20 Uhr ist, Sonntag bis Donnerstag vor 23 Uhr bzw. Freitag und Samstag vor 1 Uhr ABENDS (also "25 Uhr")
Die zweite Rule schaltet zu den gesetzten Zeitpunkten das Licht aus.
Eine andere Alternative wäre, ein Item LichtEnable zu definieren, dieses wird durch zwei Rules ein- und ausgeschaltet, das Einschalten passiert immer um 20 Uhr, das Ausschalten genauso wie oben, zusätzlich zum Licht.
Dann reduziert sich der Test in der ersten Rule auf den Zustand von LichtEnable, dafür braucht es halt noch die dritte Rule für das Enable um 20 Uhr.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet