Easyesp Pin mit PWM ansteuern und auslesen

Begonnen von sim, 07 November 2018, 22:29:31

Vorheriges Thema - Nächstes Thema

sim

Hallo zusammen,

momentan versuche ich einen Pin per PWM zu steuern und den PWM Wert auszulesen.

In Easyesp ist der Pin als Switch Input definiert.
Das Ansteuern funktioniert auch, momentan händisch durch set pwm xx wert im Device.
Der Status der mir angezeigt wird wechselt dann halt dauernt von on / off.

Statt dem binärsignal würde ich halt gerne den Wert anzeigen.
Auslesen kann ich den PWM Status per IP\control?cmd=status,pwm xx

Mein Problem ist wie ich das mit dem Device verknüpfe.

r00t2

#1
Zitat von: sim am 07 November 2018, 22:29:31
Hallo zusammen,

momentan versuche ich einen Pin per PWM zu steuern und den PWM Wert auszulesen.
Zum Verständnis:
1) Soll ein Pin am ESP dafür verwendet werden ein PWM Signal auszugeben (davon gehe ich mal schwer aus) oder
2) Soll ein Pin am ESP dafür verwendet werden, um ein dort angelegtes PWM Signal auszulesen?

Denn davon ist abhängig, ob:
Zitat von: sim am 07 November 2018, 22:29:31
In Easyesp ist der Pin als Switch Input definiert.
das hier richtig ist. Und das ist ziemlich sicher falsch, wenn ein PWM Signal ausgegeben werden soll, denn dann muss der Pin wohl ein PWM Output sein.

Und Du meinst "ESPEasy", nicht "Easyesp", oder?

Außerdem: Soll das ganze aus FHEM heraus funktionieren oder geht es Dir lediglich darum, wie man es auf dem ESP direkt implementiert?

Zitat von: sim am 07 November 2018, 22:29:31
Das Ansteuern funktioniert auch, momentan händisch durch set pwm xx wert im Device.
Der Status der mir angezeigt wird wechselt dann halt dauernt von on / off.
Was ja prinzipiell mal nicht falsch ist, da die PWM dafür sorgt, dass regelmäßig an/aus geschaltet wird.

BTW: Schon mal auf das Wiki geschaut? => https://www.letscontrolit.com/wiki/index.php/GPIO
Auch das Forum ist aufschlussreich: https://www.letscontrolit.com/forum/viewtopic.php?t=320

Daraus:

There's a 'status' command for plugins that handle GPIO's and it returns a json format pinstate.

Sample:
status,gpio,2

It also works for PWM settings and it does not depend on having a specific task. If you have set a certain IO pin with a remote command, you should be able to retrieve status with the status command. So after using "pwm,2,512", running "status,gpio,2" results into:

{
"log": "",
"plugin": 1,
"pin": 2,
"mode": "PWM",
"state": 512
}
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

sim

Hallo root2,

danke für deine Antwort.
ESPEasy ist richtig, das drehe ich irgentwie gerne rum..

Der "Ausgang" ist als Switch Input definiert damit er in FHEM angelegt wird.
(Ausgang gibts bei ESPEasy nicht)

Mit webCmd pwm 14 0:pwm 14 400 kann ich den ausgang jetzt ansteuern.

Durch set status gpio 14 bekomme ich z.Bsp. als Rückmeldung:
GPI: 400 Swi: pwm 14 1

Der Status Swi wechselt dann von "pwm 14 1" zu "pwm:0" (im PWM Takt),
GPI bleibt unverändert auch wenn ich die ansteuerung ändere. Bei einer Änderung verschwindet der GPI Status dann.

sparkiie

Konntest du das Problem lösen?
Mir geht es gerade ähnlich. PWM senden geht, empfangen leider nicht...

DasQ

Nur kurz da vom handy. Im Reiter Hardware lassen sich ein.- und Ausgänge konfigurieren. PWM würde ich am analogeingang auslesen.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

sparkiie

