ESPEasy - userSetCmds Verständnisproblem

Begonnen von wk, 12 Februar 2019, 14:43:26

Vorheriges Thema - Nächstes Thema

wk

Auch nach stundenlangem Suchen in Wiki und commandref bin ich nicht in der Lage aus den wenigen Beispielen mir einen funktionierenden Befehl zu basteln.

Ich möchte erreichen, dass der funktionierende Befehl: set We_Ez event HzAn durch den Befehl set We_Ez an ersetzt wird.

Versuche wie:
attr We_Ez userSetCmds ( an => {url => "/control?cmd=event HzAn"} )
und viele andere Schreibweisen führen zu Fehlermeldungen oder gar keiner Reaktion.

Die Suchfunktion in fhem gibt nicht viele Treffer über userSetCmds.

KernSani

Hi,

da das ziemlich ESPEasy-spezifisch ist, vielleicht in das entsprechende Unterforum (Bastelecke/ESP8266) verschieben (Button ganz unten links).

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

riker1

#2
Hallo

ich denke eher das ist ein reines Fhem Thema eventmap oder so
versuch mal

attrib <device> eventmap  /event HzAn:neuer_befehl/

dann eventuell noch ein WebCMD dazu <neuer_Befehl>
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

dev0

eventMap kann das vmtl. auch, aber die korrekte userSetCmds Syntax wäre:
attr We_Ez userSetCmds ( an => {url => "/control?cmd=event,HzAn"} )

Im Log sieht man dann auch:

2019.02.15 11:54:27.405 3: ESPEasy We_Ez: set em1 an
2019.02.15 11:54:27.406 4: ESPEasy bridge: httpReq device:em1 ident:em1 timeout:10 url:http://<ip>:80/control?cmd=event,HzAnan


Wie man sieht, ist da ein "an" zu viel hinten an der aufgerufenen URL. Ich schaue mir das bei Gelegenheit an und fixe es falls nötig, jetzt gerade geht es nicht.

wk

Danke dev0.

Dann habe ich ja eigentlich schon richtig gelegen, aber durch das angehängte 'an' kommt halt die Fehlermeldung:

ESPEasy Wemos: http://<ip>:80/control?cmd=event HzAnan: empty answer received [set We_Ez an]

dev0

Bisher war es so, dass das ein neu definierter <FHEM cmd> identisch mit dem <ESP Easy cmd> sein mußte und auch so an den ESP übertragen wurde. Nun gibt es die Möglichkeit den hash key "args" auf "-1" zu setzen: dann wird der <FHEM Befehl> nicht mehr an den ESP gesendet. Dafür muß/sollte dann der hash key "url" den <ESP Easy cmd> beinhalten. Optionale Argumenmte werden weiterhin mit Kommatas angehängt.


fhem#> attr We_Ez userSetCmds ( an => {url => "/control?cmd=event,HzAn", args => -1} )
fhem#> set We_Ez an

2019.02.16 10:09:08.790 3: ESPEasy We_Ez: set We_Ez an
2019.02.16 10:09:08.790 4: ESPEasy bridge: httpReq device:We_Ez ident:We_Ez timeout:10 url:http://<ip>:80/control?cmd=event,HzAn


Via Update morgen ab 8 oder jetzt aus dem svn. Bitte testen.

wk

Nach dem update habe ich es jetzt getestet.

Das doppelte 'an' ist verschwunden, so dass jetzt alles wie vorgesehen funktioniert.

Vielen Dank dev0

dev0

Zitat von: wk am 17 Februar 2019, 11:45:22
Das doppelte 'an' ist verschwunden, so dass jetzt alles wie vorgesehen funktioniert.
Vorgesehen war dieser Fall bisher nicht,  aber ich empfinde es als sinnvoll und habe es eingebaut. ;)
Ob meine Beschreibung in der command ref dazu leicht genug verständlich ist, kann ich nur erahnen. Wenn es jemand kurz und knapp besser beschreiben kann, dann bitte hier melden.