Hallo,
habe meinen ESP mit FHEM am laufen, aber wie schalte ich den? Bekomme es nicht hin.
Internals:
CFGFN
DEF 192.168.1.226 80 espBridge espeasy01_Heizung_R4
ESP_BUILD 147
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.1.226
IDENT espeasy01_Heizung_R4
INTERVAL 300
IODev espBridge
LASTInputDev espBridge
MSGCNT 67
NAME ESPEasy_espeasy01_Heizung_R4
NOTIFYDEV global
NR 520
NTFY_ORDER 50-ESPEasy_espeasy01_Heizung_R4
PORT 80
STATE sta: on
SUBTYPE device
TYPE ESPEasy
VERSION 1.07
espBridge_MSGCNT 67
espBridge_TIME 2017-06-06 22:34:57
Readings:
2017-06-06 22:30:21 presence present
2017-06-06 22:34:57 state sta: on
2017-06-06 22:34:57 stateR4 on
Helper:
fpc 1496780720
pmEncode 1
Intat:
1:
FN ESPEasy_statusRequest
INTERVAL 305
TRIGGERTIME 06.06.2017 22:35:26
Received:
stateR4 1496781297
Attributes:
IODev espBridge
Interval 300
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
Internals:
CFGFN
CONNECTS 559
DEF bridge 8383
FD 24
HOST bridge
MAX_HTTP_SESSIONS 3
MAX_QUEUE_SIZE 250
NAME espBridge
NOTIFYDEV global
NR 476
NTFY_ORDER 50-espBridge
PASS not defined yet !!!
PORT 8383
SESSIONS 0
STATE initialized
SUBTYPE bridge
TYPE ESPEasy
USER not defined yet !!!
VERSION 1.07
Readings:
2017-06-06 22:14:31 state initialized
Helper:
pmEncode 1
Received:
192.168.1.226:
build 147
espName espeasy01
sleep 0
unit 0
version 9
Attributes:
authentication 0
combineDevices 0
group ESPEasy Bridge
room ESPEasy
Frage: Den ersten Post hier https://forum.fhem.de/index.php?topic=55728.0 sorgfältig durchgelesen? Dort wird beschrieben, wie die GPIO zu schalten sind.
Grüße Jörg
Danke Jörg.
@noxx: mMn hätte auch ein Blick in die commandref gereicht: https://fhem.de/commandref.html#ESPEasysetLogical
Sollte das nicht der Fall sein, dann bitte hier melden, damit ich fehlende oder unklare Informationen ergänzen kann.
Denn ersten Post hatte ich gelesen, hat aber nicht geklappt. Brauche ich einen Dummy Schalter? Wenn nein, die Attribute gehören in die Bridge?
Gesendet von meinem GT-I9195 mit Tapatalk
So, habs mal so gemacht, aber klappt nicht ganz. habe den Code von #1
übernommen.
Status war vorher 1, konnte den auf 0 setzen, aber nicht wieder zurück auf 1.
Internals:
DEF 192.168.1.226 80 espBridge espeasy01_Heizung_R4
ESP_BUILD 147
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.1.226
IDENT espeasy01_Heizung_R4
INTERVAL 300
IODev espBridge
LASTInputDev espBridge
MSGCNT 437
NAME ESPEasy_espeasy01_Heizung_R4
NOTIFYDEV global
NR 82
NTFY_ORDER 50-ESPEasy_espeasy01_Heizung_R4
PORT 80
STATE off
SUBTYPE device
TYPE ESPEasy
VERSION 1.07
espBridge_MSGCNT 437
espBridge_TIME 2017-06-07 19:31:04
Readings:
2017-06-07 19:28:25 GPIO15 off
2017-06-07 19:28:25 GPIO15_mode input
2017-06-07 19:29:12 presence present
2017-06-07 19:31:04 state GPI: off sta: on
2017-06-07 19:31:04 stateR4 on
Helper:
fpc 1496852622
pmEncode 1
Intat:
1:
FN ESPEasy_statusRequest
INTERVAL 304
TRIGGERTIME 07.06.2017 19:34:17
Received:
GPIO15 1496856505
GPIO15_mode 1496856505
stateR4 1496856664
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 15 on:on/gpio 15 off:off/status gpio 15:check/
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"GPIO15","")}
webCmd :
Edit
Beim rumspielen mit den Sets (zb manuell schalten per SET) sehe ich in den LOGs
2017.06.07 19:40:58 2: ESPEasy espBridge: httpReq failed: 192.168.1.226 espeasy01_Heizung_R4 'gpio 15,1'
2017.06.07 19:41:37 2: ESPEasy ESPEasy_espeasy01_Heizung_R4: RESOLVED: connect to http://192.168.1.226:80 timed out
Welche Attribute für ESPEasy Bridge/Device verwendbar sind ist in der commandref dokumentiert. Sei mir nicht böse, aber ich habe keine Lust das hier alle paar Tage erneut zu schreiben.
Die Meldung "httpReq failed" bedeutet, dass der ESP nicht erreicht werden konnte -> vmtl. ein Netzwerk- und/oder ESP-Problem.
Bevor wir hier weiter machen, bitte auf die aktuelle Modul Version aktualisieren.
werde es weiter probieren, vielleicht gehts ja irgendwie
gruß
Zitat von: noxx am 07 Juni 2017, 21:45:33
ok, im moment läuft eh nix mehr.
ESPEasy_v2.0.0-dev10 (habs neu geflasht) will sich nicht mehr mit FHEM verbinden.
(HTTP : connection failed, Controller IP/Port stimmen)
Nur mal zum Nachfragen:
- Welche IP hat Du in EspEasy eingetragen
- Welchen Port in EspEasy
- Welchen Port in Fhem in der EspBridge
Grüße Jörg
Hat sich erledigt, danke für die Nachfrage.
Reset, dann ging er obwohl ich vorher schon welche gemacht hatte.
Bin leider neu bei FHEM, auch wenn länger schon angemeldet. Hatte bisher
immer Pimatic am laufen und wollte nun mal intensiver FHEM nutzen.
FHEM ist am Anfang leider alles andere als einfach zu verstehen, sorry.
Habe nun mehrmals den Code von der ersten Seite probiert, er geht nicht.
Bekomme keinen brauchbaren Schalter
attr ESPEasy_ESP01_Schalter_01 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"GPIO15","")}
attr ESPEasy_ESP01_Schalter_01 devStateIcon on:ios-on-green:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
attr ESPEasy_ESP01_Schalter_01 eventMap /gpio 15 on:on/gpio 15 off:off/status gpio 15:check/
attr ESPEasy_ESP01_Schalter_01 webCmd :
Keine Ahnung warum, hab einfach alles durchprobiert. so gehts:
attr ESPEasy_ESP01_Schalter_01 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Schalter_01","")}
Warum das GPIO15 nicht ging, macht mich allerdings ratlos.
Gruß
Ich verliere im Moment ständig die Verbindung zu den Schalter, eine Idee woran das liegen kann?
2017.06.09 19:58:04 4: Connection accepted from espBridge_ESP01_192.168.1.35_9132
2017.06.09 19:58:04 4: ESPEasy espBridge_ESP01_192.168.1.35_9132: Peer address accepted
2017.06.09 19:58:04 5: ESPEasy espBridge_ESP01_192.168.1.35_9132: Received header: {'Connection' => 'close','Host' => '192.168.1.220','Content-Length' => '224'}
2017.06.09 19:58:04 5: ESPEasy espBridge_ESP01_192.168.1.35_9132: Received content: {"module":"ESPEasy","version":"1.02","data":{"ESP":{"name":"ESP01","unit":0,"version":9,"build":147,"sleep":0,"ip":"192.168.1.35"},"SENSOR":{"0":{"deviceName":"Temperatur","valueName":"Temperatur","type":1,"value":"21.1"}}}}
2017.06.09 19:58:04 4: ESPEasy espBridge_ESP01_192.168.1.35_9132: No basic authentication required
2017.06.09 19:58:04 4: ESPEasy espBridge_ESP01_192.168.1.35_9132: Send http close '200 OK'
2017.06.09 19:58:04 5: ESPEasy espBridge_ESP01_192.168.1.35_9132: Dispatch: ESP01_Temperatur::192.168.1.35::1::1::1::i||unit||0||0|||i||sleep||0||0|||i||build||147||0|||i||version||9||0|||r||Temperatur||21.1||1
2017.06.09 19:58:04 5: espBridge_ESP01: dispatch ESP01_Temperatur::192.168.1.35::1::1::1::i||unit||0||0|||i||sleep||0||0|||i||build||147||0|||i||version||9||0|||r||Temperatur||21.1||1
2017.06.09 19:58:04 4: ESPEasy espBridge_ESP01_192.168.1.35_9132: Closing tcp session.
Internals:
DEF 192.168.1.35 80 espBridge_ESP01 ESP01_Schalter_01
ESP_BUILD 147
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.1.35
IDENT ESP01_Schalter_01
INTERVAL 300
IODev espBridge_ESP01
IPV 4
LASTInputDev espBridge_ESP01
MSGCNT 8
NAME ESPEasy_ESP01_Schalter_01
NOTIFYDEV global
NR 81
NTFY_ORDER 50-ESPEasy_ESP01_Schalter_01
PORT 80
STATE absent
SUBTYPE device
TYPE ESPEasy
VERSION 1.15
espBridge_ESP01_MSGCNT 8
espBridge_ESP01_TIME 2017-06-09 18:59:10
Readings:
2017-06-09 18:19:22 GPIO14 on
2017-06-09 18:19:22 GPIO14_mode output
2017-06-09 18:59:10 Schalter_01 off
2017-06-09 19:56:52 presence absent
2017-06-09 19:56:52 state absent
Helper:
fpc 1497025162
Pm:
Encode 1
JSON 1
Received:
Attributes:
IODev espBridge_ESP01
Interval 300
devStateIcon on:ios-on-green:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
eventMap /gpio 14 on:on/gpio 14 off:off/status gpio 14:check/
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Schalter_01","")}
webCmd :
Zitat
Ich verliere im Moment ständig die Verbindung zu den Schalter, eine Idee woran das liegen kann?
Wenn es so ist, dann vmtl. eine schlechte wlan Verbindung. Im gezeigten Log ist davon aber nichts zu sehen.
hmm, der ESP steht nur 1m vom Router weg. Temp geht ja auch.
Auf den ESP komme ich ohne Probleme drauf.
Ich teste mal ne andere "FW"
3424776 : WD : Uptime 57 ConnectFailures 0 FreeMem 26384
3454777 : WD : Uptime 57 ConnectFailures 0 FreeMem 26384
3459210 : DS : Temperature: 20.75 (28-ff-4a-a6-71-15-2-57)
3484778 : WD : Uptime 58 ConnectFailures 0 FreeMem 26384
3514779 : WD : Uptime 58 ConnectFailures 0 FreeMem 26384
3519270 : DS : Temperature: 20.75 (28-ff-4a-a6-71-15-2-57)
3544780 : WD : Uptime 59 ConnectFailures 0 FreeMem 26384
3574781 : WD : Uptime 59 ConnectFailures 0 FreeMem 26384
3579330 : DS : Temperature: 20.75 (28-ff-4a-a6-71-15-2-57)
3604782 : WD : Uptime 60 ConnectFailures 0 FreeMem 26096
EDIT
An der FW lags nicht. Auch mit ESPEasy_v2.0.0-dev10 gehts nicht richtig.
700739 : WD : Uptime 12 ConnectFailures 0 FreeMem 23656
730740 : WD : Uptime 12 ConnectFailures 0 FreeMem 23656
732456 : DS : Temperature: 21.00 (28-ff-4a-a6-71-15-2-57)
760741 : WD : Uptime 13 ConnectFailures 0 FreeMem 23656
790742 : WD : Uptime 13 ConnectFailures 0 FreeMem 23656
792516 : DS : Temperature: 21.00 (28-ff-4a-a6-71-15-2-57)
820743 : WD : Uptime 14 ConnectFailures 0 FreeMem 23656
850744 : WD : Uptime 14 ConnectFailures 0 FreeMem 23656
852576 : DS : Temperature: 21.00 (28-ff-4a-a6-71-15-2-57)
880745 : WD : Uptime 15 ConnectFailures 0 FreeMem 23656
Hallo,
das Problem mit dem absent muss woanders liegen. Die GPIO-switches fliegen
ja nicht alle auf einmal raus, sondern nacheinander.
Hier gabs das Problem für den Sonoff, die "Lösung" funktioniert bei mir leider
nicht, oder es fehlt noch etwas, was ich nicht kenne.
https://forum.fhem.de/index.php?topic=71418.0
Internals:
CONNECTS 1119
DEF bridge 8383
FD 24
HOST bridge
IPV 4
MAX_HTTP_SESSIONS 3
MAX_QUEUE_SIZE 250
NAME espBridge_ESP01
NOTIFYDEV global
NR 77
NTFY_ORDER 50-espBridge_ESP01
PORT 8383
STATE initialized
SUBTYPE bridge
TYPE ESPEasy
VERSION 1.15
Readings:
2017-06-09 21:43:33 state initialized
Helper:
Pm:
Encode 1
JSON 1
Queue:
Sessions:
192.168.1.35 0
Attributes:
authentication 0
autocreate 1
autosave 1
combineDevices 0
group ESPEasy Bridge
room ESPEasy
verbose 5
Damit der Presence-Erkennung funktioniert benötigst Du in jedem "FHEM ESPEasy Device" ein Reading, dass regelmäßig aktualisiert wird. Das ist bei Dir nicht der Fall:
Zitat
Readings:
2017-06-09 18:19:22 GPIO14 on
2017-06-09 18:19:22 GPIO14_mode output
2017-06-09 18:59:10 Schalter_01 off
2017-06-09 19:56:52 presence absent
2017-06-09 19:56:52 state absent
Wie realisiere ich das?
Gesendet von meinem GT-I9195 mit Tapatalk
Indem der ESP regelmäßig die entsprechenden Daten sendet. In Deinem Fall bspw. den Wert für das Reading "Schalter_01".
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?
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.
Teste ich nochmal. Was wird eigentlich mit den delay verzögert?
Gesendet von meinem GT-I9195 mit Tapatalk
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.
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
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.
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/
...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
Das halte ich für den falschen Weg.
Es gibt ein Attribut presenceCheck. Das setzt du auf 0 und Ruhe ist.
Gesendet von meinem S3_32 mit Tapatalk
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
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.
das darf jeder so gestalten, wie er/sie es am besten gebrauchen kann. Gerade dass das ganze so flexibel ist, ist doch super !