« Zurück zu Produkt

Dokumentation

GetCompatibleParents

Benötigt: IP-Symcon >= 8.2

 string GetCompatibleParents ()

Rückgabewert

Benötigter Verbindungstyp und Beschreibung kompatibler Instanzen

Beschreibung

Die Funktion gibt ein JSON-codiertes Objekt zurück, welches kompatible physikalisch übergeordnete Instanzen beschreibt. Die Verwaltungskonsole verwendet diese Information um bei Erstellung oder Anpassung der Instanz die passenden übergeordneten Instanzen vorzuschlagen.

Ist die Funktion nicht implementiert, so werden alle Modulen zurückgegeben, welche entsprechend des Datenflusses kompatibel sind. Für den Modultyp Splitter, Discovery und Konfiguratoren wird dabei eine neue Instanz oder eine Instanz ohne Verbindungen benötigt (type = require), beim Modultyp Gerät werden auch existierende Instanzen mit anderen Verbindungen vorgeschlagen (type = connect). Alle anderen Modultypen fordern keine weitere Verbindung. In den meisten Fällen ist diese Heuristik ausreichend. Falls sie aber nicht ausreicht, kann die Funktion überschrieben werden.

Parameter

Name Beschreibung
type Falls "require" werden nur neu erstellte Instanzen, sowie Instanzen ohne andere physikalisch untergeordnete Instanzen angeboten. Bei "connect" werden neu erstellte Instanzen und alle existierenden kompatiblen Instanzen vorgeschlagen.
moduleIDs Eine Liste von ModulIDs von kompatiblen übergeordneten Instanzen. Wird moduleIDs verwendet, so können keine erweiterten Parameter genutzt werden. Es muss moduleIDs oder modules gesetzt werden, aber nicht beide.
modules Eine Beschreibung möglicher kompatibler übergeordneter Instanzen. Für die möglichen Parameter, siehe modules. Es muss moduleIDs oder modules gesetzt werden, aber nicht beide.

modules

Name Beschreibung
moduleID Die ModulID von Instanzen, welche kompatibel sind
configuration (optional) (default: {}) Ein Objekt, welches die benötigte Konfiguration der Instanz beschreibt. Existierende Instanzen, welche nicht die genannte Konfiguration haben, werden nicht als kompatibel angezeigt. Wird eine neue Instanz erstellt, wird diese Konfiguration erzwungen und kann nicht durch den Benutzer geändert werden.
initial (optional) (default: {}) Ein Objekt, welches vorgeschlagene Konfigurationsparameter enthält. Wird eine neue Instanz erstellt, so werden diese Parameter initial ausgefüllt, können aber durch den Benutzer angepasst werden. Das Objekt hat keine Auswirkung auf bereits existierende Instanzen.
formOverride (optional) (default: {}) Ein Objekt, welches Anpassungen am Konfigurationsformular der neuen Instanz beschreibt, welche ähnlich wie UpdateFormField angewandt werden. Die Schlüssel des Objekts sind die Namen der Konfigurationselemente. Die Werte sind wiederum Objekte, welche als Schlüssel die Namen der Felder und als Werte den aktualisierten Parameter beinhalten. Das Objekt hat keine Auswirkung auf bereits existierende Instanzen.

Beispiel

// Benötige eine neue Instanz und zwar einen Serial Port
public function GetCompatibleParents() {
    return '{"type": "require", "moduleIDs": ["{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}"]}';
}

// Benötige einen MQTT Client mit einer spezifischen Client ID
// Falls ein neues Gateway erstellt wird, wird entgegen des üblichen Initialwerts ein KeepAlive Intervall von 10 Sekunden eingetragen, kann aber angepasst werden.
public function GetCompatibleParents() {
    return '{"type": "connect", "modules": [{
        "moduleID": "{F7A0DD2E-7684-95C0-64C2-D2A9DC47577B}",
        "configuration": {
            "ClientID": "b10c75459d64cafb5d78"
        },
        "initial": {
            "KeepAliveInterval": 10
        }
    }]}';
}

// Benötige eine neue Instanz und zwar einen Serial Port mit Baudrate 2400 oder 9600
public function GetCompatibleParents() {
    return '{"type": "require", "modules": [{
        "moduleID": "{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}",
        "formOverride":  {
            "Baudrate": {
                "options": [
                    {
                        "value": "2400",
                        "caption": "2400"
                    },
                    {
                        "value": "9600",
                        "caption": "9600"
                    }
                ]
            }
        }
    }]}';
}
Haben Sie noch Fragen?