Mir geht es eher darum den von FHEM gesetzten PWM Wert als Reading von ESPEASY bestätigt zu bekommen.

Das funktioniert bei mir leider nicht.

Wernieman

Sofern ich weiß geht es so nicht ...
wenn  es Dir nur um die Bestätigung des befehlsempfang geht, mußt Du dann doch wohl etwas basteln:
Eine Grundidee: Baue Dir eine Rul in espeasy, welche Du aus FHEM ansprichst. In dieser Rule setzt Du den PWM Wert und einen passenden Dummy, den Du zurücksenden lässt.

Ist mir persönlich aber Oversized. Entweder bekommt er espeasy den PWM, dann geht es komplett sauber durch, oder die Übertragung schlägt fehl, das sollte/muß aber fhem selber merken.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

sparkiie

Mir geht es eigentlich wirklich nur darum, dass ich in FHEM den aktuellen PWM Wert sehen möchte. Es geht um eine Lüftersteuerung, die von verschiedenen notifys gesteuern wird.
Das mit der Rule hatte ich mir auch bereits überlegt, allerdings werden für 'normale' Devices ja auch Readings angelegt, wieso dann nicht für GPIOs die PWM steuern?!

Ich lassen nun im notify, wenn der PWM Wert an ESPEasy gescickt wird, ein weiteres Reading mit dem PWM Wert im ESP Devive anlegen...

DasQ

#8
Und wie kommuniziert dein espeasy mit FHEM? Mqtt? HTTP? Telepathie? Briefeschreiben?
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

sparkiie


DasQ

Dann versteh ich den Satz nicht.

Zitat von: sparkiie am 09 Mai 2019, 17:35:47
allerdings werden für 'normale' Devices ja auch Readings angelegt, wieso dann nicht für GPIOs die PWM steuern?!
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

sparkiie

Weil hier nur ein Reading angelegt und aktualisiert wird, wenn GPIO on/off ist - aber nicht wenn es PWM steuert...

Wernieman

Eben weil PWM mehr als eine GPIO Steuerung. Eigentlich mißbrauchst Du auch beim Rückkanal GPIO das "Schalterdevice". Der Schalter ist ein Input-Gerät, Wenn Du denn GPIO setzt, verwendest Du aber ein Outputgerät. Dann es trotzdem funktioniert .... ist eigentlich der "Zufall".
Kurzgefasst: Es könnte durchaus sein, das es in einer Zukünftigen Version von ESPEasy nicht mehr so funktionieren wird .... weil es eigentlich der Logik widerspricht.

Du hast doch bestimmt innerhalb von FHEM den PWM-Wert. Warum brauchst Du Ihn dann nochmals vom Gerät? Schließlich mupt Du den Wert haben, bevor Du Ihn zum ESPEasy schickst ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

sparkiie

So mache ich es ja nun auch.
Ich bin halt vom ESPeasy mit ESPEasy FHEM Modul verwöhnt....

Btw. ich nutze natürlich kein GPIO Device gleichzeitig zum PWM steuern, war nur beispielhaft!

DasQ

#14
ja da wirst wohl um die rules nicht rum kommen.

ZitatSendToHTTP

To send a message to another device, like a command to switch on a light to Domoticz

On System#Boot do    //When the ESP boots, do
   timerSet,1,10      //Set Timer 1 for the next event in 10 seconds
endon

On Rules#Timer=1 do  //When Timer1 expires, do
   SendToHTTP 192.168.0.243,8080,/json.htm?type=command&param=switchlight&idx=174&switchcmd=On
endon

Many users have reported problems with commands being truncated, particularly when trying to send commands to domoticz. It seems to be a parsing error. There is the following workaround

  SendToHTTP 192.168.0.243,8080,/json.htm?type=param=switchlight&command&idx=174&switchcmd=On

da ich aber von dem espeasy-fhemmodul kein plan habe, da ich selbst nur mqtt einsetz, kann ich dir bei der formulierung des links nicht weiter helfen.
und wie du das feedback triggerst musst halt selbst entscheiden.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org