Du hast die Bedingungen falsch gesetzt. Also, abgesehen davon, dass die Bedingungen so auch nicht stimmen...
Sauberer:
Code: Alles auswählen
var Timer Gartentuere = null
rule "Nacht Gartentüre geöffnet"
when
Item Gartenture_OpenClose changed to OPEN
then
if(now.getHour < 23 && now.getHour > 5) // von 06:00:00 bis 22:59:59 Rule abbrechen
return;
if(AussenbeleuchtungTerrasse_Schalter.state == ON) // Licht ist schon an
return;
// Ab hier sind alle Bedingungen für Timerbetrieb erfüllt
Gartentuere?.cancel // Falls ein Timer läuft, abbrechen
MeldungTelegram.postUpdate("Die Gartentüre ist geöffnet worden") // Meldung triggern
AussenbeleuchtungTerrasse_Schalter.sendCommand(ON) // Licht anschalten
Gartentuere = createTimer(ZonedDateTime.now.plusMinutes(1), [| // Timer starten
AussenbeleuchtungTerrasse_Schalter.sendCommand(OFF) // Licht ausschalten
])
end
Allerdings schaltet das Licht so nach einer Minute aus, egal, ob die Tür noch offen ist oder nicht. Falls das Licht auf jeden Fall an bleiben soll, bis die Tür wieder geschlossen wird, bietet sich eine Prüfung im Timer an:
Code: Alles auswählen
var Timer Gartentuere = null
rule "Nacht Gartentüre geöffnet"
when
Item Gartenture_OpenClose changed to OPEN
then
if(now.getHour < 23 && now.getHour > 5) // von 06:00:00 bis 22:59:59 Rule abbrechen
return;
if(AussenbeleuchtungTerrasse_Schalter.state == ON) // Licht ist schon an
return;
// Ab hier sind alle Bedingungen für Timerbetrieb erfüllt
Gartentuere?.cancel // Falls ein Timer läuft, abbrechen
MeldungTelegram.postUpdate("Die Gartentüre ist geöffnet worden") // Meldung triggern
AussenbeleuchtungTerrasse_Schalter.sendCommand(ON) // Licht anschalten
Gartentuere = createTimer(ZonedDateTime.now.plusMinutes(1), [| // Timer starten
if(Gartenture_OpenClose.state == CLOSED)
AussenbeleuchtungTerrasse_Schalter.sendCommand(OFF) // Licht ausschalten
else
Gartentuere.reschedule(ZonedDateTime.now.plusMinutes(1))
])
end
Variante 2 unterscheidet sich nur innerhalb des Timers. Man kann das auch anders lösen, da kommt es halt sehr drauf an, was Du erreichen willst. Deise Variante hat z.B. die Schwäche, dass das Licht nach einer Minute aus geht, wenn ich die Tür innerhalb der Minute schließe, also nicht erst eine Minute nach Schließen der Tür.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet