IPS_SetEventActive Zeitproblem?

Hallo
Hab folgendes Problem
Rufe ein Script auf beim aktualisieren einer Variable.
In diesem Script moechte ich aber genau diese Variable
ab und zu veraendern.
Damit wuerde aber das Script wieder aufgerufen.
Hab dann die Doku durchsucht und bin auf den Befehl
„IPS_SetEventActive“ gestossen. OK probiert.
Wenn das Script gestartet wird den Event deaktiviert und
am Ende wieder aktiviert. Dachte das muesste gehen - fast.
Beispiel:

if ( GetValueBoolean(36796) )
	{
	IPS_SetEventActive(29516,false);
	SetValueBoolean(36796,false);
	//sleep(1);
	IPS_SetEventActive(29516,true);
	}

Wenn ich es so benutze und die Variable 39798 auf TRUE setze wird
das Script 2x durchlaufen.
Wenn ich sleep(1) aktiviere wird es einmal durchlaufen.
Man muss also eine bestimmte Zeit warten bis man den Event wieder
aktivieren darf.
Geht das irgendwie noch anders ?

Das funktioniert so nicht.

Die Variablenveränderung wird in einem seperaten Thread weiterverarbeitet der unter umständen erst später zur „IsActive“ abfrage kommt, als du es in deinem Skript setzt.

Es wäre besser, wenn du eine Lösung finest die entweder
A) Die Variable nicht verändert
B) Das erneute aufrufen des Skriptes muss mit dem neuen Wert klar kommen ohne eine Endlosschleife zu produzieren

paresy

Ich hatte das gleiche Problem in einem Script und habe es so gelöst:


//Am Anfang des Scriptes
$Run = GetValueInteger("Run");
If($Run == 1) //Doppeltrigger verhindern
{
   SetValueInteger("Run", 0);
   return;
}
........
SetValueInteger("Run", 1); //Script sperren
SetValueBoolean(36796,false);
........
//Am Ende des Scriptes
SetValueInteger("Run", 0); //Script erlauben



Danke fuer die schnelle Antwort.

Hab deinen Vorschlag A genommen