Probleme mit Timer

Hallo,
Probleme mit dem Timer. Siehe Bild:
Zum Anfang:
Habe das Programm zuerst mit dem Befehl „IPS_SetScriptTimer“ (Bild: Punkt 3u.5) laufen gelassen. Wollte mal sehen wie er sich verhält.
Unter Script Events - OnChange (Bild: Punkt 2) hatte ich eine Variable hinterlegt, mit der ich das Programm ausgelöst habe.
Danach habe ich den Befehl ausgeklammert und den Befehl „IPS_Sleep“ (siehe Bild) getesten. Wollte sehen wie sich hier der Rechner verhält. Dabei ist mir aufgefallen der Timer Interval (Bild: Punkt 1) plötzlich einen hohen Wert anzeigt und der Timer abläuft. Habe die Timer Interval Zeit auf 0 gesetzt und mit dem Buttom Update bestätigt. Doch beim Start durch Execute wurde der Timer wieder gefüllt mit einem nicht definierten Wert.
Habe unter Script Events die Variable gelöst (Bild: Punkt 2), doch der Timer läuft weiter.
Jetzt habe noch die Script FS20ST_1_OFF und FS20ST_2_OFF (Bild: Punkt 5) mit dem Buttom Events überprüft.
Hier war der Timer immer noch mit dem Wert des Befehl „IPS_SetScriptTimer“ gefüllt (1 Sek.), obwohl ich das Programm mit ausgeklammerten Befehl gestartet hatte.
Ist dies ein Problem?
Gruß
Luggi

Hmm ich kann das Problem nicht ganz nachvollziehen… Was muss ich genau machen, damit ein Script einen Timer bekommt, ohne dass jemand ihn gesetzt hat? (Das war doch das Problem?)

Wenn du IPS_SetScriptTimer(„Name“, 1); setzt, musst du natürlich auch wieder die Sache per IPS_SetScriptTimer(„Name“, 0); ausschalten. Der Timer wird sonst immer wieder ausgeführt…

paresy

Hallo Paresy
verstehe ich nicht, ich dachte der Befehl „IPS_SetScriptTimer“ ist gleich zu setzen wie z.B.: „IPS_Sleep“. Ich sage z.B.: schalte nach 30 Sekunden die Lampe wieder aus. Also „IPS_SetScriptTimer Name 30 Sekunden“. Sollte die Variable wieder von TRUE auf FALSE wechseln, starte das Script wieder und schalte nach 30 Sekunden wieder aus.
Und warum hat der Timer nach dem ausklammern einen undefinierten Wert, O.k. wenn ich nach deiner Aussage gehe, dann müsste der Timer auf 1 = 1 Sekunde stehen, aber er zeigt einen zufälligen Wert an! Siehe Bild von der ersten Frage.
Gruß
Luggi

Hallo Luggi,

der Scripttimer steht nicht auf einem zufälligen Wert, sondern er zählt den Wert runter.
Wenn du z.B. den Scripttimer auf 30 stellst, fängt er bei 30 an abwärts bis 0 zu zählen und führt dann das Script wieder aus.(in Sekunden). Gleichzeit fängt er aber wieder an von 30 Sekunden rückwärts zu zählen, bis 0 und führt das Script wieder aus.
Wenn du diesen Timer dann aus dem Script stoppen willst, mußt du dies auch im Script wieder definieren und zwar den Scripttimer auf 0 setzen.
Dann wird das Script erst wieder ausgeführt, wenn es z.B. durch deine Variable getriggert wird.

Ich hoffe dir hilft das weiter,

Doc

Hallo Doctor Snuggles,
Du hast ja recht, aber was ich meine mit, der Timer hat einen undefinierten Wert. Also, obwohl ich den Timer auf 0 gesetzt habe (Manuell mit dem Update - Button im Event-Fenster) und das Event-Fenster beende. Danach wieder das Event-Fenster öffne, steht nun ein Wert von, sagen wir mal 8675 im Timer (über 2 Stunden) und zählt fleissig herunter. Leider wurde das Bild noch nicht freigegeben. Vielleicht würdest Du dann verstehen was ich meine.
Gruß
Luggi

Nachtrag: Habe heute das neue Beta runtergeladen. Hier tritt das gleiche Problem auf!
Gruß
Luggi

Jetzt vielleicht mal ne blöde frage:
Hast du die beide kommando’s in BEIDE scripte rausgeklammert?

Woltest du vielleicht ne ‚sleep‘ funktion einbauen?

Es gibt dies bezuglich bessere lösungen:
Sehe dich mal um und finde die commando’s


if($IPS_VARIABLE=="TimerEvent"){
    //nach 7 minuten wieder wecken
    ...
} elseif($IPS_TRIGGER=="Variable" {
    //nah du schlaffkopf ... möchtest du noch etwas weiter schlafen ? warte nur
    ...
} else {
    //es kommt der tag und möchte das der Boss mir futtert mir ein STOP comando
    ...
}

Hallo GGGss,
vielen Dank für Deinen Tipp. Das Script habe ich nur verwendet, damit ich dem Problem auf die Spur komme. Darum einmal den SLEEP b.z. TIMER Befehl. Aber wie oben erklärt, bleibt das Timer-Problem das Gleiche.
Nochmals Danke für den Tipp.

Luggi