Auslöser für Skripttimer gesucht

Hallo,

momentan habe ich seid ein paar Tagen ein Problem mit einem Skripttimer.
Gibt es irgendeine Möglichkeit rauszukriegen wodurch der aktualisiert wird.
Ich weis nicht wo der herkommt, eventuell mit einer schusseligen Mausbewegung von einem anderen Skript unter das aktuelle gezogen.
Dort hat er allerdings nichts verloren. Da ich nicht weis ob der mir irgendwann an der original Stelle fehlt, möchte ich ihn nicht einfach löschen.
Ich habe ihn also deaktiviert, aber irgendwas aktualisiert ihn anscheinend jeden Tag um 20:56.
Die Timerzeit ändert sich und er wird wieder aktualisiert.

Hoffe ich konnte das einigermaßen Verständlich rüber bringen.
Habt ihr eine Idee wie ich dem auf die Spur komme?

Gruß Michael

Hallo,

entweder Kontextmenür nach Referenz suchen oder im Zweifel das gesamte Verzeichnis vom Symcon, dort wo die Daten installiert (Linux oder Windows) sind mit Notepad++ in den Dateien nach der ID des Timers suchen.

So einfach ist das wohl nicht, nach Referenzen suchen war mein erster Versuch, aber das scheint bei Ereignissen/Timern wohl nicht zu funktionieren. Bei mir bekannten kommt jedenfalls auch keine Referenz.
Suchen nach der ID über alle Skripte bringt auch nichts.

Noch andere Ideen?

Edit:
Habe auch schon in der settings.json nach der ID gesucht, aber da sehe ich auch keinen Auslöser:

    "ID23633": {
            "data": {
                "actionID": "{346AA8C1-30E0-1663-78EF-93EFADFAC650}",
                "actionParameters": {
                    "SCRIPT": "<?php\n\n//Skript hier einfügen"
                },
                "active": false,
                "conditions": [
                    {
                        "id": 0,
                        "operation": 0,
                        "parentID": 0,
                        "rules": {
                            "date": [],
                            "dayOfTheWeek": [],
                            "time": [],
                            "variable": [
                                {
                                    "comparison": 0,
                                    "id": 0,
                                    "type": 0,
                                    "value": true,
                                    "variableID": 25683
                                }
                            ]
                        }
                    }
                ],
                "cyclicDateDay": 0,
                "cyclicDateDayValue": 0,
                "cyclicDateFrom": {
                    "day": 6,
                    "month": 6,
                    "year": 2026
                },
                "cyclicDateTo": {
                    "day": 0,
                    "month": 0,
                    "year": 0
                },
                "cyclicDateType": 0,
                "cyclicDateValue": 0,
                "cyclicTimeFrom": {
                    "hour": 0,
                    "minute": 6,
                    "second": 0
                },
                "cyclicTimeTo": {
                    "hour": 0,
                    "minute": 0,
                    "second": 0
                },
                "cyclicTimeType": 1,
                "cyclicTimeValue": 25020,
                "lastActionID": 1780685760,
                "lastRun": 1780685760,
                "limit": 0,
                "type": 1
            },
            "disabled": false,
            "hidden": false,
            "icon": "",
            "ident": "",
            "info": "",
            "name": "ScriptTimer",
            "parentID": 21263,
            "position": 0,
            "readOnly": false,
            "type": 4
        },

Schau auch mal in den Timer Informationen und Ereignis Informationen. Vielleicht findest du dort was. Auf dem “+” klicken und dann Karte öffnen.

Banale Frage: Backup vorhanden, um dort in diesem Eintrag der settings.json nach dem parentID-Eintrag zu schauen?

"ID23633": {
            (...)
            "disabled": false,
            "hidden": false,
            "icon": "",
            "ident": "",
            "info": "",
            "name": "ScriptTimer",
            "parentID": 21263,
            "position": 0,
            "readOnly": false,
            "type": 4
        },

Danke dir fürs kümmern :smiling_face_with_three_hearts:,
aber da war ich leider auch schon.
Bei den Timern steht gar nichts darüber und bei den Ereignissen nur das was ich auch drüber weis, aber leider nichts darüber wer das Ereignis aktualisiert.
Screenshot 2026-06-06 175019

Habe bei den drei älteren Backups die ich noch habe in der settings.json geguckt, aber da sieht es genauso aus wie jetzt. Entweder ist das also schon länger und mir nicht aufgefallen, das wäre aber komisch, weil ich den Timer für Rollladenbewegungen die normal nicht sein sollten ausgemacht habe.
Vielleicht lösche ich in einfach und warte ob dann irgendwas anderes irgendwann nicht geht.

Ich hatte gehofft es gibt irgendeinen Befehl oder auch mehrere um raus zu bekommen wer den Timer aktiviert und die Zeit darin auch ändert.

