Funkcja deep sleep

krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Fri Jan 26, 2024 4:38 pm
krycha88 wrote: Fri Jan 26, 2024 3:57 pm
klew wrote: Fri Jan 26, 2024 3:56 pm Tak wygląda. Hvac też wyświetla, że nie wczytał nic
Jakaś sugestia? Muszę jakoś wymusić zapis?
Daj link do tego klasy od Config w GG. Zerknę wieczorem co tam jest
https://github.com/krycha88/GUI-Generic ... r.cpp#L841
https://gui-generic-builder.supla.io/
edm
Posts: 677
Joined: Mon Jan 15, 2018 6:18 pm
Been thanked: 2 times

Post

Poniżej linki do wideo gdzie widać co jak robię.
1. Korekta z poziomu supla cloud (korekta robi się x 2) https://drive.google.com/file/d/1Rp5X9N ... dsi6H/view
2. Korekta z poziomu GUI urządzenia (nie zapisuje ustawień) https://drive.google.com/file/d/1yBMO6t ... JZglg/view

Jest komunikat Przetwarzanie filmu trwa dłużej niż zwykle... (nie wiem dlaczego). Ale można pobrać i obejrzeć.
Wziąłem udział w Supla Offline Party 2023 :D
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Dziedziczysz po KeyValue, ale samo KeyValue to tylko narzędzie do trzymania kluczy i wartości w pamięci. Także ten config z supla-device po prostu używa KeyValue, aby w pamięci zapisać ustawienia.
Potem po resecie wszystko przepada i czyta się z pustego.

Do KeyValue trzeba dorobić "warstwę sprzętową", czyli napisać kod, który będzie to fizycznie zapisywał we flashu.

Zerknij na klasę LittleFsCofnig:
https://github.com/SUPLA/supla-device/b ... s_config.h
https://github.com/SUPLA/supla-device/b ... config.cpp
Minimum, które musisz napisać to:
```
bool init() override;
void commit() override;
void removeAll() override;
```

W init() w zasadzie jest postawienie LittleFs (u Ciebie jest używany Spifs i on też jest inicjalizowany), a następnie odczytanie pliku z configiem do pamięci i wywołanie metody:
```
initFromMemory(buf, fileSize);
```
To ładuje dane z pliku do pamięci KeyValue.

commit() to operacja zapisania. Jest tam wrzucenie całego KeyValue do bufora w pamięci:
```
size_t dataSize = serializeToMemory(buf, configMaxSize);
```

a potem całość jest zapisana do pliku.

removeAll() jest wołane przy przywracaniu ustawień fabrycznych - w zasadzie kasowanie plików.

Pozostałe metody, które są w LittleFs zaimplementowane to przechowywanie większych "blobów" i certyfikatów CA w postaci osobnych plików, bo to serializowanie do pamięci KeyValue nie jest zrobione zbyt optymalne pod kątem pamięci i przy termostatach robiło się mało miejsca.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Fri Jan 26, 2024 9:09 pm
Dzięki, poprawiłem. Czyli wychodzi na to, że ja nigdy nie przechowywałem konfiga :lol:
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

krycha88 wrote: Sat Jan 27, 2024 6:51 am
klew wrote: Fri Jan 26, 2024 9:09 pm
Dzięki, poprawiłem. Czyli wychodzi na to, że ja nigdy nie przechowywałem konfiga :lol:
Lepiej późno niż wcale ;)
Najlepsze suple dla Twojego domu :mrgreen:
edm
Posts: 677
Joined: Mon Jan 15, 2018 6:18 pm
Been thanked: 2 times

Post

krycha88 wrote: Sat Jan 27, 2024 6:51 am Dzięki, poprawiłem. Czyli wychodzi na to, że ja nigdy nie przechowywałem konfiga :lol:
Z poziomu GUI BoneIO w polu Korekta / Korekta dla kanałów brakuje możliwości korekty 2 czujnika BME280. Skorygować mogę tylko 1
czujnik BME280. Możesz dodać 2 czujnik BME280 aby był widziany w polu korekta. Bardziej obrazowo pisałem o tym tutaj viewtopic.php?p=171776#p171776

