Dokumentation
IPS_RequestAction
bool IPS_RequestAction (int $InstanzID, string $VariablenIdent, mixed $Wert)
Parameterliste
| InstanzID | ID der Instanz |
| VariablenIdent | Ident der Statusvariable |
| Wert | Wert für die Aktion |
Rückgabewert
Konnte die Funktion erfolgreich ausgeführt werden, liefert sie als Ergebnis TRUE, andernfalls FALSE.
Beschreibung
Zum Schalten einer Variable wird RequestAction mit der ID der Variable empfohlen. RequestAction ermittelt die zuständige Aktion selbst: Es berücksichtigt eigene Aktionen (Aktionsskripte) und funktioniert auch für Variablen, deren Aktion nicht von der übergeordneten Instanz bereitgestellt wird. IPS_RequestAction umgeht beides. Die Ausnahme sind PHP-Module: Dort ruft IPS_RequestAction z.B. aus dem Konfigurationsformular (onClick/onChange) die eigene RequestAction-Methode mit einem Ident auf, der keine Variable sein muss.
Die Funktion ruft direkt die RequestAction-Funktion des Moduls der Instanz mit der ID InstanzID auf und übergibt VariablenIdent und Wert. Eine eigene Aktion der Variable wird dabei nicht ausgeführt.
Bei eingebauten Modulen muss unterhalb der Instanz ein Objekt mit dem Ident VariablenIdent existieren, andernfalls schlägt die Funktion mit "Object with ident ... could not be found" fehl. Unterstützt das Modul für diese Variable keine Aktion, schlägt sie mit "No action for VariableIdent '...' found" fehl.
Bei PHP-Modulen wird VariablenIdent ungeprüft an die Methode RequestAction des Moduls weitergereicht; ob eine Variable mit diesem Ident existiert, entscheidet allein das Modul. Fehler, die das Modul auslöst, werden als Fehler der Funktion zurückgegeben. Während Symcon startet oder beendet wird, wird die Methode nicht aufgerufen.
Beispiel
// Aktion über die Instanz und den Ident auslösen
IPS_RequestAction(12345, "Status", true);
// Empfohlen: Aktion über die ID der Variable auslösen
RequestAction(IPS_GetObjectIDByIdent("Status", 12345), true);