Po prostu IsAnyUpdatePending blokował usypianie i te czasy 5s mijały się z celem. Zrobiłem to teraz tak, po nawiązaniu Wifi dopiero zaczyna odliczać się czas 10s gdzie 20s to timeout. Jeżeli nie nawiąże się połączenie wifi po 60s urządzenie się również uśpi.MaG wrote: Sun Dec 03, 2023 3:49 pm Usypia się niezależnie od tego czy jest WiFi czy nie,
Ale nie łączy się z serwerem
Coś nie tak z czasami jest.
W załączniku fotki prądu pobieranego przez ESP
jeden z softem 7.7.15 ( tu się łączy z serwerem) i u mnie trwa to ok 10sec. Czasem ten czas jest dłuższy nawet o 3sec.
Drugi z softem 7.7.16 (tu się nie łączy z serwerem). Tu czas ok 8sec i chyba nie zdąży się połączyć z serwerem, bo status jest rozłączony.
Trzeba czas uzależnić od tego czy jest połączenie z serwerem czy nie i od tego momentu trzeba liczyć czas time out
Bo w rożnych sytuacjach może być różny czas łączenia z serwerem
DS18B20
-
- Posts: 5465
- Joined: Fri Nov 16, 2018 7:25 am
https://gui-generic-builder.supla.io/
-
- Posts: 11115
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Jeszcze trzeba dać timeout na samo nawiązanie połączenia z wifi.
Ja bym zrobił po prostu timeout liczony od obudzenia do nawiązania połączenia.
Ja bym zrobił po prostu timeout liczony od obudzenia do nawiązania połączenia.
-
- Posts: 5465
- Joined: Fri Nov 16, 2018 7:25 am
Wydaje mi się, że właśnie to zrobiłem tutajklew wrote: Sun Dec 03, 2023 6:02 pm Jeszcze trzeba dać timeout na samo nawiązanie połączenia z wifi.
Ja bym zrobił po prostu timeout liczony od obudzenia do nawiązania połączenia.
https://github.com/krycha88/GUI-Generic ... ep.cpp#L47
czy masz coś innego na myśli?
https://gui-generic-builder.supla.io/
-
- Posts: 11115
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Ok, nieuważnie przeczytałem poprzednią wiadomośćkrycha88 wrote: Mon Dec 04, 2023 8:08 amWydaje mi się, że właśnie to zrobiłem tutajklew wrote: Sun Dec 03, 2023 6:02 pm Jeszcze trzeba dać timeout na samo nawiązanie połączenia z wifi.
Ja bym zrobił po prostu timeout liczony od obudzenia do nawiązania połączenia.
https://github.com/krycha88/GUI-Generic ... ep.cpp#L47
czy masz coś innego na myśli?

-
- Posts: 5465
- Joined: Fri Nov 16, 2018 7:25 am
Nic się nie stało

https://gui-generic-builder.supla.io/
-
- Posts: 11115
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Deep sleep tak działa, że prawie wszystko wyłącza. Najwyraźniej millis też się resetuje przy deep sleep, albo coś innego nie działa poprawnie.krycha88 wrote: Mon Dec 04, 2023 10:14 amNic się nie stałoDawno się nie bawiłem Deep Sleep i co zauważyłem to czas pracy urządzenia mi się zawsze restartuje po ponownym wybudzeniu. Czy to jest poprawne działanie?
Licznie uptime jest oparte o millis i jest inicjalizowane od 0. A przy deep sleep wszystko wstaje od początku, więc pewnie dlatego to tak działa.
Pewnie trzeba by przechować przez spanie ostatni uptime i dodać do niego czas snu. (chyba że millis liczy dobrze, to można to łatwiej zrobić)
Następnie trzeba by jakiś "offset" uptime dodać na starcie Supli, aby wiedziała o tym czasie.
Jeśli masz czas na obczajenie jak to działa i będziesz miał ten czas gdzieś poprawnie przechowany, to daj znać, to dodam jakieś "SuplaDevice.setInitialUptimeOffset(offsetSec);"
Ja do tej pory z reguły light sleep używałem, ale THW to nie projekt na baterię, więc tam tylko trzeba było nie nagrzewać zbytnio ESP, a nie oszczędzać każdy mA

-
- Posts: 5465
- Joined: Fri Nov 16, 2018 7:25 am
Zgadza się pełne usypiane deep sleep nie przechowuje nic w pamięci więc takie informację są gubione - ESP startuje od nowa. Nie jestem przekonany czy to jest tak ważna informacja aby zapisywać ją do eeproma zwłaszcza, że trzeba byłoby ją zapisywać przy każdym usypianiu urządzenia.klew wrote: Mon Dec 04, 2023 11:18 am Deep sleep tak działa, że prawie wszystko wyłącza. Najwyraźniej millis też się resetuje przy deep sleep, albo coś innego nie działa poprawnie.
Licznie uptime jest oparte o millis i jest inicjalizowane od 0. A przy deep sleep wszystko wstaje od początku, więc pewnie dlatego to tak działa.
Pewnie trzeba by przechować przez spanie ostatni uptime i dodać do niego czas snu. (chyba że millis liczy dobrze, to można to łatwiej zrobić)
Następnie trzeba by jakiś "offset" uptime dodać na starcie Supli, aby wiedziała o tym czasie.
Jeśli masz czas na obczajenie jak to działa i będziesz miał ten czas gdzieś poprawnie przechowany, to daj znać, to dodam jakieś "SuplaDevice.setInitialUptimeOffset(offsetSec);"
Ja do tej pory z reguły light sleep używałem, ale THW to nie projekt na baterię, więc tam tylko trzeba było nie nagrzewać zbytnio ESP, a nie oszczędzać każdy mA.
A może da się ukryć tą informację?
https://gui-generic-builder.supla.io/
-
- Posts: 65
- Joined: Wed Oct 25, 2023 10:08 pm
Nie znam procesora ESP na tyle, ale z reguły przy Deep Sleep dane w RAM są przechowywane. Może nie zawsze, ale w wielu prockach.
Problem tylko taki, żeby po resecie (wybudzeniu) nie był inicjowany cały RAM (przy inicjalizacji RAM jest zerowany)
Można tak ustawić, żeby kilka komórek RAM było nie inicjalizowanych i wtedy w nich będą dane z poprzedniego działania procka.
Można też zrobić tak, żeby w EEPROM zapamiętywać wartość max. I zapisywać ją tylko wtedy, gdy wartość zmierzona jest mniejszy niż zapisana wartość. To zapobiegnie zajechaniu flasha.
Problem tylko taki, żeby po resecie (wybudzeniu) nie był inicjowany cały RAM (przy inicjalizacji RAM jest zerowany)
Można tak ustawić, żeby kilka komórek RAM było nie inicjalizowanych i wtedy w nich będą dane z poprzedniego działania procka.
Można też zrobić tak, żeby w EEPROM zapamiętywać wartość max. I zapisywać ją tylko wtedy, gdy wartość zmierzona jest mniejszy niż zapisana wartość. To zapobiegnie zajechaniu flasha.
-
- Posts: 11115
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław