Stehe auf dem Schlauch ....

Irgendwie stehe ich gerade auf dem Schlauch:

Ich habe in einer IPS Variablen eine Uhrzeit (die ich ändern kann) und ich möchte ein Script immer zu dieser Uhrzeit starten.

Wie definiere ich mein Event?
Ich kann ja schlecht minütlich schauen, ob die Zeit erreicht ist.

über Script oder manuell.

Beides!

Mir würde erstmal reichen zu wissen, wie ich ein Script starte zu dem Zeitpunkt, der in einer String Variablen hinterlegt ist.

Script anlegen, Ausgelöstes Ereignis hinzufügen Variable auswählen => bei bestimmten Wert.

Aber wo kann ich in dem Fall dem bestimmten wert eine variable zuweisen?
Also statt eines literals eine variable in der die Zeit steht?
:confused:

:confused::confused::confused::confused: Jetzt steh ich auf dem Schlauch.

start.png

Ich glaube er hat ne Variable in der 14:00 steht und möchte den Script start immer zu dieser Zeit ausführen. Die Variable kann sich ja ändern, dann müsste er manuell das Ereignis anpassen. Nicht sehr schön. Das geht doch sicher via Skript, oder?
Sowas muss es doch schon geben z.B. für Sonnenauf- und Untergang, oder?

Viele Grüße
Chris

sicher, es gibt zig Möglichkeiten das zu lösen. Wenn ich jetzt 2 Zeiten habe leg ich mir dafür 2 Ereignisse an mit den Zeiten und gut is.

Von Horst gibt es ein Script über astrologische Zeiten usw…

das müsste doch auch helfen:
Ereignisverwaltung: IP-Symcon :: Automatisierungssoftware

Ich setze einen Event auf die Variable (bei Änderung) und starte damit ein script welches mit mein Event für das eigentlich zu startende Script auf den Wert der Variable setzt.
Kling kompliziert, ist es aber sicher nicht.

viele grüße
Chris

Man kann doch über ein Skript auch einen Timer setzen, der zu der genannten Uhrzeit auslöst. Sind glaub ich Befehle wie „IPS_SetEventDateBounds“ oder so ähnlich. Steht aber in der Doku beschrieben.

Hallo MicF … es gib hier einen langen Thread unter Anleitungen / nützliche Scripte und zwar den hier:

Dieses Script legt automatisch Timer an bzw. ändert diese auf Grund von astronomischen Ereignissen. Vom Prinzip kannst du das Script übernehmen oder abändern, so das du einfach deine Variable mit der Uhrzeit benutzt an Stelle der errechneten Ereignisse …

Du kannst aber auch selber etwas basteln … schau dir in der Doku dazu die Befehle IPS_SetEvent mal an. Wichtig ist nur das du in deinem Script die Uhrzeit in einen Unix Timestamp umwandelst … in dem Astro Script wird das nämlich durch eine Funktion erledigt.

Und was das minütlich schauen ob die Zeit erreicht ist an geht … das geht sehr wohl und funktioniert auch sehr gut, es ist allerdings auf Grund der vorhandenen Möglichkeiten nicht notwendig :wink:

Gruß
Jens

Danke.

Das hatte ich schon gesehen.
Mir schien es aber irgendwie „in den Rücken durch die Brust ins Auge“ zu sein.

Ich dachte das geht mit IPS einfacher.

Im Prinzip bräuchte ich ja nur so etwas (Pseudo Code):

if (StartZeitVariable == aktuellUhrzeit)
{
runScript xy;
}

Ich könnte jetzt natürlich ein zyklischen Event, minütlich ausführen und dann aktuelleUhrzeit mit der StartZeitVariable vergleichen.
Aber das ist ja auch nicht der Weisheit letzter Schluss.

Wenn in Hometic die Datums und Zeitfunktionen nicht so rudimentär wären, wäre es damit ganz einfach.

Muss noch ein bisschen damit rumexperimentieren …

Ist ja schön wenn du dir das so einfach denkst … aber wer führt dann das Script mit der IF Abfrage aus?

Es gibt für dich nur 2 Lösungen … entweder legst du einen Timer auf dein Script, der das Script minütlich ausführt und die IST-Zeit mit der SOLL-Zeit vergleicht, oder du legst per Script einen Timer an!
Wenn du per Script einen Timer anlegst, dann als Beispiel Täglich um 00:00:01 und zusätzlich noch auf Änderung deiner Variable.
Das Script holt sich den Inhalt der Variable, wandelt es mit

strtotime()

in einen Timestamp um und erstellt oder erneuert dann den Timer … fertig … soooo sehr umständlich ist das gar nicht :wink:

Ich bin ja nicht so der Fachmann.

Du willst ein Event zu einem Zeitpunkt, der in einer Variablen als Wert gespeichert ist, ausführen.

Vielleicht ist eine Möglichkeit, den Scripttimer auf die Differenz „Jetzt“ zu „Wert der Variablen“ zu setzen.

Oder es gibt doch bestimmt eine Möglichkeit, einen einmaligen Event mit dem Aulösezeitpunkt = „Wert der Variablen“ zu erzeugen. Der gespeicherte Wert muss dann natürlich passend umgewandelt werden.

Moin moin,

ich würde es so machen:

In Variable „A“ steht die Uhrzeit z.B. 14:00 Uhr
Script „B“ soll zu Zeitpunkt „A“ starten.

Dann setze doch auf Variable „A“ ein Ereignis, das bei Variablenänderung
ein Script „C“ startet welches mit dem Befehl „IPS_SetEventCyclic“
IPS_SetEventCyclic: IP-Symcon :: Automatisierungssoftware

Den Startzeitpunkt aus Var. „A“ ausliest und diesen für Script „B“ setzt.
Evtl. musst du die Variable „A“ noch passend formatieren.

Oder habe ich das ganze falsch verstanden?

Ich denke, irgendwo sagen wir alle das gleiche. :smiley:
Stichwort sind eben die „IPS_SetEvent…“-Befehle. Damit und den o.g. Tipps funktioniert es wie gewünscht.

Danke für eure Beiträge, es läuft wohl in der tat darauf hinaus, dass ich events generieren muss, wie das das Astro Script tut.

Schön wäre, wenn IPS eine Event auslösen könnte, zum Zeitpunkt, das in einer Variablen steht, also nicht fest definiert ist.
Aber das müsste dann im Produkt passieren.

Ich habe verstanden, dass das nicht über Script lösbar ist.

Aber ein Script, dass bei Änderung der Zeitvariablen das Event auf diese Zeit setzt.

Wie geht das ?

Hallo Rainer,

auf das Variablenprofil der Zeitvariable ein Actionsskript setzen mit eben diesem IPS_SetEvent… und dem Inhalt der Zeitvariable.