Konfigurator gibt keine Ausgabe.

Moin allerseits,

egal was ich mache die liste des Configurators bleibt leer.
Habe folgendes bereits Probiert:

  1. Eure Beispiel direkt ins Formular Integriert.
  2. Versucht die Values mittels RegisterPropertyString zu schreiben.
  3. Values mittels IPS_SetProperty und IPS_ApplyChanges beschrieben.

Mach ich irgendwas Falsch, oder funktioniert der Configurator derzeit nicht?

Hier die form.json:

{
    "elements":
    [
        { "type": "ValidationTextBox", "name": "IPAddress", "caption": "Host" },
        { "type": "NumberSpinner", "name": "Port", "caption": "Port" },
        { "type": "NumberSpinner", "name": "WSPort", "caption": "Websocket-Port" },
        { "type": "IntervalBox", "name": "Interval", "caption": "Sek" },
        { "type": "ValidationTextBox", "name": "APIKey", "caption": "API Key" },
        {
            "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
                            }
                        }
                    ]
                }
            ]
        }
    ],
    "actions":
    [

        { "type": "Button", "label": "Konfiguration holen", "onClick": "deCONZ_GETConfiguration($id);" },
        { "type": "Button", "label": "Nur API-Key holen", "onClick": "deCONZ_GETAPIKey($id);" },
        { "type": "Button", "label": "Geräteliste aktualisieren", "onClick": "echo deCONZ_UpdateDevices($id);" }
    ],
    "status":
    [
        { "code": 102, "icon": "active", "caption": "Connection Success!" },
        { "code": 201, "icon": "error", "caption": "Abrufen der Daten fehlgeschalgen! Weitere Infos in den Debug Logs!" },
        { "code": 202, "icon": "error", "caption": "App verbinden Schaltfläche ist nicht aktive! Gehe in dein Webinterface und aktiviere \"App Verbinden\" unter Gateway => Erweitert" },
        { "code": 203, "icon": "error", "caption": "Führe bitte zuerst \"Konfiguration holen\"" }
    ]
}

Gruß: Swen

Der Configurator ist ein Element des Action-Bereich und hat entsprechend kein Property.
Du musst den Inhalt von values in der Methode GetConfigurationForm befüllen und die Form dort als String zurückgeben.
Diese Methode ruft die Konsole auch auf, sobald du auf den aktualisieren Button klickst. Entsprechend braucht es auch keine zusätzliche Buttons.
Michael

Hey danke für die Info, das setz ich dann mal so um :smiley:

Ok der Configurator ist jetzt bei den Actions drin, die Seite wird mit GetConfigurationForm() erstellt.
Aber der Configurator bleibt immer noch leer, ich habe das Beispiel aus der Doku zum testen genommen.
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/configurator/

Swen

Das sieht so aus, als wenn der Konfigurator einfach eine Höhe von 0 hat, da kein Platz mehr für ihn übrig ist. Versuche mal den Parameter rowCount auf eine Zahl größer als 1 zu setzen. Unabhängig davon sollte ich wohl mal eine Mindestgröße einbauen.

Jup danke daran lag es, bitte ändern und gegebenenfalls erst einmal im Wiki eintragen das nicht der nächste den gleichen Fehler wie ich mache.

Den Parameter sollte man in der Form weglassen, wenn man ihn nicht zwingend braucht.
Vorteil ist ja dass der Konfigurator dann automatisch skaliert.
Michael

Macht er eben bei mir nicht, dann zeigt er nämlich Garnichts mehr an. Ist also wahrscheinlich ein Bug.:smiley:

Swen

Wie?
In letzter Zeit nicht mehr getestet, aber ich habe nur ein Modul wo ich das Feld nutze.
Sonst lasse ich das Feld einfach weg :eek:
Edit:
Achso, deine anderen Elemente belegen den ganzen Platz.
Da ist das ExpansionPanel oder auch das Pop-up ziemlich genial.
Zum Beispiel um Zugangsdaten im Pop-up abzufragen.
Michael

Ja mann könnt ja bei nicht Eingabe eine Größe von 5 Zeilen definieren, wenn er feststellt das kein platz mehr da ist.
Ist halt sonst nicht so einfach den Fehler zu finden

So nutze nochmal dieses Post.

Erstellen des Konfigurators funktioniert soweit gut, wenn ich nun mit diesen eine Instance erstelle wird auch die InstanceID angezeigt, aber leider nur solange ich nicht aktualisiere. Wie bekomme ich es hin das die Daten gespeichert werden, oder wie bekomme ich die InstanceID´s ausgelesen.

Gruß: Swen

Die werden nicht gespeichert, ist ja keine Eigenschaft.
Die musst du selber ermitteln und entweder als 0 (also nicht in IPS vorhanden) oder mit der korrekten InstanceId übergeben.
Ist natürlich Aufwand. Wie man es genau umsetzt, ist stark davon abhängig wie deine Module und eventuell der Datenfluss aufgebaut ist.
Ich habe z.b. Module da hole ich mir alle IDs aller Instanzen mit der GUID XYZ, Filter die raus welche am Splitter des Konfigurator hängen und habe somit alle IDs.
Die Zuordnung der möglichen Instanzen und der vorhandenen Instanzen erfolgt dann anhand der Einstellung für das Create.

Michael

Ok hab ich mir schon gedacht.
Na dann werde ich es wohl mit IPS_GetInstanceListByModuleID umsetzen müssen.

Swen