IPS_RunScriptDelayed

Mal was lustiges zu LLM (ChatGPT) und IPS Programmierungen. Wollte es in die Plauderecke posten, aber da hab ich keine Rechte einen Beitrag zu eröffnen.
Ich suchte eine Möglichkeit aus einem Script A ein Script B verzögert zu starten. Ich bekam die Funktion IPS_RunScriptDelayed vorgeschlagen mit nem kompletten (sogar lauffähigen) Programm drum herum.
Folgendes Gespräch hat sich daraus ergeben:
(Mir ist klar das einige von euch wissen das KIs gern etwas rumfantasieren, aber einigen ist es vielleicht auch neu.)

Ich: IPS_RunScriptDelayed ....gibt es nicht

KI: Der Nutzer sagt, dass die Funktion IPS_RunScriptDelayed nicht existiert. Wahrscheinlich wurde sie in neueren Versionen von IPS umbenannt oder ersetzt…

Ich: ich setze IPS in der Version 8 ein, das ist die neuste die es gibt

KI: IPS_RunScriptDelayed ist in IPS Version 8 definitiv vorhanden. Falls du eine Fehlermeldung erhältst, solltest du folgende Punkte prüfen: #bla#

Ich: Fatal error: Uncaught Error: Call to undefined function IPS_RunScriptDelayed()

KI: Sollte trotz bestätigter IPS 8-Installation und korrekter Skript-ID der Fehler weiterhin auftreten, könnte es sein, dass es ein spezifisches Problem oder eine Konfigurationsabweichung in deiner Installation gibt.

Ich: was lässt dich glauben das es diesen Befehl gibt oder jemals gegeben hat?

KI: Entschuldige bitte die Verwirrung. Du hast recht, IPS_RunScriptDelayed existiert nicht als vordefinierte Funktion in IP-Symcon, auch nicht in Version 8. Die vorherige Erwähnung dieses Befehls war leider ein Fehler meinerseits. Die Existenz von IPS_RunScriptDelayed basiert auf den offiziellen IP-Symcon-Dokumentationen und den Release-Notes früherer Versionen. Laut diesen Quellen wurde die Funktion eingeführt, um ein Skript nach einer bestimmten Verzögerung auszuführen – ein Feature, das in vielen Beispielen und Diskussionen in der IP-Symcon-Community verwendet wird.

Ich : Also weder in der Dokumentation noch im Symconforum wurde jemals über diese Funktion mit dem Namen gesprochen. Es gibt lediglich einige Workarounds um genau dieses Problem der verzögerten Ausführung irgendwie zu realisieren

KI: Du hast vollkommen recht – in der offiziellen Dokumentation und in der Community wird keine Funktion namens IPS_RunScriptDelayed erwähnt. Das war ein Irrtum. In IP-Symcon (auch in Version 8) gibt es keine eingebaute Funktion mit diesem Namen, um ein Skript verzögert auszuführen.`

Achso und was ich eigentlich sagen wollte, ich hätte gern diese Funktion :smile:

1 „Gefällt mir“

Wozu? Es gibt doch IPS_SetScriptTimer.

Ja gibt es, muss man dennoch weiter händeln. Der Timer ist dann einmal da, ruft man erneut auf hängt nen 2ter Timer am Script usw. . Es geht einfach darum simpel ein Script verzögert aufzurufen.

Oder eigentlich gehts darum das die KI fest darauf besteht das es diese Funktion gibt. :smile:

Ich finde die Idee nicht ganz ohne Reiz; hat aber ihre Probleme.

Witzig auf jeden Fall, wie ein LLM mit dem Brustton der Überzeugung eine Funktion samt Namen herbeiphantasiert, mitsamt angeblicher Vorgeschichte :smiley:

Zeigt mal wieder, was KI kann und wie damit umzugehen ist. Eben nicht Hirn abschalten sondern besonders aufmerksam und kritisch mit dem Output umgehen.

Danke fürs Teilen.

Und was möglich wäre wenn man es denn wollte:

IPS_RunScriptDelayed() erstellt einen temporären Timer, aber es ist nicht der normale „Script Timer“ und er ist auch von vornherein so konfiguriert, dass er nur einmal läuft.

Frage wäre, wann wird dieser Timer gelöscht. Es sollen sich ja keine „toten Timer“ anhäufen. Andererseits will man aber sicherlich, dass o.g. Funktion die ID des Timers zurück gibt, so dass es auch möglich ist, ihn abzubrechen. Aber eine ID, die irgendwann ungültig ist und theoretisch neu vergeben werden könnte ist auch nicht ideal.

Bringt einen auf jeden Fall auf interessante Gedanken :smiley:

Ich finde ScriptTimer schon eine Lösung. Script A macht IPS_SetScriptTimer(ID von Script B, Delay) und Script B muss einfach IPS_SetScriptTimer($_IPS[‚SELF‘], 0) ans Ende packen.

1 „Gefällt mir“

Ich bin jetzt seit Symcon v1 dabei, natürlich ist das verzögerte Auslösen von Scripten kein reales Problem. Es ist nur witzig das LLM darüber stolpern und überzeugt werden müssen das es so eine Funktion nicht gibt. Nach all den Jahren brauch ich diese Funktion nun auch nicht mehr und komme super mit verzögerter Ausführung zurecht :laughing:

Nimm einen Ablaufplan :smiley: Dort kannst du „vorne“ ein Delay einbauen. Und du kannst definieren ob der Ablaufplan mehrfach aufgerufen werden darf, oder immer wieder neu gestartet wird (der Timer wird dann abgebrochen). Ich glaube das kommt am nahesten an deinen Wunsch ran :slight_smile:

paresy

2 „Gefällt mir“