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

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

Vorheriges Thema - Nächstes Thema

Elektrofreak

Hallo zusammen,

ich habe neulich im letscontrollit-Forum gelesen, dass der deepSleep-Befehl mittlerweile per Hand (z.B. per Regel) ausgeführt werden kann.

https://www.letscontrolit.com/forum/viewtopic.php?f=4&t=5013

Ich habe schon lange nach einer Option gesucht, den ESP mit der ESPEasy-Firmware geflasht z.B. nachts oder wenn keiner zuhause ist in den Tiefschlaf zu versetzen. Dies könnte mit einem DOIF geschehen.

Da mittlerweile der deepSleep-Befehl Teil der ESPEasy-Firmware ist, würde ich vorschlagen, diesen Befehl in das entsprechende FHEM-Modul sowie in das ESPEasy-Plugin einzupflegen. Gibt es diese Möglichkeit?

Der Entwickler des ESPEasy-Moduls Dev0 hat auf eine Anfrage per PN gebeten, die Anfrage hier im Forum zu stellen.

Ich hoffe dass es noch weitere Interessenten und Vorschläge gibt  :)

dev0

Wenn der deepSleep Befehl über HTTP aufrufbar ist und nicht nur ESP intern verfügbar ist, dann baue ich das ein. Da ich momentan nicht zum Testen komme, könntest Du schon einmal ausprobieren welche URL dazu aufgerufen werden muss.
Ich vermute, dass es eine der beiden tun sollte, vermutlich die Erste:

http://ip/?cmd=deepSleep,60
http://ip//control?cmd=deepSleep,60


Muss für diese Methode GPIO-16 und RST gebrückt sein?

dev0


BumpetyBoo

#3
http://ip//control?cmd=deepSleep,60 funktioniert nicht.
mit http://ip/?cmd=deepSleep,60 funktionierts.

GPIO-16 und RST müssen gebrückt sein.

Getestet mit einem Wemos D1 mini, geflasht mit version: mega-20180421 (ESP82xx Core 2_4_0)

Danke für den Hinweis Elektrofreak, nun kann ich den ESP von Fhem aus schlafen schicken. Die buildin Funktion geht wieder in den deepsleep bevor Daten an FHEM geschickt werden.

dev0

Zitatmit http://ip/?cmd=deepSleep,60 funktionierts.
OK, dann baue ich das bei Gelenheit ein.

ZitatDie buildin Funktion geht wieder in den deepsleep bevor Daten an FHEM geschickt werden.
Das scheint dann ein Bug in (Deiner?) ESPEasy Firmware Version zu sein. Zumindest mit R147+ wurden die Sensordaten, auch bei aktiviertem Sleep, über das FHEM Controller Plugin an FHEM übertragen.

Porsti

Hi,

spiele auch gerade mit der neuen Version von Easyesp und bin dabei auch über den deep sleep gestpolpert.
Wäre eine coole erweiterung wenn man den ESP nach abruf der Daten wieder für 5min schlafen schickt um ihn
für längere Zeit über Akku zu betrieben.

Habe zur Zeit die Version: Release mega-20180524

Gruß
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

dev0

#6
Eine neue Modulversion zum Testen habe ich hier bereitgestellt. Diese Version kennt das DeepSleep Command bereits. Diskussionen zum DeepSleep Befehl bitte in diesem Thread führen. Es können auch auch (beliebige?) Befehle via Attribut nachgerüstet werden.
Da ich den DeepSleep Befehl selbst zZ. nicht testen kann, wäre eine Rückmeldung hier hilfreich.

dev0

Zitat von: Porsti am 30 Mai 2018, 19:51:13
habe gerade die neue Version in fhem eingebunden und mal versucht den deepsleep zu testen.
Dabei ist mir aufgefallen das ich über das Modul keine Zeit mit angeben kann.
Das kann ich nicht nachvollziehen, zeige bitte ein verbose 5 log der bridge, wenn der Befehl gesendet wird.

Zitat

2018.05.30 19:45:58 1: PERL WARNING: Use of uninitialized value in lc at ./FHEM/34_ESPEasy.pm line 515.

Ist in der nächsten Version gefixed, hat aber auch keinen Einfluss auf den deepsleep Befehl.

Porsti

#8
Hi,

hier ist der Log auszug mit verbose 5:


2018.05.31 07:27:46 3: ESPEasy: set ESPEasy_Wetter_BMP180 deepsleep
2018.05.31 07:27:46 5: ESPEasy ESPEasy_Wetter_BMP180: set ESPEasy_Wetter_BMP180 deepsleep  (mappings done)
2018.05.31 07:27:46 5: ESPEasy ESPEasy_Wetter_BMP180: IOWrite($defs{ESPEasy_Wetter_BMP180}, $defs{ESPEasy_Wetter_BMP180}, deepsleep, )


