Möchte eine Interger Variable von z.b. 400 Sekunden auf 0 zählen lassen, dieses soll aber wenn möglich ohne einen sleep Befehl auskommen.
Das heist ich möchte irgendwo im Script sagen zähle ab jetzt von 400 Sekunden bis 0 Sekunden und speichere den aktuellen Zähler immer in einer Variablen. Das Script soll aber weiter laufen.
Hat jemand da ne Idee?
eine von Dir beschriebene Funktion kenne ich leider nicht.
Beschreibe doch mal, wofür dieser Count Down gebraucht wird. Sicherlich läßt sich die Funktion auch ohne automatisch runterzählender Variable programmieren.
Das Beispiel hat mir geholfen, werde einfach ein Script starten was per IPS_SetScriptTimer immer im 1 Sekunden Takt die Variable des Timers des Bewegungsmelders runterzählt und so kann ich mir diese im Designer anzeigen lassen.
Das kann doch ganz einfach berechnet werden…
Startzeit merken und hopla
if jetzt - startzeit < 400 {timeout = jetzt - startzeit}else{timeout = 0; startzeit=0;}
wie genau sind denn der IPS-Befehl IÜS_SetScriptTimer?
Wenn der hinreichend genau ist könnte ein Script nach 1 Sek. gestartet werden, dass die Variable 1 runterzählt und danach den Timer wieder für 1 Sek. setzt.
Gibt es eigentlich eine Möglichkeit einen PHP-Befehl per Timer ausführen zu lassen, oder muss dafür immer ein Script erstellt werden? Ich würde gerne ein Gerät nur kurz einschalten.
Wenn der hinreichend genau ist könnte ein Script nach 1 Sek. gestartet werden, dass die Variable 1 runterzählt und danach den Timer wieder für 1 Sek. setzt.
Grundsätzlich läßt sich ein Skript immer durch irgendeinen Event starten. Es spielt dabei nicht die geringste Rolle, wie genau der ScriptTimer läuft. Der Sekundentakt des ScriptTimers entspricht im Durchschnitt dem der Systemzeit, genauer geht es ohne äußere Hilfsmittel nicht.
Ich vermute der ScriptTimer soll auf 1 (nicht auf 10) gesetzt werden. Der Timer wird also nach jeder Sekunde neu „aufgezogen“.
Was bewirkt diese Zeile? Gar nichts!
Warum?
Der ScriptTimer zieht sich selbst auf! Das ist nachzulesen in der Dokumentation des Befehls IPS_SetScriptTimer(…).
Gibt es eigentlich eine Möglichkeit einen PHP-Befehl per Timer ausführen zu lassen, oder muss dafür immer ein Script erstellt werden?
Da heutzutage weder gedankliche noch mündliche Übermittlung von Befehlen an einen PC zuverlässig funktionieren, bleibt als letzter Ausweg nur die schriftliche Formulierung (z.B. eines PHP-Befehls).
Wie nennt man diese schriftliche Form der Übermittlung? Skript!
Mir kam es auch schon etwas merkwürdig vor, dass ich einen Timer immer neu starten muss, andererseits ist das z. B. bei Javascript genau so. Ich hatte diese Anleitung gelesen. Den Text verstehe ich so, dass ein Timer nur 1x ausgeführt wird.
Ich hatte nichts anderes vor. Meine Frage war, muss ich ein Script schreiben, oder kann ich auch direkt einen PHP Befehl per Timer zur Ausführung bringen. Ein Skript ist für mich immer dazu gedacht, um mehrere Befehle zusammenzufassen. Einzelne Befehle in ein Skript zu schreiben, halte ich für sehr umständlich.