Dokumentation
Configurator
Benötigt: IP-Symcon >= 5.0
Beschreibt das Aussehen und Funktionalität eines Konfigurators.
Allgemeine Parameter
Parameter | Beschreibung |
---|---|
caption (optional) | Sichtbare Beschriftung der Konfigurationsliste |
columns (optional) | (default: Spalten für Adresse ("address") und Name ("name") ) Spalten der Konfigurationsliste |
discoveryInterval (optional) | (default: 0) Macht die Konsole für die Gerätesuche eine Anfrage an das beinhaltende Konfigurationsformular, gibt dieser Parameter an, wie viele Sekunden vergangen sein müssen, bevor eine erneute Anfrage gestartet werden darf; Befinden sich innerhalb eines Konfigurationsformulares mehrere Elemente vom Typ Configurator, so wird der maximale Wert verwendet (ab IP-Symcon 6.3) |
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 |
name (optional) | Name der Konfigurationsliste |
onExpand (optional) | (default: "") Skript, welches nach der Ausklappen eines Eintrages des Konfigurators ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. In dieser Ausführung bietet der Baum als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den ausgeklappten Eintrag, siehe Ausgewählte Zeile als Variable in on-Aktionen. Ansonsten hat es die gleichen Eigenschaften wie onClick des Button (ab IP-Symcon 6.4) |
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. |
sort (optional) | Sortierung der Tabelle. Wird dies nicht gesetzt bleibt die Liste unsortiert |
type | Configurator |
values (optional) | Einträge der Form |
visible (optional) | (default: true) Bei true ist der Configurator sichtbar, ansonsten ist er unsichtbar (ab IP-Symcon 5.2) |
Sollen die Parameter columns, sort oder values per UpdateFormField verändert werden, so müssen die neuen Werte als JSON codiert werden.
Parameter für columns
Parameter | Beschreibung |
---|---|
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 |
quickFilter (optional) | (default: true) Bei true wird der Text dieser Spalte beim Schnellfilter in der Suche betrachtet. Sollte der Wert bei allen Spalten auf false gesetzt sein, so wird der Schnellfilter ausgeblendet. (ab IP-Symcon 7.2) |
visible (optional) | (default: true) Bei false wird die Spalte nicht angezeigt |
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. |
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 |
---|---|
address (optional) | (default: "") Wurden die Standardspalten verwendet, so kann mit diesem Pvarameter der Wert für die Adresse gesetzt werden |
create (optional) | (default: error) Vorgabe der Konfiguration der erstellten Instanz (Mehr Informationen) |
expanded (optional) | (default: false) Falls dieser Wert true ist, wird der Eintrag beim Laden des Konfigurationsformulares direkt ausgeklappt |
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 |
name (optional) | (default: "") Wurden die Standardspalten verwendet, so kann mit diesem Parameter der Wert für den Namen gesetzt werden |
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. |
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. |
info (optional) | (default: "") Die initiale Beschreibung der neu erstellten Instanz; wird eine bereits existierende Instanz verwendet, wird die Beschreibung nicht überschrieben. |
position (optional) | (default: 0) Die initiale Position der neu erstellten Instanz; wird eine bereits existierende Instanz verwendet, wird die Position nicht überschrieben. |
name (optional) | (default: Modulname oder Wert der Spalte "name") Der initiale Name der neu erstellten Instanz; wird eine bereits existierende Instanz verwendet, wird der Name nicht überschrieben. (ab IP-Symcon 5.5) |
noDiscovery (optional) | (default: false) Steht dieser Parameter auf true, so wird dieser Eintrag bei der Gerätesuche nicht als Gerät angezeigt und kann auch nicht als gelesen markiert werden. Bei einer Konfiguration als Kette ( Variante 2 ) wird der Wert des ersten Eintrags der Kette verwendet. Bei mehreren möglichen Konfigurationen (Variante 3 ) muss jede Konfiguration diesen Parameter auf true haben, damit die Auswahl nicht in der Gerätesuche auftaucht. (ab IP-Symcon 5.4) |
statusVariables (optional) | (default: {}) Dies Objekt gibt eine initiale Konfiguration der Statusvariablen vor. Für jeden Parameter dieses Statusvariablen-Objektes wird die Variable mit dem Ident des Parameternamens konfiguriert. Der dazugehörige Parameter ist ein weiteres Objekt, welches die Konfiguration der Variablen definiert. Die Variablenkonfiguration wird nach der Übernahme der Instanzkonfiguration angewandt. Variablen, die erst später erstellt werden, können hier nicht konfiguriert werden. (ab IP-Symcon 5.3) |
Parameter für Statusvariablen
Parameter | Beschreibung |
---|---|
name (optional) | (default: Vorgabe durch erstellte Instanz) Die Statusvariable wird auf diesen Wert umbenannt. Der Name wird durch die Lokalisierung des Konfigurators übersetzt. |
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 |
Das Formularfeld Configurator in der Gerätesuche verwenden
Die Konsole bietet erstellbare Instanzen zentral über die Gerätesuche an. Dies geschieht, indem bei Instanzen des Typs Konfigurator und Discovery regelmäßig GetConfigurationForm aufgerufen wird und der Parameter values bei Configurator-Feldern ausgewertet wird. Es werden nur Konfigurator- und Discovery-Instanzen in der Gerätesuche angezeigt, welche mindestens ein Configurator-Feld beinhalten. In diesem darf values auch leer sein. Soll die eigene Instanz bei der Gerätesuche betrachtet werden, so müssen daher folgende Bedingungen erfüllt sein:
- Die Instanz muss vom Typ Konfigurator oder Discovery sein
- Die Suche nach Geräten muss automatisch beim Ausführen von GetConfigurationForm gestartet werden. Dauert die Suche länger, so sollte in einer initialen Rückgabe values leer gelassen werden, nach abgeschlossener Suche müssen die erstellbaren Geräte aber in der Rückgabe von GetConfigurationForm enthalten sein
- Die Suche sollte bei wiederholtem Aufruf von GetConfigurationForm nicht erneut gestartet werden sollte, falls diese aktuell schon läuft
- Eine Beispielimplementation kann hier gefunden werden: SymconTest
Ausgewählte Zeile als Variable in on-Aktionen
Die Verwendung der Werte des Konfigurators in Skripten erfolgt analog zu Listen. Dort stehen sämtliche Werte zur Verfügung, inklusive expanded, instanceID und create. Dennoch speichert der Konfigurator keine Werte in einer Eigenschaft ab.
Beispiel
{ "type": "Configurator", "values": [{ "name": "Rechenmodul (Umbenannte Statusvariablen)", "address": "Adresse", "create": { "moduleID": "{A7B0B43B-BEB0-4452-B55E-CD8A9A56B052}", "configuration": {}, "statusVariables": { "Minimum": { "name": "Alternativer Name für Minimum" }, "Maximum": { "name": "Alternativer Name für Maximum" } } } }] })