Was können wir verbessern?

Dokumentation

Konfigurationsformulare

Benötigt: IP-Symcon >= 4.0

Die Konfigurationsformulare sind JSON Dateien, welche zur Konfiguration der Eigenschaften von IP-Symcon Instanzen genutzt werden. Diese werden normalerweise von der Verwaltungskonsole geladen und entsprechend angezeigt.

Die JSON-Datei, welche das Konfigurationsformular beschreibt, besitzt bis zu zwei Bereiche die unabhängig voneinander individuell beschrieben werden können.

Eine Übersetzung der "caption" und "label" kann über die Lokalisierungen via der locale.json hinzugefügt werden.

Formularbereiche

Übersicht

elements
Im "elements"-Bereich definierte Formularfelder können die Eigenschaften einer Instanz setzen. Der Name eines Formularfeldes, sofern verfügbar, entspricht dem Namen der Eigenschaft, welche über IPS_SetProperty gesetzt wird. Soll der "elements" Bereich nicht sichtbar sein, so ist dieser nicht zu definieren.

actions
Der "actions"-Bereich ist eine sogenannte Testumgebung. Die hier definierten Formularfelder haben nicht die Möglichkeit Eigenschaften der jeweiligen Instanz zu verändern. Soll der "actions" Bereich nicht sichtbar sein, so ist dieser nicht zu definieren. Generell gilt: Die Testumgebung kann nur genutzt werden, wenn Veränderungen im Elemente-Bereich übernommen wurden. Dadurch wird verhindert, das nicht übernommene Einstellungen getestet werden.

status
Der "status"-Bereich definiert mögliche Statusmeldungen. Im "status"-Bereich sind keine Formularfelder erlaubt, sondern nur Statusmeldungen, welche unter Statusmeldung erklärt werden. Soll das Modul keine Statusmeldungen anzeigen, so ist dieser Bereich nicht zu definieren.

Übersicht der einfügbaren Formularfelder

Formularfeld / Type ab IP-Symcon Beschreibung
Button 4.0 Button
CheckBox 4.0 Checkbox
Configurator 5.0 Beschreibt einen Konfigurator
ExpansionPanel 5.0 Auf- und zuklappbare Formularfelder
HorizontalSlider 4.0 Ein horizontaler Schieberegler
Image 5.0 Erstellt ein Bild auf der Modulseite
IntervalBox 4.0 Angabe von Zahlen mit Textbeschreibung/Einheit (veraltet)
Label 4.0 Eine Beschriftung
List 4.2 Eine editierbare Liste
NumberSpinner 4.0 Eingabefeld, bei dem nur Zahlen erlaubt sind. (optional mit Nachkommastellen)
PasswordTextBox 4.0 Eingabefeld für Passwörter
PopupAlert 5.0 Alarm, welcher ein Popup sofort öffnet
PopupButton 5.0 Button, welcher ein Popup öffnet
RowLayout 5.0 Zeilenansicht von mehreren Formularfeldern
Select 4.0 DropDown-Menü
SelectCategory 4.0 Auswahldialog für eine Kategorie
SelectColor 4.2 Auswahldialog für eine Farbe
SelectDate 5.0 Auswahldialog für ein Datum
SelectDateTime 5.0 Auswahldialog für ein Datum und Uhrzeit
SelectEvent 4.0 Auswahldialog für ein Ereignis
SelectFile 4.2 Auswahldialog für eine Datei
SelectInstance 4.0 Auswahldialog für eine Instanz
SelectLink 4.0 Auswahldialog für einen Link
SelectMedia 4.0 Auswahldialog für eine Media-Datei
SelectObject 4.0 Auswahldialog für ein Objekt
SelectScript 4.0 Auswahldialog für ein Skript
SelectTime 5.0 Auswahldialog für eine Uhrzeit
SelectVariable 4.0 Auswahldialog für eine Variable
Tree 5.0 Erstellt einen Baum
ValidationTextBox 4.0 Eingabefeld für Text

Beispiele

Grundaufbau der JSON Datei

{
    "elements":
    [
        ... //Hier Formularfelder einfügen
    ],
    "actions":
    [
        ... //Hier Formularfelder einfügen
    ],
    "status":
    [
        ... //Hier Statusmeldungen einfügen
    ]
}


Vollständiges Beispiel anhand eines SMS Moduls

{
    "elements":
    [
        { "type": "ValidationTextBox", "name": "Username", "caption": "Username" },
        { "type": "ValidationTextBox", "name": "Password", "caption": "Password" },
        { "type": "NumberSpinner", "name": "APIID", "caption": "APIID" },
        { "type": "ValidationTextBox", "name": "Sender", "caption": "Sender" },
        { "type": "Select", "name": "SMSType", "caption": "Type",
            "options": [
                { "label": "SMS", "value": 0 },
                { "label": "Combi-SMS", "value": 1 },
                { "label": "MMS", "value": 2 }
        ]}
    ],
    "actions":
    [
        { "type": "ValidationTextBox", "name": "Number", "caption": "Number" },
        { "type": "ValidationTextBox", "name": "Message", "caption": "Message" },
        { "type": "Button", "label": "Send Message", "onClick": "SMS_Send($id, $Number, $Message);" },
        { "type": "Button", "label": "Read Balance", "onClick": "echo 'Balance: '.sprintf('%.2f', SMS_RequestBalance($id)).' credits';" }
    ],
    "status":
    [
        { "code": 102, "icon": "active", "caption": "Login information valid" },
        { "code": 201, "icon": "error", "caption": "Authentication failed" },
        { "code": 202, "icon": "error", "caption": "No credits left" }
    ]
}