ESPEasy-Plugin "FHEM" / ESPEasy-Modul - deepSleep Command

Begonnen von Elektrofreak, 19 März 2018, 20:22:20

Vorheriges Thema - Nächstes Thema

dev0

Um ggf. ein paar Unklarheiten auszuräumen:

Ein ESP, der keinen deepsleep via ESP Config nutzt, geht via deepsleep Befehl für die angegebene Zeit in den deepsleep. Möchte man, dass der ESP nach den entsprechenden Datenübertragungen immer wieder schlafen geht, dann muß immer wieder deepsleep als Befehl aufgerufen werden.
Ich habe das gerade getestet und es funktioniert bei mir so wie es soll. GPIO16 und RST sind natürlich verbunden, sonst funktioniert das deepsleep auf dem ESP nicht. Das hat nichts mit der ESP Easy Firmware oder ESPEasy Modul noch ggf. mit MQTT zu tun.

2019.01.14 09:06:13.349 4: ESPEasy em1: Humidity: 49.80
2019.01.14 09:07:13.348 4: ESPEasy em1: Humidity: 49.90
2019.01.14 09:08:13.344 4: ESPEasy em1: Humidity: 49.80
2019.01.14 09:09:13.348 4: ESPEasy em1: Humidity: 49.60
2019.01.14 09:10:13.344 4: ESPEasy em1: Humidity: 49.70
2019.01.14 09:11:13.349 4: ESPEasy em1: Humidity: 49.60

2019.01.14 09:11:14.072 3: ESPEasy em1: set em1 deepsleep 180
2019.01.14 09:11:24.221 2: ESPEasy eb: read from http://192.168.30.146:80 timed out [set em1 deepsleep 180]
2019.01.14 09:11:24.222 2: ESPEasy em1: WARNING: read from http://192.168.30.146:80 timed out
2019.01.14 09:14:10.821 2: ESPEasy em1: RESOLVED: read from http://192.168.30.146:80 timed out

2019.01.14 09:14:11.108 4: ESPEasy em1: Humidity: 49.80
2019.01.14 09:15:04.081 4: ESPEasy em1: Humidity: 49.80

Wenn man das automatisieren will, dann muss man ein zB. notify auf einen empfangenen Wert triggern lassen und den deepsleep Befehl mit einer entsprechenden Verzögerung und Zeit aufrufen. Liefern mehere ESP Firmware Devices Daten, dann auf Werte des ESP Device triggern, dass die Werte zuletzt liefert, sonst kappt der ESP die Verbindung. Das ist in der ESP Easy Firmware mMn verbesserungswürdig.

Wenn der ESP bereits den deepsleep nutzt, dann kann man in den Wachphasen den deepsleep Befehl nutzen, um die nächste Schlafphase zu ändern. Will man das über einen gewissen Zeitraum machen, dann kann man zB. auf "sleepState: awaked for.*" triggern und den deepsleep Befehl aufrufen lassen (via notify etc.). In diesem Beispiel ist sleep auf 120/10 eingestellt und wird via deepsleep Befehl für 240s schlafengelegt:

2019.01.14 09:48:41.526 4: ESPEasy em1: sleepState: awaked for 10s (-1s): 1547455730.52595
2019.01.14 09:48:41.811 4: ESPEasy em1: Humidity: 49.90
2019.01.14 09:48:50.527 4: ESPEasy em1: sleepState: sleep awaited in 1s: 1547455731.52595
2019.01.14 09:48:51.527 4: ESPEasy em1: sleepState: sleeping

2019.01.14 09:50:51.743 4: ESPEasy em1: sleepState: awaked for 10s (-1s): 1547455860.7424
2019.01.14 09:50:52.027 4: ESPEasy em1: Humidity: 50.20

2019.01.14 09:50:55.958 3: ESPEasy em1: set em1 deepsleep 240

2019.01.14 09:51:00.744 4: ESPEasy em1: sleepState: sleep awaited in 1s: 1547455861.7424
2019.01.14 09:51:01.744 4: ESPEasy em1: sleepState: sleeping
2019.01.14 09:51:05.968 2: ESPEasy eb: read from http://192.168.30.146:80 timed out [set em1 deepsleep 240]
2019.01.14 09:51:05.968 2: ESPEasy em1: WARNING: read from http://192.168.30.146:80 timed out
2019.01.14 09:54:53.352 2: ESPEasy em1: RESOLVED: read from http://192.168.30.146:80 timed out

2019.01.14 09:54:53.352 4: ESPEasy em1: sleepState: awaked for 10s (-1s): 1547456102.35139
2019.01.14 09:54:53.636 4: ESPEasy em1: Humidity: 50.50
2019.01.14 09:55:02.352 4: ESPEasy em1: sleepState: sleep awaited in 1s: 1547456103.35139
2019.01.14 09:55:03.352 4: ESPEasy em1: sleepState: sleeping

