« Zurück zu Produkt

Dokumentation

IPS_GetCompatibleParents

 string IPS_GetCompatibleParents (int $InstanzID) 

Parameterliste

InstanzID

ID der Instanz

Rückgabewert

JSON-codiertes Objekt, welches die kompatiblen übergeordneten Instanzen beschreibt. Der Aufbau (type, moduleIDs bzw. modules) ist bei GetCompatibleParents beschrieben. Benötigt die Instanz keine übergeordnete Instanz, wird "{}" geliefert.

Beschreibung

Die Funktion liefert ein JSON-codiertes Objekt, welches beschreibt, mit welchen übergeordneten Instanzen die Instanz mit der ID InstanzID verbunden werden kann. Die Verwaltungskonsole nutzt diese Information, um beim Erstellen oder Anpassen der Instanz passende übergeordnete Instanzen vorzuschlagen. Bei "require" wird eine neue Instanz oder eine Instanz ohne andere untergeordnete Instanzen benötigt, bei "connect" werden auch existierende kompatible Instanzen vorgeschlagen.

Bei PHP-Modulen wird das Ergebnis der Funktion GetCompatibleParents des Moduls geliefert. Ist diese nicht implementiert, wird eine mit ConnectParent, RequireParent oder ForceParent (wie RequireParent) festgelegte Vorgabe verwendet. Gibt es auch diese nicht, wird die Vorgabe anhand des Modultyps ermittelt:

Modultyp Ergebnis
Kern, I/O, Visualisierung "{}"
Gerät, Konfigurator type "connect" mit allen laut Datenfluss kompatiblen Modulen (IPS_GetCompatibleModules)
Splitter, Discovery type "require" mit allen laut Datenfluss kompatiblen Modulen (IPS_GetCompatibleModules)

Gibt es keine kompatiblen Module, wird ebenfalls "{}" geliefert. Existiert die Instanz nicht, schlägt die Funktion mit "Instance #... does not exist" fehl. Die IDs bereits existierender kompatibler Instanzen liefert IPS_GetCompatibleInstances.

Beispiel

// Kompatible übergeordnete Instanzen der Instanz 12345 (z.B. ein ThermoJet) ermitteln
$parents = json_decode(IPS_GetCompatibleParents(12345), true);
print_r($parents);

/* liefert z.B.:
Array
(
    [moduleIDs] => Array
        (
            [0] => {6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}
        )

    [type] => require
)
*/
Haben Sie noch Fragen?