… hier ein kleines Beispiel-Skript für den „IPS_SetScriptTimer“
Wird das Skript z.B. durch eine erkannte Bewegung eines PIRI getriggert (gestartet), wird der Timer (hier 5 Minuten) gesetzt.
Dann kann noch ein Vergleich erfolgen, ob es Tag oder Nacht ist und eine entsprechende Aktion ausgelöst werden.
Nach Ablauf der Zeit wir der Timer auf Null gesetzt und es kann zusätzlich noch ein Skript aufgerufen werden.
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Test_Timer_Trigger.ips.php
Trigger : entsprechende Variable
Interval :
*/
// hier kommt die "Status-Variable es jeweiligen FS20 Gerätes rein
$zustand = GetValueBoolean("FS20_etwas_schalten");
// optional: Tag & Nacht z.B. aus einem Helligkeit-Sensor oder Timerwizard: Sunrise / Sunset
$tag = GetValueBoolean("Flag_Tag"); // True = Tag
// hier kammt die Trigger Variable rein z.B. PIRI oder Festerkontakt
$trigger = GetValueBoolean("Trigger Variable");
if($IPS_SENDER == "Variable"){
if ($trigger == True) {
// PIRIs zurücksetzen !!!
//SetValueBoolean("PIRI_UG_Flur",False); // zurücksetzen
SetValueBoolean("Flag_Trigger_Test",True); // Flag setzen
IPS_SetScriptTimer($IPS_SELF, 5*60); // Timer 5 Minuten setzen
echo "Trigger erkannt";
}
// nur Schalten in der Nacht und wenn das Gerät aus ist
if (($zustand == False) && ($tag == False)) {
IPS_RunScript("FS20_etwas einschalten");
}
} else if($IPS_SENDER == "TimerEvent"){
SetValueBoolean("Flag_Trigger_Test", False); // zurücksetzen
IPS_SetScriptTimer($IPS_SELF, 0);
IPS_RunScript("FS20 etwas ausschalten"); // Timer löschen
}
?>