Timer-Problem

Hallo zusammen,

wer kann mir helfen?

Aufgabe:
Ich möchte nach einer Zeit x das „TestSkript“ einmalig ausführen.

Problem:
Ich habe die entsprechende Routine aus WIKI eingebunden, jedoch wird das TestSkript nach dem 1. Aufruf der Routine zyklisch nach der Zeit x ausgeführt. Nach dem 2. Aufruf der Routine wird der Timer für das TestSkript abgeschaltet. Nach dem 3. Aufruf wieder eingeschaltet usw.

Nach meinem Verständnis müsste doch die Routine einmal durchlaufen werden, dabei nach der Zeit x (hier: 5s) das „TestSkript“ einmalig ausführen und dann den Timer sofort wieder abschalten. (hier mit Anzeige: "Timer ein " und nach der Zeit x:"Timer aus ")

So sieht mein Skript aus:

if(IPS_GetScriptTimer(„TestSkript“) == 0) {
IPS_SetScriptTimer(„TestSkript“, 5);
echo "Timer ein " ;
} else {
//Timer ausschalten
IPS_SetScriptTimer(„TestSkript“, 0);
echo "Timer aus ";
}

Was mache ich falsch?

Gruß Tim

Es funktioniert so nicht.

Du musst den Timer anmachen. Dann läuft er runter! Sobald das Script nun ausgeführt wurde, wird er wieder ausgemacht, worauf das Script nicht wieder angeht.

Nutz das Script mal und lass das TriggerEvent Fenster offen. Dann siehst du was passiert.

paresy

Hallo paresy,

vielen Dank für die Antwort, aber was heißt das: „Du musst den Timer anmachen.“ Wie und wo im Skript muss ich das machen?

Im WIKI kann man ja vieles nachlesen, da steht auch nichts von: Timer vorher einschalten.

  • Hier das WIKI-Beispiel für <IPS_GetScriptTimer>:
    <?
    //Script einmalig in 10min ausführen
    if(IPS_GetScriptTimer(„TestScript“) == 0) {
    IPS_SetScriptTimer(„TestScript“, 600);
    } else {
    //Etwas ausführen und Timer ausschalten
    FS20_SwitchMode(12345, TRUE);
    IPS_SetScriptTimer(„TestScript“, 0);
    }
    ?>

Kannst du noch etwas konkreter werden?

Das mit dem Event-Fenster habe ich gemacht; bringt mir aber keine neue Erkenntnis.

Gruß Tim

z.B. so:

IPS_SetScriptTimer(„Brunnen.Timer“, 60);

Setzt den Timer für das Script Brunnen.Timer auf 60 Sek.

Mit „0“ machst du ihn wie ober in deinem Script geschrieben wann immer du willst wieder aus.

Gruß,

Doc