Dla mnie wystarczy krótkie info, że coś trzeba poprawićklew pisze: ↑pn lis 14, 2022 1:53 pmPoza setValidityTimeSec dla każdego kanału, trzeba też ustawić:
Ja "MAX_SLEEP_TIME_SEC" ustawiałem na ~2x czas spania.Kod: Zaznacz cały
SuplaDevice.addFlags(SUPLA_DEVICE_FLAG_SLEEP_MODE_ENABLED); SuplaDevice.setActivityTimeout(MAX_SLEEP_TIME_SEC); ch1->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
Poza tymi rzeczami trzeba jeszcze zaimplementować samo usypianie urządzenia.
Dodałem tam jedną przydatną metodę do sprawdzania, czy można pójść spać:Ona zwróci "true", gdy jakiś kanał ma jeszcze potrzebę wysłania czegoś, a "false" gdy wszystko jest wysłane. Po tym jak zmieni się na "false", ja robiłem mały delay, wyłączam wifi i włączam spanie.Kod: Zaznacz cały
if (Supla::Protocol::ProtocolLayer::IsAnyUpdatePending() {...}
Kolejna nowa metoda to:ona sprawdza, czy urządzenie jest w trybie normal lub test (trybu testowego raczej nie potrzebujesz) oraz czy nie ma zaplanowanego resetu urządzenia.Kod: Zaznacz cały
SuplaDevice.isSleepingAllowed();
Ogólnie planuję dodać jakiś przykład ze śpiącym urządzeniem na Arduino IDE, ale jak zwykle trzeba na to znaleźć chwilę czasu
Ogólnie przerobiłem wg tego co napisałeś i wszystko działa poprawnie. Ale mnie zastanawia jak ma się wyznaczać czas pracy urządzenia bo teraz po wybudzeniu urządzenia on się restartuje - tak ma być?