[Błąd-naprawiony] Zmiana nazwy kanału w GUI nadpisuje funkcję kanału Supla [bramka ZigBee]

Moderator: vajera

User avatar
vajera
Posts: 7293
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 291 times
Been thanked: 161 times

Post

UWAGA

Nasz klubowy łowca błędów @LukiSpajder przyczynił się do wykrycia błędu, który jest w bramce praktycznie od początku wprowadzenia funkcji zmiany nazwy kanału Supla z poziomu GUI :(

Błąd w kodzie powodował, że każda zmiana nazwy kanału (niezależnie od długości nowej nazwy) nadpisywała pole przechowujące wartość funkcji kanału Supla, które później było używane do inicjalizacji kanału po ponownym uruchomieniu bramki.

W praktyce ten błąd nie powodował zbyt wielu problemów, ponieważ ta wartość była zwykle używana tylko przy ustawianiu początkowej funkcji kanału (setDefaultFunction()) i jej późniejsza zmiana nie wpływała już na ustawienia na serwerze.

Jedyny wyjątek stanowił kanał przekaźnika z funkcją rolety - tutaj bramka wykorzystywała to pole do ustalenia czy utworzyć obiekt Z2S_VirtualRelay czy też Z2S_RollerShutter, co powodowało błąd w sterowaniu urządzeniem z poziomu aplikacji.

Niemniej błąd był poważny i mógł w przyszłości doprowadzić do innych konsekwencji, więc kudos @LukiSpajder!

Poprawka w wersji 1.4.53-26/02/26.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7293
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 291 times
Been thanked: 161 times

Post

@LukiSpajder znalazł kolejny błąd związany z nazwą kanału oraz urządzenia, więc opisuję go w tym wątku.

Poprzedni problem został rozwiązany poprzez odpowiednie skracanie wpisanej nazwy do 31 znaków (kanał Supla) lub 35 znaków (urządzenie Zigbee), co w teorii powinno w 100% zabezpieczać przed efektem nadpisania innych danych w pamięci - i tak rzeczywiście jest.

Problem odkryty przez Łukasza dotyczy natomiast kombinacji polskich (lub innych niestandardowych) znaków, długości nazwy oraz samego GUI.

Przykład - użytkownik wpisał nazwę "zażółć gęślą jaźń, zażółć gęślą jaźń" - długość tego łańcucha znaków przekracza 31, więc bramka obcina go do 31 i rozpoczyna się nieskończona pętla restartów GUI przy absolutnie prawidłowej pracy bramki.
Powód - polskie znaki są kodowane w standardzie UTF8 (na każdy znak 2 bajty), ucięcie tego akurat łańcucha znaków akurat na 31 bajcie przecina kodowanie UFT8 w samym środku i chociaż tak okaleczony łańcuch znaków nie spowoduje zaburzeń pracy bramki, to wysłany do przeglądarki WWW wywoła jej wewnętrzny błąd.

Wersja 1.4.70-03/03/26 rozwiązuje ten problem - można wpisać nazwę nawet alfabetem chińskim ;) Ta wersja naprawia również kanał o nieprawidłowej nazwie, więc jak ktoś ma ochotę na eksperyment, to może we wcześniejszej wersji wkleić powyższą nazwę - wgranie 1.4.70-03/03/26 powinno uzdrowić restarty GUI.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
lukasz06
Posts: 2543
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 46 times
Been thanked: 21 times

Post

Pajączek dobrze rozpoznał sieć Zigbee :)
LukiSpajder
Posts: 1548
Joined: Tue Aug 18, 2020 2:22 pm
Has thanked: 25 times
Been thanked: 34 times

Post

lukasz06 wrote: Tue Mar 03, 2026 2:44 pm Pajączek dobrze rozpoznał sieć Zigbee :)
Dokładnie tworzę pajęczą sieć Zigbee w domu
😁😁😁😁😉
LukiSpajder
Posts: 1548
Joined: Tue Aug 18, 2020 2:22 pm
Has thanked: 25 times
Been thanked: 34 times

Post

Przypadkiem wczoraj stałem się posiadaczem bramki z takimi objawami , a że to bramka produkcyjna i tylko GUI się resetowało a reszta działała poprawnie. Tak więc zostawiłem ją w spokoju.

Po aktualizacji do ver.1.4.70 potwierdzam prawidłowe działanie co prawda język chiński nie został sprawdzony ;)

Return to “Bramka ZigBee”