Mit Script auf Änderung einer Variable durch JSON API reagieren?

Eine Boolean Variable wird in IP-Symcon durch die JSON API mit einem externen Programm über WFC_Execute bzw. SetValue geändert. Der Variable ist ein Script unter Eigene Aktion zugewiesen, dass bei Änderung der Variable eine Aktion durchführen soll. Wenn ich die Variable über das Webfront ändere kann ich als Trigger
if ($_IPS[‚SENDER‘] == ‚WebFront‘)
abfragen.

Wie reagiere ich mit dem Script auf eine Änderung durch die JSON API als Trigger so dass ich dann mit dem Script weitere Abläufe durchführen kann?

Da SetValue direkt die Variable beschreibt, löst es die ‚Eigene Aktion‘ gar nicht aus.
Auch änderst du ja nie direkt die Variable über das WebFront, sondern diese Aktion über das WebFront löst das Script welche bei ‚Eigene Aktion‘ eingetragen ist aus. Und das Script ändert dann die Variable z.B. per SetValue.

So kommst du also nicht an dein Ziel.

Eine mögliche Lösung ist, mit RunScriptEx zu arbeiten und den Index ‚SENDER‘ direkt mit einem eigenen Wert z.B. ‚RPC‘ zu überschreiben.
Dann kannst du im Script z.B.
if ($_IPS[‚SENDER‘] == ‚RPC‘)
machen.
Michael

Danke für die Information. Ich habe jetzt zumindest mal einen Workarround gefunden, indem ich das auszuführende Script an ein Ereignis binde, dass bei Variablenänderung auslöst. Im Script frage ich dann $_IPS[‚SENDER‘] == ‚Variable‘ als Auslöser ab und arbeite damit weiter. Der Nachteil ist aber, dass ich dann für jede Variable die ich über die JSON API ändere ein Ereignis anlegen müsste.

Gibt es denn eine Möglichkeit über die JSON API auch einen „Klick“ im Webfront auszulösen entsprechend einer Auswahl mit der Mouse?
Damit würde dann ja das Problem gelöst, das auch wieder das Script unter Eigene Aktionen greift, da ja vom Webfront ausgelöst wird.

Aber ohne angaben von Gewähr.

Such mal nach IPS_RequestAction :wink:
Dafür brauchst du dann aber den IDENT.
Und ich weiss nicht ob das nur auf Statusvariablen wirkt oder alle.

Bessere Lösung:
Ein einziges Script welches per RunScriptEx die VariablenID übermittelt bekommt. Und dann kann dieses universelle Script ja auf den Daten der Variable zugreifen (Eigene Aktion oder welche Instanz) und die korrekte Aktion ausführen.

Das mit ‚eigene Aktion‘ bringt dir ja auch nichts bei reinen Statusvariablen.
Dort steht nichts drin und dennoch geht z.B das Licht an. Weil diese Standardaktion aus der Instanz kommt.
Michael

Super wieder was dazugelernt. Auf die Art und Weise arbeitet auch IPSView oder?

Ich schaue mir das mal näher an.