Du könntest auch mal nach dem Elternobjekt oder nach dem Namen des Ereignisses suchen. Manche Codebausteine ermitteln die ID zur Laufzeit.

1 „Gefällt mir“

Es ist eine Bedingung eingetragen, ID 25683 auf True, vielleicht hilft das ja weiter.

ja, das hatte ich gesehen, ist eine bool für Sommer. Die kann ja nichts aktualisieren.
Die schaltet die Rolladenfunktion nur für den Sommerbetrieb um.

Ich danke euch für eure Tipps, aber ich glaube ich lösch das Ding wirklich.
Ich warte heute nochmal 20:56 ab, ob sich was bewegt.

Edit:
Kann auch nichts mehr passieren, habe von
Führe Automation aus auf
Führe PHP Code aus umgestellt und da steht nur der Kommentar drin

Mit der Zeile

IPS_SetScriptTimer(ID vom Parent des ScriptTimers, 0);

setze ich den ScriptTimer eines anderen Scripts auf 0. Wenn Du nach Referenzen des Parent-Objekts suchst und nicht nach der ID vom ScriptTimer sollte dein Bösewicht erscheinen.

Ralf

Wenn Du einen Skripttimer löschst, dann wird er wiederkommen, falls er mit IPS_SetScriptTimer jeden Tag aufs neue gesetzt wird.

@HarmonyFan, ehrlich gesagt habe ich das nicht verstanden. das Parent Objekt ist ja jetzt das Skript unter dem der Timer eigentlich nichts zu suchen hat.

@DerStandart, da hast du natürlich Recht, das muss ich mal probieren. Dann weis ich aber immer noch nicht wer das dann war.

Ein ScriptTimer wird gesetzt mit

IPS_SetScriptTimer($_IPS[‚SELF‘], 0); in dem Script wo er erstellt werden soll oder

IPS_SetScriptTimer(ID von einem anderen Script, 0); wenn ein anderes Script einen ScriptTimer für dieses Script erstellen soll.

Wenn also ein Script einen falschen ScriptTimer bekommt geschieht es entweder im Script selbst oder in einem anderen Script. Den 2. Fall erwischt man mit dem man Referenzen für das Script sucht.

Ralf

Ich weiß, wie es gemeint ist, aber es ist leider falsch.

Hier in diesem Fall wird KEIN Skripttimer gesetzt, sondern er wird abgeschaltet, da als zweiter Parameter 0 übergeben wird.

Ist ebenfalls falsch. Es muss heißen IPS_SetScriptTimer(SkriptID des Skriptes auf welches der Timer soll, Zeitwert).

Noch mal zusammengefasst: Wenn ich auf das Skript 12345 einen Timer von 60 Sekunden setzen möchte, dann geschieht das aus dem Skript 12345 heraus mit:

IPS_SetScriptTimer($_IPS[‘SELF’], 60);

Aus jedem anderen Skript mit

IPS_SetScriptTimer(12345, 60);

Falls man mit den Systemvariablen auf Kriegsfuß steht, wo würde der letztgenannte Befehl natürlich auch aus dem Skript 12345 heraus funktionieren. Ersetzt man die 60 durch die 0, so wird der Skripttimer abgeschaltet.

Stimmt schon. Das was ich sagen wollte stimmt aber trotzdem. ScriptTimer wird im selben Script gesetzt oder muß per Referenz auf Script gefunden werden. Andere Möglichkeiten kenne ich nicht.

Ralf

1 „Gefällt mir“

Also der Timer wir im Skript unter dem er steht nicht gesetzt, sonst wäre das ja zu einfach.
Er wird also in einem anderen Skript gesetzt, oder gibt es noch andere Möglichkeiten?
Die ID vom anderen Skript kenne ich ja nicht, also nach welcher Referenz suchen.
Zusätzlich bleibt die Aktualisierungszeit des Timers immer auf 5.6.26 20:56 stehen, obwohl der Timer gestern wiede irgendwie aktiv gesetzt wurde. Ich setze in dann wieder inaktiv, aber auch dadurch wird die Aktualisierungszeit nicht geändert. D.h. ich kann nicht mal feststellen wann das genau passiert.

Referenz von dem Script das den unerwünschten ScriptTimer bekommt. Rechte Maustaste auf Script und dann nach Referenzen suchen.

Ralf

Schaltet die o.g. zusätzliche Bedingung den Timer eventuell wieder scharf? Ich würde mal das Aktualisierungsdatum des dort ausgewerteten Boolean vergleichen … nur um sicher zu gehen.

War gerade wieder auf aktiv, also etwa zwischen 12 und 15 Uhr.
Ich habe in jetzt gelöscht, mal sehen ob er wieder angelegt wird.