ESPeasy - GPIO schalten // Edit: GPIOs = absent

Begonnen von noxx, 06 Juni 2017, 22:37:21

Vorheriges Thema - Nächstes Thema

noxx

Wie realisiere ich das?

Gesendet von meinem GT-I9195 mit Tapatalk


dev0

Indem der ESP regelmäßig die entsprechenden Daten sendet. In Deinem Fall bspw. den Wert für das Reading "Schalter_01".

noxx

und wie stellt man das an?

Habe nun den ganzen Nachmittag verbracht, mich mit MQTT vertaut zu machen.
Läuft nun auch soweit. Hier habe ich keinen einzigen Abbruch bisher. Einstellungen
am ESP sind 1:1, bis auf den Controller (Vorher FHEM, nun OpenHAB).

Noch eine Frage: Meine gelesen zu haben, das die "Bridge" nur 2 ESPs bedienen kann,
ist das richtig?

dev0

Zitat
und wie stellt man das an?
Im ESP Device das Delay auf einen sinnvollen Wert >0 einstellen.
Das ESPEasy Modul kann beliebig viele ESPs bedienen.

noxx

Teste ich nochmal. Was wird eigentlich mit den delay verzögert?

Gesendet von meinem GT-I9195 mit Tapatalk


dev0

Es ist das Interval in dem der ESP die Daten an einen Controller schickt. Fragen zur ESPEaay Firmware stellst Du nach lesen des Wikis aber besser im letscontrolit Forum.

noxx

OK, danke. Frage mich aber trotzdem warum es beim Temp Sensor (delay=0) es keine Probleme gibt und beim switch (delay=0) die Verbindung abbricht. Andere Frage, funktioniert die espbridge nur mit dem Fhem Controller?

Gesendet von meinem GT-I9195 mit Tapatalk


dev0

Da Du Dich nicht sehr klar ausdrückst, kann ich nur vermuten, dass nicht die Verbindung abbricht, sondern nur der Presence Status auf absent geht, da keine Daten empfangen werden.
commandref/ESPEasy/presenceCheck:
Zitat
presenceCheck
Used to enable/disable presence check for ESPs
Presence check determines the presence of a device by readings age. If any reading of a device is newer than interval seconds then it is marked as being present. This kind of check works for ESP devices in deep sleep too but require at least 1 reading that is updated regularly. Therefore the ESP must send the corresponding data regularly (ESP device option "delay").
Possible values: 0,1
Default: 1 (enabled)
Wenn die Verbindung (beim Senden) _wirklich_ abbricht, dann ist es wahrscheinlich ein WLAN- oder Netzwerkproblem. Das erkennst Du im Log an der Fehlermeldung "httpReq Failed".

Warum der Temperatur Sensor trotz delay=0 Daten liefert, müßtest Du im Sourcecode nachsehen. Vmtl. übernimmt das Plugin dann den Systemdefault, der unter dem Config Tab auf dem ESP eingestellt ist.

ZitatAndere Frage, funktioniert die espbridge nur mit dem Fhem Controller?
Zum Senden von Daten an ESPEasy ist es egal welcher Controller eingestellt ist, da das Senden davon unabhängig ist. Datenempfang funktioniert nur mit meinem "FHEM HTTP" Plugin.

noxx

#23
So, die Bridge gefällt mir besser. Aber der Schalter geht nur wenn ich unter ESPeasy den GPIO Port bei Inversed keinen Haken setzen. Habe aber den Haken gesetzt, sonst passt der Status beim ESP nicht.
Nicht Inversed: Angeschlossene Lampe an -> Status 0
Inversed: Angeschlossene Lampe an -> Status 1

Die Bridge ist ja so eingerichtet:
attr ESP03_Aussenlicht stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Schalter_01","")}
attr ESP03_Aussenlicht devStateIcon on:ios-on-green:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
attr ESP03_Aussenlicht eventMap /gpio 5 on:on/gpio 5 off:off/status gpio 5:check/


Der Schiebeschalter reagiert überhaupt nicht. Die ON / OFF Buttons schon. Bei ON geht die Lampe am ESP aus, bei OFF geht sie an. Dabei springt der Schiebeschalter auch, direkt bedienen lässt er sich aber nicht

Internals:
   CFGFN
   DEF        192.168.1.45 80 espBridge ESP03_Aussenlicht
   ESP_BUILD  20000
   ESP_BUILD_GIT v2.0.0-dev8
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   HOST       192.168.1.45
   IDENT      ESP03_Aussenlicht
   INTERVAL   300
   IODev      espBridge
   IPV        4
   LASTInputDev espBridge
   MSGCNT     71
   NAME       ESP03_Aussenlicht
   NOTIFYDEV  global
   NR         233
   NTFY_ORDER 50-ESPEasy_ESP03_Aussenlicht
   PORT       80
   STATE      off
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.16
   espBridge_MSGCNT 71
   espBridge_TIME 2017-06-12 21:25:01
   Readings:
     2017-06-12 21:25:01   Schalter_01     off
     2017-06-12 21:24:25   presence        present
     2017-06-12 21:25:01   state           Sch: off
   Helper:
     fpc        1497294861
     Pm:
       Encode     1
       JSON       1
     Received:
       Schalter_01 1497295501
Attributes:
   IODev      espBridge
   Interval   300
   devStateIcon on:ios-on-green:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
   eventMap   /gpio 5 on:on/gpio 5 off:off/status gpio 5:check/
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   3
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Schalter_01","")}


EDIT

Nun gehts, wenn ich in FHEM nochmal invertiere mit
eventMap /gpio 5 on:off/gpio 5 off:on/status gpio 5:check/

cs-online

...seit ich bei meinen ESPs "pollGPIOs" auf den entsprechenden gpio gesetzt habe und intervall auf 180 gesetzt habe, hab ich kein Problem mehr mit "absent"  :D
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

dev0


Frank_Huber

Es gibt ein Attribut presenceCheck. Das setzt du auf 0 und Ruhe ist.

Gesendet von meinem S3_32 mit Tapatalk


cs-online

#27
wenn du den presence-check abschaltest, weisst du nicht, ob der Schaltbefehl wirklich ausgeführt wurde. Wenn zyklisch der entsprechende GPIO abgefragt wird, sieht man a) ob das Gerät noch ansprechbar ist, sonst steht der state nämlich wirklich auf absent und b) welchen Schaltzustand du aktuell wirklich hast. Wenn ich den S20 dann aus der Steckdose ziehe, geht der nach 3min. auf absent. Genauso sollte es meiner Meinung nach sein

Ich hatte vorher auch immer das Problem, dass ich nach kurzer Zeit immer ein absent bekam, weil kein neues reading reinkam und ich nicht mdhr direkt sehen konnte, ob nun an oder aus.

Eine weitere Alternative ist vielleicht espeasy über System die presence-Zeit schicken zu lassen... siehe hier (erster Screenshot):

https://forum.fhem.de/index.php/topic,64363.msg687550.html#msg687550
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

Frank_Huber

Ich halte es für den richtigen Weg bei den GPIOs den presencecheck abzuschalten.
Ich habe auf meinen ESPs ein weitered device angelegt welches zyklisch die RSSI meldet. Hier wird auch die presence geprüft.

wenn ich einen GPIO schalte sendet er ja seinen Status an FHEM zurück. funktioniert zumindest bei mir tadellos.

cs-online

das darf jeder so gestalten, wie er/sie es am besten gebrauchen kann. Gerade dass das ganze so flexibel ist, ist doch super !
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr