Praxis – Variablen & Timer

Das folgende Beispiel zeigt, wie eine Variable nach einer bestimmten Zeit zurücksetzt wird.

Aufgabe:
Per Handsender wird eine Variable auf „TRUE“ gesetzt; diese soll nach 5 Minuten
automatisch wieder auf „FALSE“ gesetzt werden.
(In unserer Sauna wird beim Duschen (21KW Duschlauferhitzer) der Saunaofen (Regelung)
für 5 Minuten ausgeschaltet, da dort nur ein 3 * 16A Anschluss zur Verfügung steht)

Lösung:
Im folgenden Skript wird der dazugehöriger Timer auf 5 Minuten gesetzt,
wenn die Variable „SCEN_Sauna_Dusche“, auf die auch getriggert wird, „TRUE“ wird und
der Timer den Wert Null hat.
Nach Ablauf von der Zeit wird das Skript erneut ausgeführt und nun sind beide Bedingungen
erfüllt: die Variable ist „TRUE“ und der Timer ist gesetzt. Jetzt wird unsere Variable „FASLE“
und der Timer auf Null gesetzt - fertig.

Hinweis:
Durch den Befehl: SetValueBoolean(„SCEN_Sauna_Dusche“, False);
wird das Skript nach Ablauf der Timer-Zeit erneut aufgerufen;
da aber die 1. IF-Bedingung nicht erfüllt ist, wird dann nichts mehr „abgearbeitet“.


<?
/*
*******************************
 IP-SYNCOM Event Scripting
*******************************
*/
//File: SCEN_Sauna_Dusche.ips.php
// Trigger: SCEN_Sauna_Dusche

if(GetValueBoolean("SCEN_Sauna_Dusche")) {
   if (IPS_GetScriptTimer("SCEN_Sauna_Dusche") == 0) {
      IPS_SetScriptTimer("SCEN_Sauna_Dusche", 5 * 60);
   } else {
      SetValueBoolean("SCEN_Sauna_Dusche", False);
      IPS_SetScriptTimer("SCEN_Sauna_Dusche", 0);
   }
} else {
       IPS_SetScriptTimer("SCEN_Sauna_Dusche", 0);
}
?>

PS:
Bei Fragen, Unklarheiten, Anregungen usw. bitte hier posten!