Was können wir verbessern?

Dokumentation

Configurator

Benötigt: IP-Symcon >= 5.0

Beschreibt das Aussehen und Funktionalität eines Konfigurators.

Beispiel

Dieses Element wird von der Legacy-Konsole nicht unterstützt. Wird ein Modul mit diesem Element in der Legacy-Konsole geöffnet, so kommt es zu einer Fehlermeldung.

Allgemeine Parameter

Parameter Beschreibung
type Configurator
name Name der Konfigurationsliste
caption (optional) sichtbare Beschriftung der Konfigurationsliste
delete (optional) (default: false) Wenn true, dann wird hinter jedem Eintrag mit InstanzID ein Button eingeblendet, welcher die entsprechende Instanz löscht und die Zeile im Konfigurator aktualisiert
rowCount (optional) (default: 0) sichtbare Anzahl von Zeilen; bei mehr Zeilen in der Liste wird ein Scrollbalken eingeblendet - ist der Wert 0, so füllt die Konfigurationsliste den restlichen noch verfügbaren Platz im Instanzeditor. Nur ein Konfigurationselement kann den gesamten restlichen Platz erhalten.
columns (optional) (default: Spalten für Adresse ("address") und Name ("name") ) Spalten der Konfigurationsliste
sort (optional) Sortierung der Tabelle. Wird dies nicht gesetzt bleibt die Liste unsortiert
values (optional) Einträge der Form

Parameter für columns

Parameter Beschreibung
label sichtbare Beschriftung einer Spalte (veraltet)
caption sichtbare Beschriftung einer Spalte
name eindeutiger Name einer Spalte um diese zu referenzieren; der Name darf nicht "id", "parent", "create", "expanded" oder "instanceID" sein
width Breite der Spalte in Pixeln, als CSS-String (z.B. "100px"); eine einzige Spalte darf den Wert "auto" haben, wodurch die Breite dieser Spalte den restlich verfügbaren Platz nutzt. Im Falle eines Baumes muss bei einer Spalte der Wert "auto" gesetzt sein. An dieser Spalte werden die Erweiterungs-Symbole dargestellt.
visible (optional) (default: true) Bei false wird die Spalte nicht angezeigt

Parameter für sort

Parameter Beschreibung
column Name der Spalte, nach welcher die Liste sortiert wird
direction Die Richtung der Sortierung; "ascending" für eine aufsteigende Sortierung und "descending" für eine absteigende Sortierung

Parameter für values

Parameter Beschreibung
create (optional) (default: error) Vorgabe der Konfiguration der erstellten Instanz (Mehr Informationen)
instanceID (optional) (default: 0) InstanzID des Gerätes im Objektbaum, 0 wenn das Gerät noch nicht erstellt wurde
id (optional) Ein Identifikator, mit welchem der Eintrag für eine Baumdarstellung als Elternknoten adressiert werden kann, id muss größer als 0 sein
parent (optional) (default: 0) In diesem Feld kann die id eines Wertes gesetzt werden, welcher in der Baumdarstellung der Elternknoten von diesem Wert wird. Hiefür muss der Eltern-Wert im Array vor dem Kind stehen. Ist "parent" 0, so wird das Element auf oberster Ebene eingefügt.
expanded (optional) (default: false) Falls dieser Wert true ist, wird der Eintrag beim Laden des Konfigurationsformulares direkt ausgeklappt
name (optional) (default: "") Wurden die Standardspalten verwendet, so kann mit diesem Parameter der Wert für den Namen gesetzt werden
address (optional) (default: "") Wurden die Standardspalten verwendet, so kann mit diesem Parameter der Wert für die Adresse gesetzt werden
Weitere Parameter (optional) (default: "") Für jeden initialen Eintrag der Liste werden hier die Werte zu allen Spalten definiert. Hierfür wird für jede Spalte ein Parameter mit dem Namen der Spalte eingetragen. Die Belegung des Parameters entspricht dem Wert dieser Spalte bei dem entsprechenden Eintrag.

Parameter für create

Es gibt verschiedene Möglichkeiten die zu erstellenden Instanzen und deren initiale Konfiguration zu definieren.

Variante 1: Konfiguration einer einzelnen Instanz

In der ersten Variante wird eine einzelne Instanz und deren Konfiguration definiert. In diesem Fall ist create ein Objekt, welches Informationen über die verwendete ModulID und die initiale Konfiguration enthält:

Parameter für Einrichtung

Parameter Beschreibung
moduleID Die Modul ID der zu erstellenden bzw. benötigten Instanz
configuration Die benötigte Konfiguration der Instanz, siehe IPS_SetConfiguration, nicht als JSON-String codiert
location (optional) (default: []) Die Liste von Strings gibt die initiale Position im Objektbaum an. Bei einer leeren Liste wird die Instanz in der Hauptkategorie erstellt. Ansonten werden hierarchisch die Kategorien mit dem jeweiligen Namen verwendet und bei Bedarf erstellt.

