Hallo allerseits…
Entweder verstehe ich etwas falsch, oder IPS_SetEventLimit funktioniert nicht wirklich?!
Beispiel-Script zum Nachstellen:
<?
$Sekunden = 10;
$Name = "Wohnzimmer_Stehlampe_vorne";
$time = time();
$eventtime = time() + $Sekunden;
$eid = @IPS_GetEventIDByName("Wohnzimmer_Stehlampe_vorne", $_IPS['SELF']);
if (is_numeric($eid) == false) {
$eid = IPS_CreateEvent(1);
IPS_SetName($eid, $Name);
}
IPS_SetParent($eid, $_IPS['SELF']);
//IPS_SetEventCyclic($eid, 0, 0, 0, 0, 1 ,$Sekunden); // Variante 1
IPS_SetEventCyclicTimeBounds($eid, $eventtime, 0); // Variante 2
IPS_SetEventLimit($eid, 1);
IPS_SetEventActive($eid, true);
?>
Dieses Skript legt einen Timer an (funktioniert) und dieser sollte nur einmal ausgeführt werden (funktioniert nicht).
Ändert man IPS_SetEventLimit auf 0 oder 2 oder eine höhere Zahl, dann läuft der Timer unendlich. Aber nichts mit nur 1x oder 2x. Im Script unter Ereignisse steht zwar die korrekte Zeit zum Ausführen, auch steht der Timer auf AKTIV, aber bei der nächsten Ausführung steht „Nie“.
Ist das bei euch auch so? Oder verstehe ich da was falsch?
Eigentlich will ich, dass das Skript einen Timer anlegt (wenn noch nicht vorhanden) und diesen Timer einmal ausführt. Wenn man das Skript erneut ausführt, dann soll der Timer erneut einmal aktiviert werden und das Skript einmal starten.
Ja, ich könnte im Skript den Timer (nach Aufruf durch den Timer) wieder auf inaktiv setzen, aber das hier ist nur ein SEHR kleiner Teil, von dem was ich da drum herum gebaut habe und ich muss es so lösen.
Grüße,
Chris