XIAOMI LYWSD03MMC - odczyt przez ESP32

User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

Juszczaczek1 wrote: Fri Apr 14, 2023 4:33 pm
Ustawiłem na 30 ale co 1.5 minuty mam reset połączenia z serwerem. Tak ma być?
Teoretycznie nie, ale niestety tak się dzieje, ja na swoim ESP32 S3 mam tak raz na godzinę, możesz spróbować ten myk co parę postów temu #klew podał na wyłączenie szyfrowania danych, ale widzę, że chyba już to zrobiłeś.
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
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

veeroos wrote: Sun Apr 16, 2023 11:06 am
Juszczaczek1 wrote: Fri Apr 14, 2023 4:33 pm
Ustawiłem na 30 ale co 1.5 minuty mam reset połączenia z serwerem. Tak ma być?
Teoretycznie nie, ale niestety tak się dzieje, ja na swoim ESP32 S3 mam tak raz na godzinę, możesz spróbować ten myk co parę postów temu #klew podał na wyłączenie szyfrowania danych, ale widzę, że chyba już to zrobiłeś.
Nie wiem jak ten skan działa, ale może jest blokujący i program zawiesza się na 30 s i robi skan. Jeśli tak, to to nie będzie dobrze działać z Suplą. Dobrze by było gdyby Supla dostawała czas przynajmniej raz na sekundę.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

klew wrote: Mon Apr 17, 2023 10:43 am Nie wiem jak ten skan działa, ale może jest blokujący i program zawiesza się na 30 s i robi skan. Jeśli tak, to to nie będzie dobrze działać z Suplą. Dobrze by było gdyby Supla dostawała czas przynajmniej raz na sekundę.
Hmmm, czyli wygląda na to żeby najoptymalniej było żeby po stronie urządzenia odbywało się tylko skanowanie i po uarcie przekazywało dane do urządzenia, które będzie komunikowało się z Suplą 🤔. Muszę o tym pomyśleć, ale jest do zrobienia.
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
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

veeroos wrote: Mon Apr 17, 2023 11:07 am
klew wrote: Mon Apr 17, 2023 10:43 am Nie wiem jak ten skan działa, ale może jest blokujący i program zawiesza się na 30 s i robi skan. Jeśli tak, to to nie będzie dobrze działać z Suplą. Dobrze by było gdyby Supla dostawała czas przynajmniej raz na sekundę.
Hmmm, czyli wygląda na to żeby najoptymalniej było żeby po stronie urządzenia odbywało się tylko skanowanie i po uarcie przekazywało dane do urządzenia, które będzie komunikowało się z Suplą 🤔. Muszę o tym pomyśleć, ale jest do zrobienia.
Albo poszukać opcji skanowania, które nie blokuje apki.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

klew wrote: Mon Apr 17, 2023 11:13 am
veeroos wrote: Mon Apr 17, 2023 11:07 am
klew wrote: Mon Apr 17, 2023 10:43 am Nie wiem jak ten skan działa, ale może jest blokujący i program zawiesza się na 30 s i robi skan. Jeśli tak, to to nie będzie dobrze działać z Suplą. Dobrze by było gdyby Supla dostawała czas przynajmniej raz na sekundę.
Hmmm, czyli wygląda na to żeby najoptymalniej było żeby po stronie urządzenia odbywało się tylko skanowanie i po uarcie przekazywało dane do urządzenia, które będzie komunikowało się z Suplą 🤔. Muszę o tym pomyśleć, ale jest do zrobienia.
Albo poszukać opcji skanowania, które nie blokuje apki.
A może dodać LAN po SPI i komunikować się z Supla po kablu zamiast zamiast WiFi?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

shimano73 wrote: Mon Apr 17, 2023 11:28 am A może dodać LAN po SPI i komunikować się z Supla po kablu zamiast zamiast WiFi?
To akurat nie ma znaczenia. Wątek do obsługi Wi-Fi i tak leci osobno i jest tam na pokładzie FreeRTOS, który powinien wątki odpowiednio przełączać.
Kluczowe jest, aby metoda "SuplaDevice.iterate();" była odpalana regularnie i często.

Nie wiem czy wklejam tu aktualny kod, ale niech to posłuży jako przykład:

Code: Select all

