Turn a Light Off after 5 Minutes

Preamble

I have a light in the kitchen which turns on if someone enters the kitchen, and turns off 5 minutes after there is no movement in the kitchen..

Assumptions

The following details assume that already installed is the Expire binding.

Overview

A virtual item of type ‘switch’ is used as a 5 minute timer. When the time expires, the light is turned off.

Details

  • Create a virtual item of type ‘Switch’, whose binding is to send an OFF command to itself when it expires after 5 minutes.

Switch KitchenLightTimer { expire="5m,command=OFF" }

  • Create a rule which sets the timer.
    • When the Motion Sensor senses movement, it turns on the kitchen light, but also sets the virtual KitchenLightTimer to ON.
    • If the Motion Sensor senses movement again before the 5 minutes has expired. it resets the virtual KitchenLightTimer to start timing the 5 minutes again.
rule "Start Kitchen Light on movement"
when
    Channel "dlinksmarthome:DCH-S150:3c1e043853d9:motion" triggered
then
    // If there is not good light, then turn the kitchen light on
    if (vGood_Dayight.state == OFF) {
        Kitchen_Power.sendCommand(ON)
    }

    // cancel Timer
    KitchenLightTimer.postUpdate(OFF)

    // start Timer
    KitchenLightTimer.sendCommand(ON)

end
  • Create a rule to turn the light off when the virtual KitchenLightTimer expires
rule "Kitchen Light Timer expired"
when
    Item KitchenLightTimer received command OFF
then
    // Timer body
    Kitchen_Power.sendCommand(OFF)
end

Note that I also only turn the light on if it is dark in the kitchen (not shown above). This is explained and elucidated in Time of Day Dependency.

Return to Home Automation