Zrobiłem aktualizację do SuplaDevice GG v7.11.3 i po tym korekty działają także po restarcie sterownika. Lecz jedno mnie zastanawia.
1. Robię korektę temperatury i wilgotności o wartość 10 z poziomu Supla Cloud zapiszę i jest ok. Po restarcie sterownika, w supla cloud nadal jest poprawna korekta, czyli ok. Lecz wchodząc na stronę GUI sterownika tam wartości temperatury i wilgotności są nadal bez korekty. Oraz w polu korekta jest nadal 0. Link do filmu https://drive.google.com/file/d/10KTEyN ... drive_link

2. Robię korektę temperatury i wilgotności o wartość 10 z poziomu GUI sterownika. Zapiszę i korekta jest uwzględniona (widoczna) zarówno z poziomu GUI sterownika jak i supla cloud, czyli ok. Po restarcie nadal jest ok. Link do filmu https://drive.google.com/file/d/1_RNGTC ... drive_link

Tak ma to działać?. Żeby mieć te same wartości temperatury i wilgotności na urządzeniu i supla cloud najlepiej zrobić je z poziomu GUI urządzenia?.
Last edited by edm on Sun Jan 28, 2024 4:30 pm, edited 3 times in total.
Wziąłem udział w Supla Offline Party 2023 :D
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

edm wrote: Sat Jan 27, 2024 2:39 pm Zrobiłem aktualizację do SuplaDevice GG v7.11.3 i po tym korekty działają także po restarcie sterownika. Lecz jedno mnie zastanawia.
1. Robię korektę temperatury i wilgotności o wartość 10 z poziomu Supla Cloud zapiszę i jest ok. Po restarcie sterownika, w supla cloud nadal jest poprawna korekta, czyli ok. Lecz wchodząc na stronę GUI sterownika tam wartości temperatury i wilgotności są nadal bez korekty. Oraz w polu korekta jest nadal 0.
2. Robię korektę temperatury i wilgotności o wartość 10 z poziomu GUI sterownika. Zapiszę i korekta jest uwzględniona (widoczna) zarówno z poziomu GUI sterownika jak i supla cloud, czyli ok. Po restarcie nadal jest ok.
Jesteś tego pewny? Ta wartość teraz jest odczytywana z konfiga przesłanego z cloud.
https://gui-generic-builder.supla.io/
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Nowa instalacja GUI na Wemosie D1 tylko 1 szt. DS18B20. Konfiguracja i rejestracja w Cloud. Korekta wprowadzona w Supla Cloud jest przesłana na ESP i widoczna w konfiguracji WEB-GUI.
Ponowna instalacja z opcją czyszczenia pamięci. Konfiguracja i rejestracja w Cloud. Korekta wprowadzona w WEB-GUI powoduje wyczyszczenie konfiguracji w ESP i przejście Wemosa w tryb konfiguracji. Po połączeniu się z siecią emitowaną przez Wemosa mamy pustą konfigurację.

Ps.
Krystian, w jakim celu jest zrobiona możliwość ustawiania korekty z poziomu WEB-GUI? Nie byłoby prościej, jakby przesyłać do ESP wartość korekty z Cloud, a w WEB-GUI ta wartość byłaby tylko wyświetlana (do odczytu)? A to już działa poprawnie.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Robert Błaszczak wrote: Sat Jan 27, 2024 3:52 pm Krystian, w jakim celu jest zrobiona możliwość ustawiania korekty z poziomu WEB-GUI? Nie byłoby prościej, jakby przesyłać do ESP wartość korekty z Cloud, a w WEB-GUI ta wartość byłaby tylko wyświetlana (do odczytu)? A to już działa poprawnie.
Kiedyś nie było takich bajerów jak dzisiaj i jest to pozostałość sprzed kilku lat. Jak juz pisałem wcześniej, jestem za usunieciem tej możliwości.
https://gui-generic-builder.supla.io/
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

krycha88 wrote: Sat Jan 27, 2024 4:04 pm Kiedyś nie było takich bajerów jak dzisiaj i jest to pozostałość sprzed kilku lat. Jak juz pisałem wcześniej, jestem za usunieciem tej możliwości.
No właśnie pamiętałem, że była na ten temat dyskusja, ale nie pamiętałem Twojego stanowiska w tej kwestii. GUI-Generic to Twoje i @Goral64 dzieło, więc decyzja jest w Waszych rękach / głowach :D .
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl

Return to “GUI Generic”