Konfigurationsformulare - Typ: List --> auswahl als Standard setzen

Hallo,
ich bin gerade dabei ein Liste für ein Modul zu erstellen.
Das hinzufügen von Werten + auslesen über die module.php funktioniert schon ohne Problem wie in der Anleitung beschrieben:
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/list/

Ist es möglich eine Auswahl festzulegen?
z.B. habe ich drei Werte hinterlegt und ich möchte einen Wert der darin enthalten ist fest setzen bzw. sagen, benutze immer diesen einen Befehl zum schalten eine Aktors. d.h. Ich klicke einen Wert aus der Liste an und sage du bist jetzt mein Standardwert zum schalten innerhalb dieser Instanz.

Ich könnte das ganze mit dem Formular-Baustein „select“ umgehen, aber dann können nur die ausgewählten Befehle ausgewählt werden und kein weiterer Hinzugefügt werden, das möchte ich nicht. Select — IP-Symcon :: Automatisierungssoftware

Ich habe mir bereits ein paar andere Module angesehen konnte hier aber leider nichts finden.

Hintergrund ist der:
Ich entwickle ein Heizungsmodul das für verschiedene Aktoren funktionieren soll, daher muss ich auch immer den Befehl / Syntax mitgeben, wie dieser geschalten wird.

Musst du gar nicht.
Es gibt RequestAction welche unabhängig von der Instanz immer funktioniert.

Für Ansteuerungen von fremden Variablen bzw Instanzen lohnt sich ein Blick in das Alexa oder GoogleHome Modul.
Dort wird ja auch ‚alles‘, also unabhängig von der Hardware/Instanz angesteuert.
Michael

Das mit der Unabhängigkeit von RequestAction verstehe ich.

Ich muss ganz ehrlich sagend das Alexa Modul halte ich für ziemlich kompliziert für mich als nicht professioneller Programmierer.
Hast du vielleicht eine einfacheres Beispiel für mich oder einen Link zu dem Thema in der IP-Symcon Dokumentation?

Probier es erstmal mit RequestAction auf die Variable. Das sollte eigentlich reichen.
Michael

RequestAction funktioniert vom Prinzip her vergleichbar wie SetValue. Nur setzt du den Wert nicht einfach, du schaltest ihn, als würdest du diesen Wert im WebFront wählen.

Mit deiner Auswahl habe ich das nicht ganz verstanden. Möchtest du so etwas wie im Skin Control? Also die Auswahl eines einzelnen Listenelements und das Abspeichern von diesem?

Außerdem hast du scheinbar nicht in allen Spalten die width gesetzt, deswegen kleben die Bedienfelder auch so komisch rechts am Text. Hier sollte ich vielleicht mal eine Fehlermeldung einbauen.

@Nall-Chan:
Mit Request-Action kann ich somit den Schaltvorgang abgreifen bzw ausführen, aber ich kann hiermit doch nicht meine Auswahl bzw. den Inhalt des Konfiguration-Formulars der Instanz auslesen, oder nicht?

@Dr. Niels:
Ich möchte mir quasi einen Liste anlegen mit verschiedenen Schaltbefehlen für verschiedene Schaltaktoren.

Hintergrund:
Es soll ein universelles Heizungsmodul werden, mit dem ich verschiedene Aktoren mit verschiedenen Befehlen ansteuern kann.
z.B. habe ich einmal ein Homematic Heizungsventil zum ansteuern und ein andermal einen Z-Wave Aktor.
Hierbei muss ich dann bei Erstellung einer Instanz auswählen was für ein Gerät ich ansteuern möchte.
Ich möchte die Auswahl eines hinterlegten Listenelements, in meinem Fall eine Auswahl verschiedener Syntax-Vorlagen zum ausführen von Schaltbefehlen.

Konnte ich es verdeutlichen was ich meine bzw. machen möchte? Vielleicht gehe ich das ganze auch falsch an und du hast eine besseren Lösungsansatz für mich?

Wenn ich mir die Formularoption „list“ gerade nochmal so anschaue dann ist das gar nicht für sowas gedacht, oder?
Da ich hier keines der hinterlegten Optionen als „Standard“ definieren kann, sprich welchen Befehle aus der Liste er zum schalten verwenden soll.

Das mit der Breite ist noch ein Schönheitsfehler, da schau ich mir den Width-Wert nochmal an bzw. füge ihn ein. :slight_smile:

Der Lösungsansatz ist, dass du gar keine Schaltbefehle konfigurieren musst.
Du steuerst die Geräte nicht per Instanz-Funktion sondern die Variable per RequestAction an.
Michael

Genau wie Nall-Chan geschrieben hat, du möchtest hier keine gerätespezifische Konfiguration. Das muss durch RequestAction auch nicht sein. Lasse den Benutzer beispielsweise den Sollwert der Heizung auswählen. Dann ist es dir egal, ob dies von Z-Wave, KNX oder Homematic kommt. Per RequestAction(<VariablenID>, 42); kannst du dann den Sollwert übertrieben hoch einstellen.

Hallo ihr beiden,
entschuldigt meine verspätete Rückmeldung.

Okay, das mit dem setzen via RequestAction habe ich Verstanden das bekomme ich hin.
Aber ich glaub ich habe noch einen Denkfehler drinnen.

Beispiel:
Benutzer setzt z.B. 42 Grad über das Webfrontend was dann per RequestAction ausgewertet / gesetzt wird.
Im Nachgang muss jetzt aber irgendwo stehen, mit welchem Befehl diese 42 Grad an das Thermostat gesendet wird.
Somit je nach angesteuertes Device z.B. ob ZWave oder Homematic unterscheidet sich der Befehl.

Oder andersrum gefragt: Wo hinterlegt ich dann den Befehl bzw. wie weiß das Modul wie das Thermostat / der Aktor angesteuert wird, mit welchem Befehl?

Es gibt auch außerhalb der Module den normalen RequestAction Befehl!
Du musst die Hardware nicht wissen, und auch gar keine Instanz-Funktion aufrufen.

Das hier geht in jedem Script:
https://www.symcon.de/service/dokumentation/befehlsreferenz/variablenzugriff/requestaction/
Michael