Status SUPLA

User avatar
Alex1603
Posts: 93
Joined: Sat Jan 01, 2022 1:46 pm

Post

Witam,
chciałbym prosić o pomoc, ewentualie o wyjaśnienie nastepującego problemu. Mam w kodzie funkcję :

Code: Select all

bool wait_for_supla_connection(unsigned long timeout_ms) {
  unsigned long start = millis();
  while (millis() - start < timeout_ms) {
    SuplaDevice.iterate();
    if (suplaStatus == STATUS_REGISTERED_AND_READY) {
      return true;
    }
    delay(50);
  }
  return false;
}
Chciałbym używać statusu Supli jak w kodzie, który działa lepiej niż np. trwały delay(4000) - oczekiwanie na ponowne połączenie (używam DEEPSleep). Akurat podczas tej funkcji na moment pojawiaja się "---" zamiast pomiarów co jest jasne.
Funkcję tą wywołuję na końcu Setup() (zamiast delay(4000);) ,
dane zmierzone wysyłam nastepnie w pętli loop z kontrolą Supla::Element::IsAnyUpdatePending():

Code: Select all

...
if (sleep_time_sec != 0) {
    if (sensorT1) T1_temp = sensorT1->getValue();
    napięcie_baterii();
    pomiar_bme280();

	unsigned long start = millis();
	while (Supla::Element::IsAnyUpdatePending() && 	 millis() - start < 4000) {
    		SuplaDevice.iterate();
    		delay(20);
		}
    DeepSleep();
}
Nie znalazłem na razie sposobu jak kontrolować status, nie kasując danych ("---") w aplikacji, oczywiście znikaja one tylko na chwile ale wygląda to nieciekawie (delay rozwiązuje ten problem ale nie zawsze jest to wiarygodne - widzę to po historii pomiarów szczególnie w nocy/nad ranem). jesli ktos mógłby mnie skierować do rozwiązania będe bardzo wdzięczny.
Pozdrawiam
*-------------- Pomysłów po sufit, czasu po kostki --------------*
*------ https://github.com/Rebel1603?tab=repositories ------*
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Urządzenie przy rejestracji wysyła pomiary. Jeśli nie robisz odczytu wcześniej, a czekasz tylko na rejestrację, to wyśle "---".
Potem robisz odczyt i czekasz aż to będzie przesłane do Supli.

Obejrzyj sobie ten film https://www.youtube.com/watch?v=6CeSe10I9NI - tu są omówione podstawy tego, jak są zbudowane klasy w Supli i jak ta cała machina się kręci.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Alex1603
Posts: 93
Joined: Sat Jan 01, 2022 1:46 pm

Post

Dziękuję serdecznie za wskazanie materiałów , ogromny SZACUN za włożoną pracę. Wszystko bardzo pomaga - szczególnie bardziej doświadczonym programistom. Chciałbym zapytać jeszcze o taką rzecz, buduję urządzenie które pracuje na baterii i co kilka minut wybudza się i robi pomiary. Zauważyłem że czasami po północy są przerwy w zapisie historii, natomiast potem w ciągu całego dnia wszystko działa bez zarzutu. Czy jest możliwe że serwer nie pracuje stale całą dobę lub dokonują sią na nim jakieś prace? Czy mam jeszcze pracować z urządzeniem. Takie przerwy zauważyłem też na innych urządzeniach w nocy dla których kod jest wygenerowany z Gui G.
Jak sprawdzić czy dany serwer pracował lub czy urządzenie miało problem z połączeniem np. ?
Będę wdzięczny za odpowiedź
*-------------- Pomysłów po sufit, czasu po kostki --------------*
*------ https://github.com/Rebel1603?tab=repositories ------*
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Alex1603 wrote: Mon Nov 24, 2025 5:54 pm
Jak wyglądają te przerwy?
Serwery działają 24h/dobę. Aktualizacje są max 2-3 razy w miesiącu i z reguły w godzinach roboczych
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

Alex1603 wrote: Mon Nov 24, 2025 5:54 pm Dziękuję serdecznie za wskazanie materiałów , ogromny SZACUN za włożoną pracę. Wszystko bardzo pomaga - szczególnie bardziej doświadczonym programistom. Chciałbym zapytać jeszcze o taką rzecz, buduję urządzenie które pracuje na baterii i co kilka minut wybudza się i robi pomiary. Zauważyłem że czasami po północy są przerwy w zapisie historii, natomiast potem w ciągu całego dnia wszystko działa bez zarzutu. Czy jest możliwe że serwer nie pracuje stale całą dobę lub dokonują sią na nim jakieś prace? Czy mam jeszcze pracować z urządzeniem. Takie przerwy zauważyłem też na innych urządzeniach w nocy dla których kod jest wygenerowany z Gui G.
Jak sprawdzić czy dany serwer pracował lub czy urządzenie miało problem z połączeniem np. ?
Będę wdzięczny za odpowiedź
Podłącz na próbę urządzenie, które ciągle dokonuje pomiarów - będziesz miał porównanie. Sprawdzisz w historii jak się ma jedno do drugiego.
Sprawdź też, czy w godzinach nocnych nie masz przerw w dostępie do internetu - może to dać podobne objawy.
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036

Return to “Pomoc”