ich habe mir überlegt, das ich gerne einen Motion-Sensor in der Küche nach X Auslösungen in ein längeres Timeintervall umschalten möchte. Ziel ist es...das wenn man(n) in der Küche länger aktiv ist das Timer-Intervall auf 10 Minuten zu schalten, sonst auf 3. Die Prüfung soll sich nach y Mal wieder auf 3 zurückstellen. z.B. Erstauslösung -> 3 Min., nächste Auslösung ->3 Min., nächste Auslösung ->3 Min., nächste Auslösung ->10 Min., nächste Auslösung ->10 Min., nächste Auslösung ->3 Min., usw.
Aktuell schaltet der nach genau einer Auslösung und nach 3 Minuten aus
Was hab ich bisher (ja...sind viele logInfos drin)
Code: Alles auswählen
rule "Kueche_Bewegung_an"
when
Item I_eg_ku_bs_01_oc changed to ON
then
if (x_eg_ku_sz_01_sw.state==ON){
logInfo("Kueche", "Lichtszene Kochen")
} else if (x_eg_ku_sz_02_sw.state==ON){
logInfo("Kueche", "Lichtszene Essen")
} else if (x_eg_ku_sz_03_sw.state==ON){
logInfo("Kueche", "Lichtszene Kaffee")
} else {
logInfo("Kueche", "Bewegung erkannt")
if(sTageslicht.state==OFF){
x_eg_ku_sz_05_sw.sendCommand(ON)
logInfo("Kueche", "Abend")
if(kitchenTimer === null) {
logInfo("Kueche", "Warte 3 Minuten")
kitchenTimer = createTimer(now.plusMinutes(3), [|
kitchenTimer = null
logInfo("Kueche", "Nach 3 Minuten")
x_eg_ku_sz_05_sw.sendCommand(OFF)
logInfo("Kueche", "Aus")
])
}else {
logInfo("Kueche", "tagsueber")
}
}
}
end
Ich hab schon an
Code: Alles auswählen
bewegungTimer.reschedule(now.plusMinutes(timeoutMinutes ))
1. einen "globalen" Counter definieren kann (var Number counter=0 im Header der Rule klappt nicht)
2. wo ich das reschedule einbaue
3. wie ich diese Umschaltung hinbekomme. Evtl. mit 2 "globalen" Countern und 1 Boolean?!
Vielleicht habt ihr ja ein paar Ideen?