Aktuellen Stand des ScriptTimer abfragen?

Hallo

ich würde gerne in einem Script abfragen, wie lange ich noch habe, bis der Script-Timer abgelaufen ist. Gibt’s dazu einen Befehl? IPS_GetScriptTimer habe ich schon probiert - der liefert aber den Startwert des Timer.

Ich würde das für einige Anwendungen benötigen wie zB: Ich starte einen Ventilator und setze zugleich einen Timer für das Script, welches den Ventilator wieder abstellt. In meinen Display könnte ich dann ganz einfach die Restlaufzeit anzeigen indem ich den aktuellen Timerstand abfrage. So wie im „Script Events“-Fenster unter „Next Run“.

Gruß
Erich


 echo IPS_GetScriptTimer($IPS_SELF) + IPS_GetLastRun($IPS_SELF) - time();  

paresy

oder:

 $t_down = IPS_GetScriptTimer($IPS_SELF) - (time() - IPS_GetLastRun($IPS_SELF));  // Timer-Restlaufzeit
echo "Restlaufzeit: $t_down
";

MST

Danke Paresy!
Danke Steiner!

Ihr seit wie immer die Größten :slight_smile:

BTW: Auf die Idee wäre ich nie gekommen, da ich der Meinung war, dass IPS_GetLastRun immer die letzte Ausführung liefert (laut Doku). Angenommen der Timer von Script B ist gestoppt. Wenn ich jetzt von Script A den Timer des Script B auf einen Wert ungleich 0 setze, so wird der Zeitpunkt der letzten Ausführung neu gesetzt obwohl das Script B nicht abgearbeitet wird. Für mich ist da der Ausdruck „GetLastRun“ etwas verwirrend, aber genau so brauche ich die Funktionalität:D

Gruß
Erich

Hi habt ihr auch noch einen trik wie ich das im Designer anzeige so das die Zeit sich ständich ändert.

Wenn ich eine der anderen Versionen von weiter oben nutze erhalte ich die zeit nur dann richtig wenn ich es in dem Script einarbeite was auch schaltet was aber nicht gewollt ist

Kann ich auch einen anderes Script abfragen ???

Kann ich auch einen anderes Script abfragen ???

Einfach $IPS_SELF durch den Namen des Script Timers ersetzen.

Echt
danke

Hi habt ihr auch noch einen trik wie ich das im Designer anzeige so das die Zeit sich ständich ändert.

Script schreiben welches durch den im Designer anzuzeigenden Timer getriggert wird und ein sekündliches Interval hat. Variable mit dem Startwert
des Timers herunterzählen. Script bei 0 stoppen. Fertig.

Danke hast du auch noch einen Trip wie ich die Sekunden in Min anzeigen kann denn ich $Zeit / 60 mach zeigt er die Sekunden in 100 tel an.


echo date('I') ? gmdate('H:i:s', $zeit) : date('H:i:s', $zeit);

Danke Thomas

Klapt sehr gut bis auf eine kleinigkeit wenn der Timer abgelaufen ist zeigt er

Restlaufzeit: -65
23:58:55

an hast du da auch ne nette idee oder muss ich das ausblenden mit ner if abfrage.

MFG KEN

Da muß irgend ein Fehler im Script bei Dir sein, der Timer kann ja nicht negativ werden. Wenn der Timer 0 ist sollte ein:


If ($zeit == 0)
 {
   IPS_SetScriptTimer("Zählscript",0);
 }

erfolgen.