It is a very basic thing but this approach with counters is not a very easy way to do it.
Using the example at the top of the thread…
var Timer ezMotionTimer = null
rule "EZ Auge - Licht Aus"
when
Item EZ_Motion received command
then
Scene_EZ.sendCommand(3)
if(ezMotionTimer != null) {
ezMotionTimer.reschedule
}
else {
ezMotionTimer = createTimer(now.plusMinutes(5), [|
Scene_EZ.sendCommand(1)
ezMotionTimer = null
}
}
end
The above will turn on the Lights (i.e. sendCommand 3 to EZ_Scene). Five minutes after the last time the EZ_Motion receives a command the Timer will go off and turn off the lights.
I’ve a few other minor comments about your rule. These are not problems but could help you avoid problems in the future.
It is better to use the sendCommand and postUpdate method on the Item rather than the actions. So you would rewrite:
sendCommand(Scene_ColorSelect_EZ_Deckenlamp, new HSBType(new DecimalType(0),new PercentType(0),new PercentType(70)))
as
Scene_ColorSelect_EZ_Deckenlamp.sendCommand(new HSBType(new DecimalType(0),new PercentType(0),new PercentType(70)))
ColorItems can receive ONOFFType and PercentType commands. So where you set the bulb to HSBType(0,0,0) you can just sendCommand(OFF).