Unterschiedliche TimerEvents mit Systemvariablen ermitteln?

Gibt es eine Möglichkeit verschiedene TimmerEvents mit Systemvariablen zu ermitteln? Also zyklische Ereignisse, ScriptTimer oder AstroTimer zu unterscheiden?

Wenn ich ein Script zu einer festen Zeit aufrufe und dann 1 Minute später etwas ausführen will mache ich es bisher immer so:

$id_ScriptTimer = 12345;//

if (@$_IPS['EVENT'] == $id_ScriptTimer)
{
    //Aus Befehl
    ...
    //Timer ausschalten
    IPS_SetScriptTimer($_IPS['SELF'], 0);
} else {
    //An Befehl
    ...
     //Timer anschalten
    IPS_SetScriptTimer($_IPS['SELF'], 60);
}

Ich muss mir die mit IPS_SetScriptTimer($_IPS[‚SELF‘],60) erstellte ID immer per Hand raussuchen. Geht das nicht automatisiert?

Das ist der Index SENDER.
Grundlagen :wink:
Wie kann ich…? — IP-Symcon :: Automatisierungssoftware
Michael

Hallo Michael,
entweder du verstehst mich nicht oder ich die Grundlagen nach so vielen Jahren nicht.

Mit $_IPS[‚SENDER‘] == „TimerEvent“ kann ich doch nicht zwischen ScriptTimern und anderen Zeitereignissen unterscheiden.:confused:
Und was soll der link?

Der Link zeigt das Beispiel aus der Doku mit der Verwendung von SENDER und einem SxriptTimer.

Du nutzt Event und das @ um einem Fehler zu unterdrücken falls Event nicht gesetzt ist.

Ein ScriptTimer ist auch nur ein normales zyklischen Ereignis, der Wochenplan (in Bezug auf Sender) ebenso.

Du kannst aber mit IPS_GetEvent($_IPS[‚EVENT‘])[‚EventType‘] prüfen ob es ein Wochenplan oder zyklisches Ereignis ist.
Reicht das nicht und du willst ScriptTimer von anderen zyklischen Ereignissen unterscheiden, bleibt nur der Name.
Also wenn IPS_GetName($_IPS[‚EVENT‘]) == ‚ScriptTimer‘ ist.

Und der Astrotimer ist der hier ?
IPSymconAstronomy/README.md at master · Wolbolar/IPSymconAstronomy · GitHub
Dessen Instanz erzeugt doch auch nur ein zyklisches Ereignis. Also erstmal keine Unterscheidung möglich.
Nutze das Modul allerdings nicht. Vielleicht gibt es da auch andere Möglichkeiten außer den Namen.
Michael

Ein AstroTimer hat eine Ident die entweder mit z.B. Sunrise oder Sunset beginnt. Eventuell kannst Du ja anhand der Ident prüfen um welche Art von Ereignis es sich handelt. Zu was soll das dann genau dienen die Unterscheidung?

IPS_GetName($_IPS[‚EVENT‘]) == ‚ScriptTimer‘ ist doch genau die Idee die ich suche. Der ScriptTimer wird ja immer so automatisch benannt.

Das @ muss davor sonst kommt beim ersten Skriptstart immer Undefined index…

Und Astrotimer nutze ich immer noch den alten >AutoSkriptStart_AstroTimer<

Danke Michael.

Anhang für Fonzo: Ich hatte geschrieben: Wenn ich ein Script zu einer festen Zeit aufrufe und dann 1 Minute später etwas ausführen will…

Darum doch mein Link.
Weil man nicht mit unbekannten Index arbeitet sondern zuerst auf Sender prüft, der ist immer gesetzt.
Michael