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"
}
]
}
}
}]}';
}