Timer mit Abfrage

Hallo,

ich habe folgendes Skript bei mir im Einsatz und wollte es jetzt mit einer Abfrage ergänzen, leider funktioniert das nicht so wie ich es will.

Mein Wunschverhalten wäre:
Ich öffne meine Garagentor, mein Licht geht an für 120 Sekunden. funktioniert auch schon seit Jahren. :wink:

Jetzt möchte ich eine Abfrage machen ob das Licht schon an ist und wenn ja soll es nicht nach 2 Minuten aus gehen, was es aber momentan noch tut.

Folgendes Skript verwende ich:

<?
$Licht = GetValue(51299 /[EG\Garage\Licht\STATE]/);
if($Licht == true)
{exit;}

else {

if($_IPS[‚SENDER‘] == „TimerEvent“)
{
//Aus Befehl
HM_WriteValueBoolean(12583 /[EG\Garage\Licht]/, „STATE“, false);

//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);

} else {
//An Befehl
HM_WriteValueBoolean(12583 /[EG\Garage\Licht]/, „STATE“, true);

//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 10);

}}
?>

Ich hoff mir kann man noch helfen.

Gruss Jan

Könnte es das sein?

Fehlerhaftes Script. Aber Warum?

Hi, erstmal danke.

Aber nein das funktioniert nicht, bleibt jetzt dauerhaft an. Ich denke nach dem einschalten, ist es jetzt true und somit schaltet das skript nicht mehr aus. Ich hab keine Idee wie ich das umgehen kann.

Naja, dein TimerEvent bekommt garnicht mehr die Möglichkeit das Licht auszuschalten.
Ich würde es so auf die Art machen.

<?
$Licht = GetValue(51299 /*[EG\Garage\Licht\STATE]*/);

if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl
HM_WriteValueBoolean(12583 /*[EG\Garage\Licht]*/, "STATE", false);

//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
} else if($Licht == false)
{
//An Befehl
HM_WriteValueBoolean(12583 /*[EG\Garage\Licht]*/, "STATE", true);

//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 10);
}
?>

PS: nicht getestet…

Gruß Christoph