hallo,
ich würde gerne in einer OH 4 rule eine statische liste von diversen timern in ein array überführen.
bisher habe ich folgendes versucht:
var List<Timer> myTimerArray = newArrayList()
var newTimer = createTimer(now.plusMinutes(1), [ |
logInfo("lights.rules", "{}", "timer ende")
])
myTimerArray.add(newTimer,0)
// zum testen den timer canceln
var aktTimer = myTimerArray.get(0)
aktTimer.cancel()
wie wäre die korrekte syntax um das durchzuführen?
TimerArray in Rule
- udo1toni
- Beiträge: 14038
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: TimerArray in Rule
Das sollte per Hashmap gehen:
Code: Alles auswählen
import java.util.Map
val Map<String, Timer> myTimerArray = newHashMap // außerhalb der Rule definieren, damit die Hashmap über die Laufzeit der Rule erhalten bleibt.
rule "meine Rule"
when
Member of gMeinGroupItem changed
then
// init
var vName = triggeringItem.name.split("_").get(1)
var vTimerName = "timer_" + vName
// mach was
// timers
myTimerArray.get(vTimerName)?.cancel;
myTimerArray.put(vTimerName, createTimer(now.plusMinutes(10)) [|
// mach was anderes
myTimerArray.remove(vTimerName)
] )
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 4
- Registriert: 1. Mär 2024 20:11
Re: TimerArray in Rule
vielen, vielen dank. das ist genau so etwas das ich gesucht habe !
funktioniert !!
funktioniert !!