Gibt es im Konfigurations-Formular ein "SelectProfile"-Element?

Hallo,
ich baue aktuell ein Modul, in welchem der Benutzer im Konfigurations-Formular unter anderem auch das Profil für eine Variable selber bestimmen soll…

Nun gibt es ja verschiedene Select-Elemente für das Formular (Select, SelectCategory, SelectColor, usw.).

Leider scheint es hier aber keines für eine Profil-Auswahl zu geben, welches dann den Profil-Manager öffnet (so wie beim Bearbeiten einer Variable). Habe ich das einfach übersehen oder gibt es das aktuell wirklich nicht?

Wie könnte ich sowas einbauen?
Danke für eure Hilfe.

Gar nicht.
Der User kann ein eigenen Profil bei der Variable zuweisen, so wie sonst auch.
Du kannst eines vorgeben, aber der User kann es jederzeit selber ändern.
In der Konfiguration einer Instanz hat das nichts zu suchen.
Michael

Was soll denn um Schluss das Ziel des Moduls sein? Grundsätzlich kann ein User immer Variablenprofile selber einstellen, das ist so gewollt. Was Du als Möglichkeiten hast ist es dem Nutzer z.B. unterschiedliche Variablen anzubieten, die der Nutzer im Konfigurationsformular mit einem Switch Button aktivieren / deaktivieren kann. Dann würde das Modul jeweils eine Variable anlegen bzw. auf Wunsch des Nutzers auch löschen. Jeder Variable die von einem Modul angelegt wird kannst Du mit dem Modul ein individuelles Variablenprofil mitgeben inclusiv Icon. Sollte es sich um komplexere Visualisierung handeln, die sich nicht mit einem Variablenprofil lösen lassen, hast Du auch die Möglichkeit dem Nutzer eine String Variable anzubieten mit Profil ~HTMLBox. Den Inhalt der Variable und damit auch das Layout, kann dann ja vom Modul vorgegeben werden. Es würde vielleicht helfen besser zu verstehen was das genaue Ziel des Moduls sein soll um mögliche Lösungen aufzuzeigen, die mit einem Modul vereinbar sind. Daher müsstet Du vielleicht den Einsatzzweck des Moduls nochmal genauer beschreiben.
Das Variablenprofil ist in sofern vom Modul selber beeinflussbar das beim Anlegen des Variablenprofils z.B. Translate benutzt werden kann um die Variable, je nach eingestellter Sprache, unterschiedlich darzustellen.

Ansonsten bliebe höchstens die Möglichkeit eben im Konfigurationsformular ein SelectVariable zu nutzten, mit dem der Nutzer für die Variable über ein zusätzliches normales Select Feld ein Variablenprofil aus der Auswahl bestimmen kann das er der Variable zuweisen will.

Individuelle Variablenprofile müssen immer mit dem Modul selber mitgegeben bzw. erstellt werden, da man ja nicht weis was sonst noch so vom User genutzt wird. Wenn eine Auswahl stattfinden soll könnten das also nur bereits von IP-Symcon vordefinierte Variablenprofile sein oder eben Variablenprofile, die vom Modul selber angelegt werden.

Ohne zu verstehen was das genau Ziel des Moduls sein soll, wird man Dir da aber nicht genau weiterhelfen können.

Danke für eure Feedbacks. Ich versuche etwas weiter auszuholen…
Das Modul soll eine „erweiterte“ ModBus-Instanz werden, welches es auch erlaubt Strings und mehrere Werte „gleichzeitig“ (natürlich werden diese nacheinander ausgelesen, sollen aber als Variablen in einer Instanz angezeigt werden) via ModBus auszulesen. Man müsste dann nicht für x Adressen jeweils eine separate Instanz anlegen, sondern eine einzelne Instanz mit x Werten.

In einem Listen-Element soll der Benutzer nun seine ModBus-Variablen hinzufügen können. Pro Listen-Eintrag kann er dann jeweils den Namen, die Adresse, die Funktion, usw. sowie eben auch das gewünschte Variablen-Profil für den jeweiligen Eintrag definieren können.

Beim ApplyChanges werden dann die jeweiligen Variablen erstellt (falls nicht bereits vorhanden) oder entsprechend angepasst und anschliessend mittels Timer ausgelesen. Bisher frage ich das Profil einfach mit einem ValidationTextBox-Element als reinen Text ab. Dies hat aber den Nachteil, dass der User die Variablen-Profile „auswendig“ kennen muss und zwingend auch vorher anlegen muss, falls er ein neues haben will. Falls er sich vertippt, gibt es beim Erstellen der Variable natürlich einen Fehler, da das Profil nicht vorhanden ist.

Alternativ könnte ich wohl ein Select machen und dort einfach alle verfügbaren Profile auflisten lassen. Dies hat aber den Nachteil, dass ich ja im Voraus den DatenTyp der Variable nicht kenne und so ev. „falsche“ Profile ausgewählt würden.

Wenn man da nun direkt den Profil-Manager einbinden könnte, wäre das natürlich viel eleganter.

By the way - aktuell studiere ich gerade noch, wie ich es regeln soll, wenn die Variable neu erstellt werden muss, falls der User den DatenTyp der Variable ändert. In diesem Fall müsste die Variable ja gelöscht und wieder neu erstellt werden, was zur Folge hat, dass sich die ID ändert (den Ident könnte ich ja übernehmen) und allenfalls Archivierte Werte verloren gehen. Gibt es hier eine Möglichkeit den User mit einem PopUp zu Fragen ob er das wirklich will, bevor man die Variable ändert. Falls er nicht will, müsste man dann die Änderung in den ModulProperties irgendwie rückgängig machen. Habt ihr da auch eine Idee?

Meinst du so? Also in Bezug auf ModBus mit einer Liste von Variablen?
IPSBGETech/BGETechModule.php at 265fa2e784adcac7388d1dff1f0fc8b842777a6c · Nall-chan/IPSBGETech · GitHub
Hier ist das etwas einfacher, da ich den Typ kenne, gebe ich ein Default Profil vor.
Der User kann natürlich ein eigenes in der Variable eintragen.
Wenn du also nicht weißt was da für Daten kommen, lass das Profil einfach weg.
Das mit dem löschen ist hier aktuell auch so, dass wenn man eine Adresse abwählt, die Variable einfach gelöscht wird.
Man könnte aber eine Warnmeldung anzeigen, bevor der User die Instanz konfiguriert.
PopupAlert — IP-Symcon :: Automatisierungssoftware
Nach dem Übernehmen geht das nicht, dann sind die Werte der Eigenschaften schon gespeichert.
Michael

Ja, genau sowas - einfach mit dem Unterschied, dass ich nicht weiss was der User dann für Datentypen / Adressen abfragen wird.

Ich werde es dann wohl einfach ohne Profile machen (oben ein Label mit dem Hinweis, dass das Profil in der Variable geändert werden kann). Die PopUp-Nachricht wegen dem Löschen der Variabeln ist auch gut. Habe ich nun mittels PopUp-Alert eingebaut.

Vielen Dank für eure Tipps :slight_smile:

Finden wir nicht schlecht die Idee. Sicherlich könnte man dafür Anwendung finden. Werden wir in Zukunft einbauen. Ich kann dir aber nicht sagen wann.

paresy