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 :)
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.
Ah sehr gut, vielen Dank, funktioniert super :)
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
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...
Ok, danke.
Ich habe das nun über ein Dummy Reading "dim" im ESP und entsprechenden Rules gelöst.
Funktioniert 1A.
Danke.
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
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