Autor Thema: set Befehle mit mehreren (vordefinierten) Argumenten?  (Gelesen 1459 mal)

Offline Adimarantis

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 804
set Befehle mit mehreren (vordefinierten) Argumenten?
« am: 04 April 2022, 21:18:04 »
Hallo,

meine "set" Liste fängt langsam an unübersichtlich zu werden.
Da man die Liste weder selbst Sortieren, Gruppieren oder mit Trennern versehen kann, hatte ich jetzt die Idee, ob man sie nicht zweistufig machen kann.
Also sowas wie
Option:multiple:suboption1,suboption2,suboption3:TextFieldSollte in einem Pulldown mit 3 Unteroptionen und einem weiteren Textfeld resultieren. Die gewählte Unteroption wird einfach dem Textfeld mit Leerzeichen getrennt vorangestellt übergeben.

Motivation:
Ich habe mehrere Set Befehle die sich auf groups oder auf contacts beziehen.
Statt ein Durcheinander mit "addContact addGroup joinGroup removeContact" usw. gäbe es nur ein "set group" und ein "set contact" und im zweiten Argument dann "add, remove, join..."
Man müsste dann zwar zweimal Klicken, würde die Optionen aber schneller finden (bei mehr als 10 Einträgen wirds schon langsam recht unübersichtlich).
 
Alternativ könnte eine vom Modulprogrammierer vorgegebene Sortierung mit Trennlinien (oder Unterpunkten wie bei den Attributen) ebenfalls helfen. (Die Diskussion hatten wir aber schon mal)

Natürlich könnte man jetzt auch die Namen umdrehen (contactAdd, groupAdd, groupRemove) - finde ich aber nicht sehr intuitiv und führt bereits bei manchen Modulen dazu, dass Befehle mit vorangestelltem "_" implementiert wurden, damit sie an erster Stelle stehen.

Ideen?

Gruß.
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25832
Antw:set Befehle mit mehreren (vordefinierten) Argumenten?
« Antwort #1 am: 05 April 2022, 16:39:35 »
Ich habe ein "widgetList" Widget gebaut:
Zitat
widgetList,... - show a list of widgets. The arguments are concatenated, and separated be the length of the following argument list.
Example: widgetList,3,select,opt1,opt2,1,textField
Note: the values will be sent as a comma separated list, and only preloaded widgets can be referenced.

Die Definition:
define d dummy
attr d readingList many
attr d setList an:1,2,3 aus:noArg many:widgetList,3,select,opt1,opt2,1,textField
attr d webCmd many
schaut wie angehängt aus.

Wermutstropfen: das Ausfuehren des Befehls ist equivalent zu "set d many opt1,TestMe", d.h. die Argumente werden durch Komma getrennt.

Offline Adimarantis

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 804
Antw:set Befehle mit mehreren (vordefinierten) Argumenten?
« Antwort #2 am: 05 April 2022, 19:34:04 »
Das schaut doch ganz vielversprechend aus.
Werde damit ein wenig rumprobieren.
Das Komma muss ich halt "wegparsen", so dass das Modul auf mit und ohne reagiert (sonst ist es bei direkter Nutzung der Befehle aus FHEM etwas ungewohnt)

Danke
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

 

decade-submarginal