Die Definition der Timer ist so eigentlich Quatsch. Beide Timer, die "hintereinander" gestartet werden, enden quasi zeitgleich, da nur wenige Millisekunden dazwischen liegen. Die Frage ist nun: sollen die Lichter zeitgleich eingeschaltet werden, oder sollen sie im Abstand von 5 Minuten eingeschaltet werden? Aber auch sonst wirft die Rule einige Fragen auf.
Etwas aufgeräumt sieht der Code so aus (er sollte funktionsidentisch zum Originalcode sein, bis auf die Fehler...):
Code: Alles auswählen
// Globale Variablen zu Beginn der Datei
var String strXmasColor = "227,30,100"
var Timer tXmas = null
rule "Licht Sonnerunter an"
when
Item NightState changed from OFF to ON
then
tXmas?.cancel
Light4_Color.sendCommand(strXmasColor)
Light6_Color.sendCommand(strXmasColor)
if (Weihnachtsbeleuchtung.state == ON){
Light4_Dimmer.sendCommand(50)
Light6_Dimmer.sendCommand(50)
tXmas = createTimer(now.plusSeconds(300), [| // ?
Light4_Dimmer.sendCommand(50) // ? Warum nach 5 Minuten identisch wiederholen?
Light6_Dimmer.sendCommand(50) // ?
])
} else {
tXmas = createTimer(now.plusSeconds(300), [|
Light4_Toggle.sendCommand(ON)
Light6_Toggle.sendCommand(ON)
]
}
end
rule "Licht 12 Uhr aus"
when
Time cron "0 0 0 * * ?"
then
Light4_Toggle.sendCommand(OFF)
Light6_Toggle.sendCommand(OFF)
logInfo("rule","Licht 12 Uhr aus")
end
Man sollte Timer grundsätzlich nicht einfach so erzeugen, ohne die Möglichkeit, den Timer auch zu stoppen.
Aber zurück zu meiner Frage...
Ist die Weihnachtsbeleuchtung aktiv, wird sofort eine Farbe gewählt und unmittelbar der zugehörige Dimmer auf 50% gesetzt. Nach fünf Minuten wird der Dimmer erneut auf 50% gesetzt.
Ist die Weihnachtsbeleuchtung nicht aktiv, wird ebenfalls sofort eine Farbe gewählt. Nach 5 Minuten werden die Lichter eingeschaltet. Diese Regel sieht für mich ehre danach aus, dass da etwas durcheinander geraten ist. Also:
Was bezweckst Du überhaupt?
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox 9.1.2 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte