GOSUND sp111 awaria działania

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

Post

DoktorPio wrote: Fri Feb 02, 2024 6:07 am Ja mam ESP12 X4 przekaźniki. Z podłączonym licznikiem PZEM. Wcześniej miałem wsad na GG w wersji której nie mogę teraz określić ale była zapewne to wcześniejszą wersja jak 7.11.9. Po ostatnich aktualizacjach od wersji GG 7.11.9 do 7.9.13. Układ ładnie działa z czujnikami DS. DHT funkcjami termostatu warunkowania. Ale jak włączę licznik energii to zaczynają się restartu co kilka kilkanaście minut 😕 No to wygenerowałem nowy skromny wsad tylko z DSamii i licznikiem energii. I niestety to samo restarty co kilka kilkanaście minut. W jakim kierunku to zmierza im nowsza wersja GG tym gorzej 😭
Napisałem 2 posty wyżej gdzie jest problem i nawet propozycję rozwiązania problemu. Ale musicie chwilę poczekać aż to zrobię.
https://gui-generic-builder.supla.io/
User avatar
DoktorPio
Posts: 35
Joined: Thu Apr 21, 2022 7:41 pm

Post

krycha88 wrote: Fri Feb 02, 2024 6:24 am Napisałem 2 posty wyżej gdzie jest problem i nawet propozycję rozwiązania problemu. Ale musicie chwilę poczekać aż to zrobię.
A to nie doczytałem uważnie 🙂 przepraszam za zaśmiecania tematu 😉
User avatar
RomanG
Posts: 1060
Joined: Tue Jul 21, 2020 7:35 am
Has thanked: 26 times
Been thanked: 7 times

Post

Nie wiem, czy informacja może się przydać, ale przed chwilą na testowym generatorze pobrałem soft (7.12.0) z zaznaczeniem dosyć sporo funkcji, ale bez dostepu przez WWW ("Dostępne GUI podczas pracy modułu" odznaczone).
Ustawiłem tylko PZEM-a i od kilkunastu minut działa prawidłowo. Wcześniej na bardzo okrojonym sofcie (PZEM i DS, ustawiony tylko PZEM) resetowało po 2-3 minutach.
karnasw
Posts: 215
Joined: Fri Oct 02, 2020 10:22 am

Post

krycha88 napisał (czw lut 01, 2024 9:41 pm), że w teście zmienił na starą biliotekę supla. GUI dostępne podczas pracy nie ma tu raczej znaczenia.
User avatar
RomanG
Posts: 1060
Joined: Tue Jul 21, 2020 7:35 am
Has thanked: 26 times
Been thanked: 7 times

Post

Sorry! Przeczytałem, ale bez zrozumienia. :(
Próbowałem zainstalować soft z opcją bez dostępu po WWW, bo miałem na którejś wersji przypadek, że po "wejściu po IP" kontroler się restartował. Restart następował także po odświeżeniu strony urządzenia, stąd moje próby.
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Wróciłem już wszędzie do starych biblioteki z listopada. W aktualnej bibliotece są jakieś niekontrolowane wycieki pamięci oraz niezrozumiały jak dla mnie przyrost binarki :) co z tym dalej zrobimy to zobaczymy ale, żeby skorzystać kiedyś z kanału KPOP będzie trzeba coś z tym zrobić.
https://gui-generic-builder.supla.io/
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

krycha88 wrote: Thu Feb 01, 2024 8:41 pm Postanowiłem nie brnąć w szukanie przyczyny a tylko podmieniłem w źródłach na starą bibliotekę supla-device-23.10.1

Na dzień dobry mam 5kB więcej ramu więc jest to ogromna różnica w porównaniu do aktualnej wersji- bez włączonego SSLa 20kB. Urządzenie też mi się nie zrestartowało od 20min..

Zauważyłem jeszcze jedna niepokojąca rzecz, na najnowszej bibliotece binarka waży o 33kB więcej co dla takiego gniazdka daje tylko 10kB zapasu na aktualizację. Przygodę zaczynaliśmy na 500kB teraz już mamy 633kB. Niestety ale wygląda, że wsparcie powoli się kończy dla tego typu urządzeń ;)

Ale nie marudząc więcej przetestujcię wersję z testa. W załączniku wygenerowalem soft z
https://gui-generic-builder.supla.io/test.php

Prawdopodobnie jak zadziała to powrócę do wersji biblioteki w której jakoś działa termostat.
Sprawdzam od rana ten temat i jak na razie na prostym przykładzie "WebInterface" mam na nowej bibliotece około 1 kB RAMu mniej dostępnego niż na 23.10.01.
Kolejne 3 kB były zjadane przy połączeniu SSL z walidacją certyfikatów. Tutaj wycofuję jedną zmianę, bo te 3 kB są potrzebne tylko przy nawiązywaniu połączenia, a potem już nie.

