Ich habe ein Script angelegt, welches wiederverwendet werden soll. Dasselbe liegt im Ordner „C:\ProgramData\Symcon\scripts“ und hat den Namen „conbriotimer.ips.php“. Ich habe es zusätzlich registiert, es hat auch eine Objekt ID erhalten.
Wenn ich in einem Ereignis nun das Script per include einbinde und eine Funktion aufrufe, so komme ich nicht an Umgebungsobjekte heran.
Jup, weil der Code im Ereignis ist kein Script im Objektbaum und hat somit keine ObjektID.
Die $_IPS Variable wird einmal von Symcon gesetzt wenn der Code (im Ereignis) gestartet wird.
Und wenn du dann include im Ereignis benutzt bleibt $_IPS[‚SELF‘] auf 0. Das include ändert ja nichts an den globalen Variablen.
Das Thema kannst du einfach lösen, so wie es @DerStandart schrieb:
Das Ereignis soll ein Script aus dem Objektbaum starten und keinen Code ausführen.
Dann ist in $_IPS[‚SELF‘] die ObjektID vom Script welches durch das Ereignis gestartet wurde. @Attain Das geht zwar für die globale Funktion, aber löst nicht das Problem mit der fehlenden ObjektID.
Michael
Ich habe nun ein Script direkt im SymCon angelegt, da klappt es dann. Es kann nun bei Auslösen einer Bewegung eine Digitalstrom Szene aufrufen, nach einer bestimmten Zeit wird abgeschaltet. Aber nur wenn keine Bewegung mehr ist, sonst erneuert sich die Zeit und auch nur, wenn kein Dauerlicht eingeschaltet wurde. Ziemlich kompatk, schnell und schick.
Nun aber zum Problem: der autoloader funktioniert schon, ich kann auch include Dateien einfügen. aber in der Oberfläche des SymCon habe ich keinen Zugriff auf die bereitgestellte Funktion.
Was meinst du damit?
Das der Script Editor die Funktion nicht kennt?
Das ist normal, erkennt er auch nicht wenn die Funktion in der gleichen Datei ist.
Oder wird die Funktion einfach nicht ausgeführt? Gibt es Fehlermeldung?
Und bitte den Code immer entsprechend mit dem Button </> hier einfügen. Dein Code im Beitrag ist echt nicht zu lesen.
Michael
ja, ich war davon ausgegangen, dass der Script Editor die Funktion erkennen würde, das wäre ja eine enorme Erleichterung. Dank für den Hinweis mir dem Button </>.