Was können wir verbessern?

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.

Setzen des Aktionsskript

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 eine normale Skriptdatei. Durch das Einbinden in einer Variable wird es zum Aktionsskript.
In einem Aktionsskript sollte der Schaltvorgang und zumindest die Anweisung stehen, welche die Variable auf den angeforderten Zustand setzt:

Beispiel 1

//Nur Variable setzen
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

Beispiel 2

//Variable passend setzen wenn Schaltvorgang erfolgreich
if (FS20_SwitchMode(12345, (boolean)$_IPS['VALUE'])) {
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

Inhalt des Aktionsskript

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 versagt.

//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.

Niemals ein Ereignis zum Gerätschalten nutzen

English website available
Zum Warenkorb
Haben Sie noch Fragen?