Już prawie działa
Maksymalny czas setValidityTimeSec
-
shimano73
- Posts: 2174
- Joined: Sun Feb 28, 2016 12:27 pm
- Location: Orzesze
- Been thanked: 1 time
Hej, pracuję nad własnym softem do modułu do skrzynki pocztowej zasilanej z baterii CR123 3V , moduł znaleziony tu : https://www.espthings.io/index.php/2022 ... ox-switch/
Już prawie działa
, jako że układ mógłby się nie wybudzać nawet przez miesiąc mam pytanie jaki maksymalny czas można ustawić w metodzie setValidityTimeSec ?
Już prawie działa
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Teoretycznie rozmiar zmiennej ogranicza czas. Zbyt długi czas tak na prawdę powoduje, że nie będziemy wiedzieć czy urządzenie żyje i może się okazać, że poczta na którą czekamy dawno tam jest tylko sprzęt padł.
SUPLA.... Nareszcie w domu.
-
shimano73
- Posts: 2174
- Joined: Sun Feb 28, 2016 12:27 pm
- Location: Orzesze
- Been thanked: 1 time
OK, mam nadzieję że listonosz częściej będzie przychodził
i do tego nie dojdzie.
Ustawiłem
Niestety urządzenie w apce przechodzi w offline po dwóch dniach .
Moja sekcja setup wygląda tak:
Jest gdzieś błąd że nie wytrzymuje zadeklarowanego tygodnia ?
Ustawiłem
Code: Select all
#define MAX_SLEEP_TIME_SEC 604800 // czyli tydzień
Moja sekcja setup wygląda tak:
Code: Select all
SuplaDevice.setSuplaCACert(suplaCACert);
SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
SuplaDevice.addFlags(SUPLA_DEVICE_FLAG_SLEEP_MODE_ENABLED);
SuplaDevice.setActivityTimeout(MAX_SLEEP_TIME_SEC);
for (auto element = Supla::Element::begin(); element != nullptr; element = element->next()) {
if (element->getChannel()) {
auto channel = element->getChannel();
channel->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
channel->setBatteryLevel(getBattery());
channel->setDefault(SUPLA_CHANNELFNC_MAILSENSOR);
// channel->setDefaultStateRestore();;
}
}
SuplaDevice.setName("Mail Box");
SuplaDevice.begin();
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
W logach powinieneś widzieć taki warning:shimano73 wrote: Mon May 27, 2024 6:35 am Niestety urządzenie w apce przechodzi w offline po dwóch dniach .
Jest gdzieś błąd że nie wytrzymuje zadeklarowanego tygodnia ?
Code: Select all
void Channel::setValidityTimeSec(unsigned _supla_int_t timeSec) {
if (timeSec > UINT16_MAX) {
SUPLA_LOG_WARNING("Channel: too high validity time: %d", timeSec);
timeSec = UINT16_MAX;
}
validityTimeSec = timeSec;
}
Także SuplaDevice tu narzuca ograniczenie do uint16_t, czyli 65535 s, czyli około 18 h.
Nie pamiętam, dokładnie z jakiego powodu to zostało tak ograniczone, ale prawdopodobnie ze względu na ilość pamięci RAM. Bo int16 to 2 B na kanał, a int32 to 4 B na kanał.
Najlepsze suple dla Twojego domu 
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
A miałem się właśnie pytać na jak długo mogę uśpić układ bez konieczności wybudzania w związku z czujnikami okiennymi nad którymi teraz działam, no cóż trzeba będzie co 16 godzin wymusić wysłanie "bitu życia"
.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
shimano73
- Posts: 2174
- Joined: Sun Feb 28, 2016 12:27 pm
- Location: Orzesze
- Been thanked: 1 time
Próbując wydłużyć czas usunąłem ograniczający warunek w metodzie setValidityTimeSec ale skutek jest odwrotny , teraz po około 3 godzinach jest już offline .
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Musiałbyś jeszcze zmienną zaminić, z 16 bitowej na 32. Teraz jak ustawiasz większą liczbę, to ona się "przekręca" i przyjmuje jakąś inną mniejszą wartość.shimano73 wrote: Tue May 28, 2024 7:50 am Próbując wydłużyć czas usunąłem ograniczający warunek w metodzie setValidityTimeSec ale skutek jest odwrotny , teraz po około 3 godzinach jest już offline .
W supla/channels/channel.h zmień:
Code: Select all
uint16_t validityTimeSec = 0;
// na:
uint32_t validityTimeSec = 0;
Najlepsze suple dla Twojego domu 