void loop() {
  if (millis() - czas_pomiedzy_skanowaniem > 120000) {  // co 2 minuty skanowanie sieci
    czas_pomiedzy_skanowaniem = millis();
    BLEScan* pBLEScan = BLEDevice::getScan(); //create new scan
    pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
    pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
    BLEScanResults foundDevices = pBLEScan->start(SCAN_TIME);
    int count = foundDevices.getCount();
    }
  SuplaDevice.iterate();
    if (WiFi.status() != WL_CONNECTED) {    
    if (millis() > wifimilis)  {               
    WiFi.begin(); 
    wifimilis = (millis() + 20000) ;
    }
  }
}
Tutaj co 2 min jest odpalany skan. Metoda pBLEScan->start() jest blokująca. Więc jeśli ustawimy 30 s, to na 30 s nie odpali się SuplaDevice.iterate(), co chyba wystarczy do zerwania połączenia. W efekcie co 1,5 min będzie reset połączenia (2 min minus 30 s).

Przyglądając się na szybko kodowi tego BLEScan, można spróbować to zmienić na coś takiego:

Code: Select all

void loop() {
  if (millis() - czas_pomiedzy_skanowaniem > 2000) {  // co 2 sekundy skanowanie sieci
    czas_pomiedzy_skanowaniem = millis();
    BLEScan* pBLEScan = BLEDevice::getScan(); //create new scan
    pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
    pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
    BLEScanResults foundDevices = pBLEScan->start(1, true);
    int count = foundDevices.getCount();
    }
  SuplaDevice.iterate();
    if (WiFi.status() != WL_CONNECTED) {    
    if (millis() > wifimilis)  {               
    WiFi.begin(); 
    wifimilis = (millis() + 20000) ;
    }
  }
}
Zmieniłem uruchamianie skanu na co 2 s, ale ma trwać 1 s. Parametr "true" na końcu oznacza, że ma nie kasować poprzednio znalezionych urządzeń, tylko "kontynuować" wyszukiwanie.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Koledzy przymierzam się do zakupu modułu z esp32 z 4 przekaźnikami (min) najlepiej z antenką do tego projektu możecie coś polecić. Nie mam jeszcze doświadczenia z esp32 a nie chciałbym kupować i czekać dwa razy , oczywiście w grę wchodzi przesyłka z dalekiego wschodu .

EDIT : Szukałem , szukałem i nie znalazłem modułu z 4 przekaźnikami co najwyżej z wyświetlaczem i nie pełną listą gpio Wygląda na to że ten moduł jest za dobry na przekaźniki :D
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
maarekk
Posts: 24
Joined: Fri Mar 25, 2022 5:58 pm

Post

Witam.
Próbuję wgrać na ESP32S3... Arduino 1.8.19... Przy weryfikacji mam błąd " exit status 1
'class BLEAdvertisedDevice' has no member named 'getServiceDataCount'; did you mean 'getServiceData'? "
Co mogę zrobić?
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

maarekk wrote: Thu Apr 27, 2023 8:41 pm Witam.
Próbuję wgrać na ESP32S3... Arduino 1.8.19... Przy weryfikacji mam błąd " exit status 1
'class BLEAdvertisedDevice' has no member named 'getServiceDataCount'; did you mean 'getServiceData'? "
Co mogę zrobić?
Nie jestem teraz przy kompie, się to wygląda jakbys używał jakiejś innej biblioteki do BLE, albo innej wersji boardów na esp32.
Spróbuj zaktualizować boardy (tylko nie do najnowszej wersji, bo tam zepsuli kompilację Supli i wielu innych bibliotek, weź przedostanią wersję).
Najlepsze suple dla Twojego domu :mrgreen:
maarekk
Posts: 24
Joined: Fri Mar 25, 2022 5:58 pm

Post

klew wrote: Fri Apr 28, 2023 7:29 pm
maarekk wrote: Thu Apr 27, 2023 8:41 pm Witam.
Próbuję wgrać na ESP32S3... Arduino 1.8.19... Przy weryfikacji mam błąd " exit status 1
'class BLEAdvertisedDevice' has no member named 'getServiceDataCount'; did you mean 'getServiceData'? "
Co mogę zrobić?
Nie jestem teraz przy kompie, się to wygląda jakbys używał jakiejś innej biblioteki do BLE, albo innej wersji boardów na esp32.
Spróbuj zaktualizować boardy (tylko nie do najnowszej wersji, bo tam zepsuli kompilację Supli i wielu innych bibliotek, weź przedostanią wersję).
Hm... Trochę tego doinstalowałem... Spróbuję na czystej instalce... Dzięki na razie...

Return to “Zagadnienia ogólne”