Hauptmenü

ESPEasy mit NodeMCU in FHEM

Begonnen von spiesbraten, 21 April 2019, 19:19:13

Vorheriges Thema - Nächstes Thema

spiesbraten

Hallo,

ich habe eine Frage, die eventuell nicht direkt das ESPEasy betrifft. Ich habe das ESPEasy in FHEM eingebunden und kann so eine Lampe mit dem PWM Befehl über GPIO 12 dimmen. nun wollte ich dies in FHEM über einen Slider lösen, aber weder setList noch pct noch state funktionieren. Ich habe auch noch nicht soviel Ahnung wie EventMap richtig funktioniert. Dort habe ich

eventMap

/pwm 12 0:off/pwm 12 1023:on/


stehen und in webCMD steht

webCmd

pwm 12 1023:pwm 12 0
.

Die Buttons die oben angezeigt werden funktionieren dann auch, ich kann nur nicht dimmen. Ich bin für jede Hilfe dankbar, die mir da eine Art Slider hinzaubert  :)

dev0

Ich würde es ohne eventMap umsetzen und die Befehle on, off und dim definieren.

attr <DEIN_ESP_DEV> userSetCmds (\
on             => { url=>"/control?cmd=pwm,13,1023", args => -1},\
off            => { url=>"/control?cmd=pwm,13,0", args => -1},\
dim            => { url=>"/control?cmd=pwm,13", args => -1, widget => "slider,0,1,1023"}\
)
attr <DEIN_ESP_DEV> webCmd on:off:dim


Dann "versteht" das Device die Befehle on, off und dim und zeigt sie im DeviceOverview auch an.

spiesbraten

Ah sehr gut, vielen Dank, funktioniert super :)

stefanru

#3
Hi,

ich würde hier gern nochmal nachfragen.
Das userSetCmds funktioniert wunderbar und ich kann den Slider auf den gewünschten Wert stellen.
Dieser kommt auch am ESP an.

Der Slider steht nur leider danach wieder auf 0. Was müsste ich tun um auch den gesetzen Wert im slider dargestellt zu bekommen?
Muss state den Wert bekommen den der Slider dann haben soll?


Gruß und Danke,
Stefan

dev0

Zitat von: stefanru am 22 Januar 2020, 20:51:15
Was müsste ich tun um auch den gesetzen Wert im slider dargestellt zu bekommen?
Die ESP Easy Firmware Entwickler motivieren, die internen Befehle pwm, status, etc. so zu implementieren, dass sie die Rückmeldung via Controller Plugin schicken. Vor ca. 1 Jahr gab es diese Erweiterung schon einmal, wurde aber wohl wegen Nebenwirkungen wieder zurückgezogen. Den aktuellen Stand der Entwicklung kenne ich nicht.

In dem Beispiel oben würde ein Reading dim benötigt, dass den entsprechenden Wert enthält. Vermutlich könnte man sich das via Attribute parseCmdResponse und einem userReading basteln. Ist aber nicht sauber...

stefanru

Ok, danke.

Ich habe das nun über ein Dummy Reading "dim" im ESP und entsprechenden Rules gelöst.

Funktioniert 1A.

Danke.

Mkloeffer

Hi,

kannst du deine Lösung hier mal posten? Ich schraube da auch dran rum, bekomme aber das dummy reading nicht aus FHEM raus gesetzt... Vielleicht hilft deine Lösung ja auch anderen :-)

Vielen Dank,
Michael

stefanru

Ok ja klar.

In FHEM am Device habe ich:
userSetCmds:
(
on             => { url=>"/control?cmd=event,dim=0,1023", args => -1},
off            => { url=>"/control?cmd=event,dim=0,0", args => -1},
dim            => { url=>"/control?cmd=event,dim=0", args => -1, widget => "slider,0,1,1023"}
)

webCmd:
on:off:dim

Und im ESP habe ich:
Generic - Dummy Device   dim

Und in Rules:
//Dim Value from FHEM
on dim do
  TaskValueSet 1,1,%eventvalue2% //Set dim Dummy
  TaskValueSet 1,2,%eventvalue2%/4.02 //Set light Dummy
  event,setFanSpeed
endon

On setFanSpeed do
pwm,12,[dim#dim] //Set speed of Fan
endon

Hoffe das hilft weiter.

Gruß,
Stefan