Warum baust Du da überhaupt einen Timer ein? Wenn Du das Astro Binding zum Triggern verwendest, kannst Du im entsprechenden Channel (hier sunset RangeEvent) ein Offset setzen. Du kannst also auf den 1. Timer verzichten und stattdessen ein Offset von 10 Minuten einstellen.
Danach musst Du lediglich den Timer etwas verschieben:
Code: Alles auswählen
rule "Sonne geht unter, Licht geht an"
when
Channel 'astro:sun:home:set#event' triggered START
then
Echo_Speech.sendCommand("Die Sonne geht unter, ich schalte jetzt das Licht ein.")
createTimer(now.plusSeconds(5), [|
Outdoorplug.sendCommand(ON)
LichtSalz.sendCommand(ON)
LichtTV.sendCommand(ON)
LichtSchlafzimmer.sendCommand(ON)
Outdoorplug.sendCommand(ON)
LichtCouchSchalter.sendCommand(ON)
LichtVitrine.sendCommand(ON)
])
end
Ich habe hier die Methode anstatt der Action verwendet, wann immer möglich, sollte man die Methode bevorzugen (die Action ist weniger flexibel).
Ich habe auch eine andere Form für createTimer gewählt, so wird etwas deutlicher, dass das Lambda (der Codeblock) ein Parameter der Funktion createTimer() ist. Beide Schreibweisen sind zulässig.
Outdoorplug ist zweimal in der Liste, ich nehme an, das ist Absicht wegen der Zuverlässigkeit?
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet