fhem.pl/eventMap: FHEMWEB setter wird mit :noArg angezeigt

Begonnen von dev0, 17 September 2017, 10:19:42

Vorheriges Thema - Nächstes Thema

dev0

Wenn man zB. folgedes eventMap benutzt, dann werden die Befehle (on|off)-for-timer im Device Details Setter angezeigt. Aber sie werden mit dem Argument :noArg versehen. Das führt natürlich dazu, dass man beim FHEMWEB Setter keine Argumente angeben kann.

attr <dev> eventMap /longpulse 12 on:on-for-timer/longpulse 12 off:off-for-timer/


Ursache dafür ist in fhem.pl/ReplaceEventMap() die Zeile:

    $defs{$dev}{".eventMapCmd"} = join(" ", grep { !/ / }
                  map { $_ =~ s/.*?=//s; $_ =~ s/.*?://s; "$_:noArg" } @emList);

Lasst man das ":noArg" weg, dann wird die fehlende Auswahlbox in FHEMWEB angezeigt. Außerdem hat man dann die Möglichkeit eine Vorauswahl oder zB. "textField-long" im eventMap Attribut mitanzugeben.

Gibt es einen Grund für das ":noArg" oder könnte man das ggf. wegfallen lassen? Ein sehr kurzer Test hat gezeigt, dass es für diesen Anwendungsfall funktioniert. Auswirkungen auf andere Szenarien habe ich nicht getestet, deshalb auch kein Patchvorschlag.
Sollte das ":noArg" in einigen Fallen gewünscht sein, dann kann man es im eventMap Attribut mit angeben (getestet).

rudolfkoenig

#1
ZitatGibt es einen Grund für das ":noArg" oder könnte man das ggf. wegfallen lassen?
Ich habe das eingebaut, um den Texteditor fuer alle in der Raumuebersicht per cmdList spezifizierten eventMaps zu vermeiden.

Ich habe fhem.pl jetzt so modifiziert, dass alles beim alten bleibt, es sei denn man spezifiziert im eventMap explizit ein widget. Ich habe mit Folgendem getestet:
attr dummy eventMap on:start off:stop on2:startWithArg:textEdit off2:stopWithArg:time

Falls ich etwas uebersehen habe, bitte hier melden.

(edit: Typo gefixt)

dev0

Danke, funktioniert.
Fehlt nur noch die Dokumentation in der commandref/eventMap. Magst Du das anpassen oder soll ich mich an einer passenden Formulierung versuchen?

rudolfkoenig


dev0