Wird eine Instanz erstellt, so wird sie mit der von der Einrichtung vorgegebenen ModulID und Konfiguration erstellt. Wie bei der Instanzerstellung üblich, wird die neue Instanz mit validen, physikalisch übergeordneten Instanzen verknüpft, wenn möglich. Hierbei wird bevorzugt die dem Konfigurator physikalisch übergeordnete Instanz verwendet.

Variante 2: Konfiguration einer Kette

Alternativ kann eine Kette von Konfigurationen übergeben werden. Diese definiert die gesamte physikalische Kette für die neu erstellte Instanz, üblicherweise also Gerät, Splitter und I/O. In dieser Variante stellt data.create eine Liste dar, deren Elemente wie in Variante 1 die Instanzen der physikalischen Kette definiert. Die Liste beginnt hierbei mit dem zu erstellenden Gerät und setzt dann mit der jeweils nächsten physikalisch übergeordneten Instanz fort.

Bei der Erstellung durch eine Kette, werden bevorzugt existierende übergeordnete Instanzen wiederverwendet, sofern diese und deren physikalisch übergeordneten Instanzen die Anforderungen der Kette erfüllen. Das Gerät selbst wird allerdings in jedem Falle neu erstellt.

Variante 3: Mehrere mögliche Konfigurationen

Als letzte Möglichkeit können mehrere Konfigurationen zur Auswahl gestellt werden. Hierbei wird create als Objekt mit Schlüssel/Wert-Paaren erstellt, wobei jeder Wert wieder einer Konfiguration wie in Variante 1 oder Variante 2 beschrieben entspricht. Soll bei dieser Darstellung eine Instanz erstellt werden, so wird dem Benutzer eine Auswahl der Bezeichnungen vorgegeben. Die Instanz wird mit den Einstellungen des ausgewählten Elements erstellt. Hierbei können die Schlüssel "moduleID" und "configuration" nicht verwendet werden.

Farben in der Konfigurationsliste

Was die einzelnen Farben bei Meldungen und im Konfigurator bedeuten kann unter den Farbcodes für Meldungen und Konfiguratoren nachgelesen werden. Vom Element werden diese Informationen folgendermaßen dargestellt:

Farbe Bedingung
grün instanceID ist 0, create ist definiert
rot instanceID ist nicht 0, create ist nicht definiert oder die definierte instanceID existiert nicht
grau Die Instanz mit der ID instanceID ist nicht konfiguriert wie von create vorgegeben. Stellt create eine Kette dar, so wird die Zeile auch als grau dargestellt, falls ein physikalisches Elternteil anders als in der Kette definiert konfiguriert ist
weiß instanceID ist 0, create ist nicht definiert (Kategorie)
weiß Die Instanz mit der ID instanceID ist konfiguriert wie von create vorgegeben. Stellt create eine Kette dar, so wird die Zeile nur dann als weiß dargestellt, wenn alle physikalischen Elternteile wie in der Kette definiert konfiguriert sind

Beispiel

{
    "type": "Configurator",
    "name": "Configuration",
    "caption": "Configuration",
    "delete": true,
    "values": [
        {
            "id": 1,
            "name": "Kategorie",
            "address": ""
        },{
            "parent": 1,
            "name": "Rechenmodul - Minimum",
            "address": "2",
            "create": {
                "moduleID": "{A7B0B43B-BEB0-4452-B55E-CD8A9A56B052}",
                "configuration": {
                    "Calculation": 2,
                    "Variables": "[]"
                }
            }
        },{
            "parent": 1,
            "name": "Rechenmodul im Wohnzimmer",
            "address": "2",
            "create": {
                "moduleID": "{A7B0B43B-BEB0-4452-B55E-CD8A9A56B052}",
                "configuration": {
                    "Calculation": 2,
                    "Variables": "[]"
                },
                "location": [
                    "Erdgeschoss",
                    "Wohnzimmer"
                ]
            }
        },{
            "parent": 1,
            "instanceID": 53398,
            "name": "Fehlerhafte Instanz",
            "address": "4"
        },{
            "parent": 1,
            "name": "Rechenmodul - Auswahl",
            "address": "2",
            "create": {
                "Maximum": {
                    "moduleID": "{A7B0B43B-BEB0-4452-B55E-CD8A9A56B052}",
                    "configuration": {
                        "Calculation": 3,
                        "Variables": "[]"
                    }
                },
                "Average": {
                    "moduleID": "{A7B0B43B-BEB0-4452-B55E-CD8A9A56B052}",
                    "configuration": {
                        "Calculation": 4,
                        "Variables": "[]"
                    }
                }
            }
        }, {
            "parent": 1,
            "name": "OZW772 IP-Interface",
            "address": "00:A0:03:FD:14:BB",
            "create": [
                { 
                    "moduleID": "{33765ABB-CFA5-40AA-89C0-A7CEA89CFE7A}",
                    "configuration": {}
                },
                {
                    "moduleID": "{1C902193-B044-43B8-9433-419F09C641B8}",
                    "configuration": {
                        "GatewayMode":1
                    }
                },
                {
                    "moduleID": "{82347F20-F541-41E1-AC5B-A636FD3AE2D8}",
                    "configuration": {
                        "Host":"172.17.31.95",
                        "Port":3671,
                        "Open":true
                    }
                }
            ]
        }
    ]
}