Sprawdzałem też czy w runtime coś zjada pamięć i na gołej supla-device na WebInterface i na urządzeniach z EM, nic nie zjada dodatkowej pamięci. Także na chwilę obecną nie znalazłem "cieknięcia" po stronei supla-device.

Natomiast nieco większe zużycie pamięci wynika z ciągłej rozbudowy różnych klas (Relay, Button, ChannelElement). Przykładowo:
Na 24.01:
12:24:29.888 -> SIZE OF RollerShutter: 92
12:24:29.888 -> SIZE OF Relay: 96
12:24:29.888 -> SIZE OF ActionTrigger: 68
12:24:29.888 -> SIZE OF Button: 88

Na 23.10.01:
12:27:01.981 -> SIZE OF RollerShutter: 84
12:27:01.981 -> SIZE OF Relay: 84
12:27:01.981 -> SIZE OF ActionTrigger: 68
12:27:02.014 -> SIZE OF Button: 76

Poza tym, każde wywołanie "addAction" allokuje jeden obiekt. Wcześniej identyfikatory eventId i actionId były na uint8, a teraz są na uint16, więc każde wywołanie to 2 B więcej na nowszej bibliotece.

Jeszcze kilka liczb - na przykładzie WebInterface, po nawiązaniu połączenia mamy wolnej pamięci:
24.01 bez SSL: 23128
23.10.01 bez SSL: 24136
24.01 z SSL: 11224 (po poprawce, o której wspomniałem wcześniej)
23.10.01 z SSL: 12232

Poszukam jeszcze trochę oszczędności.

Co do rozmiaru softu, to ogólnie kompilator i linker potrafią dużo wyciąć, o ile uznają, że kod jest nieużywany. Nie wiem jak masz te flagi do kompilacji komponentów zrobione, ale jeśli w kodzie jest np.

Code: Select all

hvac[i] = new Supla::Control::Hvac(...);
To linker będzie musiał dorzucić całą implementację Hvac, bo istnienie tych obiektów zależy od konfiguracji urządzenia (czyli od wartości jakichś zmiennych, które nie są znane w trakcie kompilacji).
Jeśli natomiast wszystkie odniesienia do Hvac będą w ifdef'ach, to linker cały kod Hvac wywali, bo będzie wiedział, że jest nieużywany.

Pod kątem oszczędności na flashu, to wg mnie najłatwiej jest wyciąć wszystkie logi. W supla-device wystarczy tam kilka define dostawić do kompilacji i śladu po logach nie będzie.
Najlepsze suple dla Twojego domu :mrgreen:
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

Ok, czasem wystarczy kolejność zmiennych w klasach poprzestawiać, aby zyskać grube bajty :)

Pozmieniałem też niektóre typy z int32 na int16 lub int8, jeśli tyle powinno wystarczyć.

Aktualnie podane wcześniej przykłady wyglądają tak:
14:56:57.516 -> SIZE OF RollerShutter: 72
14:56:57.516 -> SIZE OF Relay: 68
14:56:57.516 -> SIZE OF ActionTrigger: 56
14:56:57.516 -> SIZE OF Button: 64

Powyższe zajmują więc mniej miejsca niż na 23.10.01. Prawie wszystkie klasy udało mi się zmniejszyć.
Duże zyski są dla EM, tam z ~1200 zeszliśmy na 520 B.
W dimmerach/rgb/rgbw też udało się kilkadziesiąt B zejść.

Myślę, że jeszcze ze 3-4 kB jestem w stanie w miarę prosto odzyskać.

Obecnie ilość wolnej pamięci po zarejestrowaniu na serwerze z SSL na WebInterface: 11400.
Także na tym niewielkim programie jest +180 B wolnej pamięci. Nadal pamięci jest trochę mniej niż w 23.10.01, ale im więcej kanałów będzie w programie, tym zysk z powyższych zmian będzie większy na korzyść nowszej wersji.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

@klew dzięki wielkie za pomoc i szybka reakcje. Dzisiaj wrzucę twoje zmiany najpierw na builda testowego aby nie było takiej wtopy jak ostatnio ;) Mam nadzieję, że znajdzie się kilku chętnych testerów na przetestowanie w końcu weekend przed nami :)
https://gui-generic-builder.supla.io/
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

krycha88 wrote: Fri Feb 02, 2024 2:38 pm @klew dzięki wielkie za pomoc i szybka reakcje. Dzisiaj wrzucę twoje zmiany najpierw na builda testowego aby nie było takiej wtopy jak ostatnio ;) Mam nadzieję, że znajdzie się kilku chętnych testerów na przetestowanie w końcu weekend przed nami :)
Ja jak wrzuciłem soft z GG gosund na wemosa, to widziałem że pamięci ubywało, więc coś cieknie. Podejrzewam że w GG :D
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Ogólna dyskusja”