How to turn device off after 15 minutes

I am strugling to set an energy save mode (when a motion sensor is in-active for 15 minutes);

= = = = =

// last motion
$hourmin = $lastchangeplus;

// splitting the last motion time
$Hour = date(„H“,$hourmin);
$Minute = date(„i“,$hourmin);
$Second = date(„s“,$hourmin);

// set 15 minute timer
IPS_SetEventCyclicTimeFrom($event, $Hour, $Minute, 0);
IPS_SetEventCyclicTimeTo($event, $Hour, $Minute, 55);
IPS_SetEventCyclic($event, 1 , 0, 0, 0, 0 ,0); // is once
IPS_SetEventActive($event, true);

// status = on
if ($status == 1 ) {
setvalue ($targetlight, $fulllevel);
echo „aan“;
}

// status = 0 (<15 minutes)
elseif ($status == 0 & $lastchangeplus > $currenttime ) {
echo „uitloop“;
setvalue ($targetlight, $fulllevel);
}

// status = 0 (>15 minutes)
else {
setvalue ($targetlight, $savelevel);
echo „save“;
}

Hi,
I do it quite simple.

  1. If motion was detected start script timer (always)
    1.a. set full level
  2. If script timer created an event set script timer to 0 so it is disabled
    2.a. set save level

Something like this:


<?php
// Konfiguration
if($_IPS['SENDER'] == "TimerEvent"){
    if (IPS_GetName($_IPS['EVENT']) == 'ScriptTimer'){
 
// timer event so switch off Hue and disable timer
        PHUE_SwitchMode(26207, false);
        IPS_SetScriptTimer($_IPS['SELF'], 0);
        return;
    }
}

// timer is already running so no need to switch
if (IPS_GetScriptTimer($_IPS['SELF']) == 0) {
    // motion detected switch on Hue on first motion
    PHUE_SwitchMode(26207, true);
}

// enable script timer for 15 minutes
IPS_SetScriptTimer($_IPS['SELF'], 15*60);
?>

Ralf