2019.01.14 09:57:05.881 4: ESPEasy em1: sleepState: awaked for 10s (-1s): 1547456234.88095
2019.01.14 09:57:06.168 4: ESPEasy em1: Humidity: 50.50
2019.01.14 09:57:14.882 4: ESPEasy em1: sleepState: sleep awaited in 1s: 1547456235.88095
2019.01.14 09:57:15.882 4: ESPEasy em1: sleepState: sleeping

dev0

Die Logmeldungen bzgl. Timeout beim deepslep Befehl werden, mit der aktuellen Modulversion (rev.18288/v2.16), nicht mehr ins Log geschrieben.

Raspi-lars

#47
Hallo Zusammen,

ich versuche gerade einen ESP8266 Wemos d1 mini als Batteriebetriebenen Lichtsensor einzusetzen. Hierfür verwende ich ESPEasy Build 20111 - Mega.

Der Sensor und der ESP funktionieren so auch einwandfrei. Nun versuche ich, den Sensor nachts mit einem größeren Deepsleep zu versehen als Tagsüber. Dies würde ich gerne über das ESPEasy- Plugin erschlagen. Leider funktioniert set espeasy-sensor deepsleep 120 bei mir nicht. Daraufhin habe ich dann http://<espeasyip>/control?cmd= deepsleep,120 ausprobiert. Als Rückmeldung kam die  Meldung: Command unknown: deepsleep,120.  GPIO16 auf RST ist gebrückt

Kann es sein, das im aktuellen Build die Möglichkeit nicht mehr vorhanden ist, oder liegt der Fehler auf meiner Seite?

Gruß
Lars

andies

#48
Das Kommando funktioniert bei mir insofern, dass die Weboberfläche nicht mehr erreichbar ist. Danach erschien
Unknown or restricted command!
Der Stromverbrauch bleibt aber die ganze Zeit konstant - und das ist ja der Sinn der Übung. Ich nehme auch EspMega.

PS Im Logfile des ESP jetzt auf einmal
227786: HTTP: deepsleep,120
227789: Command: deepsleep
227794: Command unknown: 'deepsleep,120'
242350: WD : Uptime 5 ConnectFailures 0 FreeMem 22512 WiFiStatus 3
259312: SLEEP: Entering deep sleep in 30 seconds.
259313: EVENT: System#NoSleep=30
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Raspi-lars

Hallo andies,

ich schau mir die Tasmato Firmware mal an. Könnte interessant sein
Danke für den Hinweis.

Gruß
Lars

andies

Noch eine Ergänzung. Da zitiere ich mich mal, denn das ist auch so ein Klassiker
Zitat von: andies am 26 Februar 2021, 15:40:37
...Wemos: Hier muss man ein wenig aufpassen. An sich stellt espressif eine Spezifikation bereit, wie der ESP auf einem Board anzusteuern ist. Ich habe inzwischen gelernt, dass es neben den Qualitätsherstellern wie zB Lolin auch Anbieter in China gibt, die von diesen Spezifikationen ein wenig abweichen. Da sind dann keine 10k Widerstände da, ok, nimmt man halt 100k, die sind noch vor Ort. Das Ergebnis kann (muss aber nicht) sein, dass der Wemos oder besser der Clon viele Dinge kann, aber bei anderen unerklärlicherweise ausfällt. Mir ist das gerade beim deepsleep passiert - der ging einfach nicht. Zwei Dinge stören da besonders. Erstens ist es nicht ein kleiner Händler, der den Mist verklickert. Vielmehr kann es sein, dass dieser falsch spezifizierte Clone tausendfach (!) produziert wurde und von vielen Händlern über einen langen Zeitraum angeboten wird. Man kauft dann einen Monat später bei einem völlig anderen Händler (selbst bei conrad habe ich das erlebt), um denselben Fehler wieder festzustellen. Zweitens merkt man das Problem zwar, denkt aber im worst case daran, man selbst sei hier der Idiot. Also kurz gesagt: Wenn irgendwas nicht so geht, wie es soll und man alles durchprobiert hat, bitte den Clone entsorgen oder eben gleich ein Markenboard (Lolin beispielsweise) kaufen. Kostet dann paar Euro mehr.
Also wenn Du alles richtig machst und es trotzdem nicht geht, kann es auch am Wemos liegen!
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Wernieman

Wobei aber die Angedeutete Lösung: "Markenboard (Lolin beispielsweise) kaufen. Kostet dann paar Euro mehr.", leider nicht die Lösung ist. Das "Problem" kann alle betreffen ....
- 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

Udomatic

Hallo,

ich verwende einen D1 mini an einer Powerbank und möchte deepSleep nutzen, um Strom zu sparen.
Habe bedenken, dass nach Aktvierung des deepSleep, der D1 nicht mehr aufwacht, wegen der Powerbank.

Weiss jemand, ob deepSleep mit einer Powerbank funktioniert?

Gruß
Udo
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,