FHEM - Entwicklung > FHEM Development

set Befehle mit mehreren (vordefinierten) Argumenten?

(1/1)

Adimarantis:
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

--- Code: ---Option:multiple:suboption1,suboption2,suboption3:TextField
--- Ende Code ---
Sollte 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

rudolfkoenig:
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.
--- Ende Zitat ---

Die Definition:

--- Code: ---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

--- Ende Code ---
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.

Adimarantis:
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

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln