Was können wir verbessern?

Dokumentation

IPS_GetObjectIDByIdent

Benötigt: IP-Symcon >= 2.5

integer IPS_GetObjectIDByIdent ( string $ObjektIdent, integer $ÜbergeordneteID )

Parameterliste

ObjektIdent Zu suchender ObjektIdentifikator
ÜbergeordneteID Objekt, in dessen direkten Unterobjekten gesucht werden soll

Rückgabewerte

ID des gefundenen Objekts, sonst FALSE

Beschreibung

Die Funktion versucht die ID des Objekts mit dem Identifikator ObjektIdent, dessen übergeordnetes Objekt die ID ÜbergeordneteID besitzt, zu ermitteln. Falls ein solches Objekt gefunden wurde, wird dessen ID zurückgegeben, andernfalls FALSE.

Der Parameter "ObjektIdent" darf kein Leerstring ("") sein.

Unterschied zu IPS_GetObjectIDByName: Da ObjektIdents innerhalb einer Ebene in IP-Symcon eindeutig sind, wird entweder eine einzelne ID zurückgegeben oder eine Warnung generiert.

Sollte der Ident nicht gefunden werden, generiert diese Funktion eine Warnung. Es muss der @ Operator genutzt werden, falls diese Meldung unterdrückt werden soll. Die genau Funktionsweise dieses Operators kann dem PHP Handbuch entnommen werden.

Beispiel

//Diese Funktion kann als Ersatz für IPS_StatusVariableExists verwendet werden. 
//Beispiel für IPS_StatusVariableExists($id, "StatusVariable");
echo !(@IPS_GetObjectIDByIdent("StatusVariable", $id) === false);
 
//Ferner kann diese Funktion auch ein Ersatz für IPS_GetStatusVariableID darstellen. 
//Beispiel für IPS_GetStatusVariableID($id, "StatusVariable");
echo IPS_GetObjectIDByIdent("StatusVariable", $id);
 
 
$id = IPS_GetObjectIDByIdent($VariableIdent, $InstanceID);        
$v = IPS_GetVariable($id);
 
// Array ab 4.0
$sv = Array(
    "VariableID" => $id,
    "VariableIdent" => $VariableIdent,
    "VariableName" => "N/A",
    "VariablePosition" => 0,
    "VariableProfile" => $v['VariableProfile'],
    "VariableType" => $v['VariableType'],
    "VariableHasAction" => ($v['VariableAction'] > 0),
    "VariableUseAction" => ($v['VariableAction'] > 0)
);
 
// Array bis 3.4
$sv = Array(
    "VariableID" => $id,
    "VariableIdent" => $VariableIdent,
    "VariableName" => "N/A",
    "VariablePosition" => 0,
    "VariableProfile" => $v['VariableProfile'],
    "VariableType" => $v['VariableValue']['ValueType'],
    "VariableHasAction" => ($v['VariableAction'] > 0),
    "VariableUseAction" => ($v['VariableAction'] > 0)
);