Dokumentation
IPS_GetTimers
array IPS_GetTimers (array $TimerIDs)
Parameterliste
| TimerIDs | Array mit den IDs der Timer. Bei einem leeren Array werden alle Timer geliefert |
Rückgabewert
Ein Array mit einem Eintrag je Timer in der Reihenfolge von TimerIDs. Ist TimerIDs leer, ist die Reihenfolge der Einträge nicht garantiert. Jeder Eintrag hat denselben Aufbau wie bei IPS_GetTimer.
Beschreibung
Diese Funktion ist nur für den internen Gebrauch vorgesehen und kann sich jederzeit ohne Ankündigung ändern oder entfallen.
Die Funktion liefert die Informationen der Timer mit den IDs TimerIDs in einem Aufruf. Ist TimerIDs leer, werden alle Timer geliefert. Existiert einer der Timer nicht, schlägt die Funktion mit "Timer #... does not exist" fehl.
Die Funktion ist für den Abruf über die JSON-RPC Schnittstelle vorgesehen, z.B. für die Anzeige in der Konsole. In PHP-Skripten steht sie nicht zur Verfügung ("This function is not available for PHP") – dort kann das Ergebnis über IPS_GetTimerList und IPS_GetTimer ermittelt werden.
Timer werden von Instanzen registriert, beispielsweise von PHP-Modulen mit RegisterTimer und SetTimerInterval oder als einmalige Timer mit RegisterOnceTimer. Auch die eingebauten Module nutzen Timer, z.B. "SearchExpires" für das Ende des Suchmodus. Die TimerIDs werden zur Laufzeit vergeben und sind nicht dauerhaft, einmalige Timer verschwinden nach ihrer Ausführung. Skript-Timer (IPS_SetScriptTimer) sind zyklische Ereignisse und gehören nicht zu diesen Timern.
Beispiel
// Alle Timer einer Instanz über die JSON-RPC Schnittstelle anzeigen
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
foreach ($rpc->IPS_GetTimers([]) as $timer) {
if ($timer['InstanceID'] == 12345) {
printf("%s: %d ms, nächste Ausführung: %s\n", $timer['Name'], $timer['Interval'], $timer['NextRun'] ? date('H:i:s', $timer['NextRun']) : '-');
}
}
/* liefert z.B.:
Update: 60000 ms, nächste Ausführung: 12:01:00
*/