und das hier kommt im log auf dem esp an:


433624: Command: deepsleep


Ich vermute daher das keine Zeitangabe für den deepsleep übermittelt wird.

Über diesen Link klappt es:  http://ip/?cmd=deepSleep,60

Gurß & Danke
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

dev0

#9
Das ist zwar das Log vom Device und nicht von der Bridge, aber da fehlt bei Dir das erste Argument (die Zeitangabe). Ich verstehe jetzt aber was Du wohl meintest: In FHEMWEB konnte man keinen Argument angeben. Das habe ich jetzt behoben, ich hatte es nur über die Command Line getestet: "set xxx deepsleep 10"


set KE deepsleep 10
2018.05.31 07:50:09.523 3: ESPEasy: set KE deepsleep 10
2018.05.31 07:50:09.524 5: ESPEasy KE: set KE deepsleep 10 (mappings done)
2018.05.31 07:50:09.524 5: ESPEasy KE: IOWrite($defs{KE}, $defs{KE}, deepsleep, 10)


Edit:
Nimm mal bitte die angehängte Version.
Die aktuelle Testversion befindet sich hier: https://forum.fhem.de/index.php?topic=88552

Porsti

Hallo dev0,

konnte es gerade erfolgreich testen!!!

Danke für deine Arbeit.

Großes Danke
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

dev0

Entspricht der angegebene Wert Sekunden oder Minuten?

Porsti

____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

MrTom

Hallo zusammen

ich habs auch mal getestet und bei mir funktioniert der deepsleep als Kommando leider nicht. Als Ausgabe mit verbose 5 bekomme ich:
2018.06.02 17:00:07.675 3: ESPEasy: set ESPEasy_ESP_Easy_Test_Temp_Hum deepsleep 10
2018.06.02 17:00:07.676 5: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: set ESPEasy_ESP_Easy_Test_Temp_Hum deepsleep 10 (mappings done)
2018.06.02 17:00:07.676 5: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: IOWrite($defs{ESPEasy_ESP_Easy_Test_Temp_Hum}, $defs{ESPEasy_ESP_Easy_Test_Temp_Hum}, deepsleep, 10)
2018.06.02 17:00:10.749 5: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: Received: ESP_Easy_Test_Temp_Hum::10.195.1.44::1::1::1::e||_lastError||10.195.1.44: Keine Route zum Zielrechner||0
2018.06.02 17:00:10.749 2: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: WARNING: 10.195.1.44: Keine Route zum Zielrechner
2018.06.02 17:00:18.051 5: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: Received: ESP_Easy_Test_Temp_Hum::10.195.1.70::1::1::1::i||unit||0||0|||i||sleep||0||0|||i||build||20102||0|||i||build_git||mega-20180524||0|||i||build_notes|| - Mega||0|||i||version||2||0|||i||node_type_id||17||0|||r||Temperature||24.30||2|||r||Humidity||48.90||2
2018.06.02 17:00:18.051 2: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: RESOLVED: 10.195.1.44: Keine Route zum Zielrechner
2018.06.02 17:00:18.052 4: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: Temperature: 24.30
2018.06.02 17:00:18.052 4: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: Humidity: 48.90
2018.06.02 17:00:18.052 5: ESPEasy ESPEasy_ESP_Easy_Test_Temp_Hum: Internals: unit:0 sleep:0 build:20102 build_git:mega-20180524 build_notes: - Mega version:2 node_type_id:17: ESP Easy Mega


Wenn ich aber über http://ip/?cmd=deepSleep,60 den sleep antriggere, dann gehts wie gewünscht. (Auf dem fhem-system mit curl)

Ich verwende die ESP_Easy_mega-20180524_normal_ESP8266 und das im Thread bereit gestellte Modul. An meinem ESP habe ich einen DHT22 und eine Batterie-Spannungsmessung angeschlossen.

Gruss
Thomas

RPi2: FHEM 5.8 mit Jeelink (ATTiny) und AliRF (PIR's)
KNX/EIB: alix3d3 als IP-GW, div. Sensoren und Aktoren (Licht, Jalousien und Markisen)
Mysensors: Temp/Hum/Lux-Sensoren, PIR's, Türkontakte,
verschiedene RGB-Aktoren, Vantage 2, Fritzbox, Vu+ Duo

Porsti

Hi,

versuche doch mal eine längere Zeit.
Bei 10 sekunden ist der ja kaum im deepsleep und muss schon wieder aufwachen.
Mache es doch mal mit 60 sekunden.

Gruß
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)