Dokumentation
Aktionsskripte
Aktionsskripte sind solche Skripte, die bei einer Variable via anklicken in einer Visualisierung (z.B. WebFront, Mobile) aufgerufen werden.
Das Aktionsskript muss in der jeweiligen Variable als "Eigene Aktion" verknüpft werden.
Unter Systemvariablen können die speziellen Variablen für aufgerufene Skripte eingesehen werden.
Ein Aktionsskript kann von mehreren Variablen genutzt werden. Häufigste Variante siehe unten "Nur Variable setzen".
Aktionsskript auswählen
Das Auswählen eines Aktionsskript ist dasselbe wie das Auswählen einer Variablenaktion .
Einige Variablen von hinzugefügten Modulen beinhalten eine "Standardaktion". Diese kann durch ein "Eigene Aktion" überschrieben werden.
Aus einer Kombination von Dummy Modulen (Instanz), einer Variable mit verknüpften Variablenprofil und einem verknüpften Aktionsskript, kann die Funktion eines nativen IP-Symcon Moduls nachgebildet werden.
Aktionsskript erstellen
Ein Aktionsskript ist ein normales PHP-Skript. Erst durch das Einbinden in einer Variable wird es zum Aktionsskript.
In einem Aktionsskript sollte zumindest der Schaltvorgang und die Anweisung stehen, welche die Variable auf den angeforderten Zustand setzt:
Beispiel 1
Dies ist das Beispiel, welches durch das "+" bei "Eigene Aktion" erstellt wird.
//Nur Variable setzen SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
Beispiel 2
//Variable nur passend setzen wenn Schaltvorgang erfolgreich if (FS20_SwitchMode(12345, (boolean)$_IPS['VALUE'])) { SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); }
Schlechte Aktionsskripte
Es gibt Kriterien, welche unbedingt beim Erstellen eines Aktionsskriptes beachtet werden müssen. Werden diese nicht befolgt, kann es zu unvorhergesehenen Verhalten kommen.
Setzen der Variable ohne auf erfolgreiches Schalten zu achten
Die meisten Funktionen geben bei Erfolg ein "True" zurück und auf dies sollte auch geprüft werden.
Wird dies nicht getan ist der Status in IP-Symcon und die des Geräts nicht mehr konsistent zueinander. Somit kann es passieren das die eingerichtete automatische Steuerung nicht korrekt arbeitet.
//Variable wird auf neuen Wert gesetzt, selbst wenn der Schaltvorgang nicht erfolgreich war. Es kann zu Konsistensfehlern kommen. FS20_SwitchMode(12345, (boolean)$_IPS['VALUE']); SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
Bei Variablenänderung via Ereignis ein Gerät schalten
Wenn der Wert einer Gerätevariable via Aktionsskript gesetzt wurde und aufgrund der Variablenänderung ein Ereignis versucht das Gerät auf diesen Wert zu setzen.
Durch diese Handhabe hat man keine Möglichkeit etwaige Schaltprobleme des Geräts zu bemerken. Dies bedeutet, dass sowohl Fehlermeldung verdeckt werden, als auch die gesetzte Variable nicht mit dem tatsächlichen Gerätewert übereinstimmt.
Ein Beispiel wäre ein Dimmer der im WebFront von 0% auf 50% gestellt wird.
Die Variable wird sofort auf 50% gesetzt und der Schaltbefehl für den Dimmer wird asynchron über das Ereignis abgearbeitet. Ist dieser Schaltbefehl nicht erfolgreich, wird das nicht im Aktionsskript erkannt und somit bleibt die Variable in IP-Symcon auf 50% eingestellt, obwohl der tatsächliche Wert noch immer 0% ist.