Prośba o testy

Moderator: vajera

User avatar
vajera
Posts: 7330
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 301 times
Been thanked: 168 times

Post

Przez ostatnie kilka tygodni byłem zajęty gruntowną przebudową kodu bramki, poniżej krótkie podsumowanie:
  • zrezygnowałem z modelu przechowywania danych o kanałach Supla w statycznej tabeli zapisywanej do jednego pliku - zamiast tego każdy kanał jest obecnie zapisywany w oddzielnym pliku a dane są ładowane dynamicznie w momencie tworzenia danego kanału;
    #
  • realizacja powyższego celu wiązała się z wymianą około 30-40% kodu odpowiedzialnego za tworzenie, zapisywanie i udostępnianie danych o kanałach Supla;
    #
  • w związku z powyższym zmienił się również mechanizm wyszukiwania kanału Supla odpowiedzialnego za przyjmowanie danych z konkretnego urządzenia ZigBee - teoretycznie powinno się to przełożyć na zwiększenie szybkości reakcji, aczkolwiek praktycznie mogą to być trudne do zauważenia;
    #
  • cel tych zmian to, przede wszystkim, uelastycznienie kodu bramki pod kątem przyszłych zmian oraz ewentualnego wykorzystania go przy projektowaniu nowych bramek (np. Matter);
    #
  • co zmienia się "na teraz" z punktu widzenia użytkownika:
    • możliwość dynamicznego dodawania i usuwania urządzeń ZigBee i lokalnych kanałów Supla bez konieczności ponownego uruchamiania bramki;
    • bardziej wydajne i oszczędne zarządzanie pamięcią RAM;
    • zwiększenie bezpieczeństwa zapisu danych o kanałach;
    #
  • przy okazji przypomnę, że od jakiego czasu operacje na lokalnych akcjach (dodawanie, usuwanie, edycja - w tym włączanie i wyłączanie) działają w czasie rzeczywistym, co oznacza, że w nowej odsłonie bramki możemy np. usunąć urządzenie ZigBee i związane z nim akcje, dodać nowe urządzenie ZigBee i np. 2 kanały lokalne, zbudować akcje lokalne w oparciu o te kanały i aktywować je - wszystko to bez konieczności ponownego uruchamiania bramki ;)


Teraz pora na tytułową prośbę - przetestowałem te zmiany bardzo szczegółowo, wyłapując wiele błędów, w tym również takie, które ukryły się przed wcześniejszymi audytami kodu. Przeprowadzone zmiany są jednak tak istotne, że nie chcę od razu udostępniać nowej wersji, żeby uniknąć sytuacji "przypadkowej" aktualizacji - zamiast tego chciałbym najpierw poprosić o pomoc kilka osób, które były by chętne do takich testów.

Warunki:
- odrobina wolnego czasu i cierpliwości,
- bramka/bramki do testów - konieczna kopia zapasowa(!),
- możliwość zebrania logów.

Dzisiaj na GitHub pojawi się wersja do testowania - katalog 1.6.0-10.09.26-devel-high-risk - będę czekał na Wasze opinie i uwagi.
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: 7330
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 301 times
Been thanked: 168 times

Post

Update:

zaktualizowałem swoje bramki produkcyjne do 1.6.0-10/09/26 - proces aktualizacji przebiegł płynnie, wszystkie urządzenia i kanały reagują prawidłowo, również proces dodawania nowego urządzenia ZigBee przebiegł bezproblemowo.
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
RomanG
Posts: 1067
Joined: Tue Jul 21, 2020 7:35 am
Has thanked: 30 times
Been thanked: 8 times

Post

Mistrzu Łukaszu! 😉
Ponieważ nie spełniam warunków 😀, więc potestuję nowy soft do bramki Z2S jako tester "zastępczy". :lol:
Zaktualizowałem bramkę (16M) z softem z marca/kwietnia - chyba 1.4.123.
Sparowane było tylko jedno urządzenie - czujnik wibracji (Manufacturer name _TZ32101000000_5oy7cysk).
Dodałem do bramki czujnik otwarcia okna, czujnik zalania i syrenę-alarm Moes.
Wszystko dodało się bardzo szybko, po kolei, bez resetowania bramki. Działanie poszczególnych urządzeń też jest prawie natychmiastowe.
Po kilkudziesięciu minutach różnych prób mogę napisać, że jest ok!
User avatar
RomanG
Posts: 1067
Joined: Tue Jul 21, 2020 7:35 am
Has thanked: 30 times
Been thanked: 8 times

Post

Dodam jeszcze (sorry za kolejne posty), że w clud-zie utworzyłem dwie reakcje na czujniku otwarcia okna, które załączały/wyłączały alarm. Reakcja jest natychmiastowa; poniżej 0,5s.😀
Chciałem to zrobić na "Local actions" w Z2S, ale nie ma wyboru jakiegokolwiek kanału urządzenia "syrena-alarm". Chyba już "wypadłem z obiegu" skoro nie wiem, że tego zrobić nie można. :cry:
bokk
Posts: 733
Joined: Fri Mar 01, 2019 4:26 am
Has thanked: 8 times
Been thanked: 28 times

Post

Nie mając wolnej bramki na której mógłbym wykonać testy postanowiłem zaktualizować swoje bramki produkcyjne (wersja bez logów) z 1.5.164.
Nauczony wcześniejszymi przygodami przy aktualizacji OTA przed aktualizacją zrestartowałem bramki w supla cloud. Aktualizacja przebiegła bezproblemowo, na wszystkich bramkach pojawiła się wersja 1.6.1.
Bramka 1 - 25 urządzeń/ 51 kanałów
Bramka 2 - 22 urządzenia/ 47 kanałów
Bramka 3 - 11 urządzeń/ 21 kanałów
ale pojawił się problem. Urządzenia Sonoff np. SONOFF::ZBMINIL2 które miały zapisane keepalive i timeout mają obecnie 0 i nie działają.

Po usupełnieniu keepalive na 60 i timeout na 90 funkcjonalność urządzeń powróciła.

Edit.
A nie można by tych parametrów na stałe zapisać dla takich urządzeń. Zauważyłem że BUTTON ma ustawione zawsze na 100.
User avatar
vajera
Posts: 7330
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 301 times
Been thanked: 168 times

Post

RomanG wrote: Thu Sep 10, 2026 8:41 pm Dodam jeszcze (sorry za kolejne posty), że w clud-zie utworzyłem dwie reakcje na czujniku otwarcia okna, które załączały/wyłączały alarm. Reakcja jest natychmiastowa; poniżej 0,5s.😀
Chciałem to zrobić na "Local actions" w Z2S, ale nie ma wyboru jakiegokolwiek kanału urządzenia "syrena-alarm". Chyba już "wypadłem z obiegu" skoro nie wiem, że tego zrobić nie można. :cry:
Jaki model syreny masz w bramce?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Beholder
Posts: 101
Joined: Wed Jul 19, 2023 2:47 pm
Has thanked: 7 times
Been thanked: 2 times

Post

bokk wrote: Thu Sep 10, 2026 10:52 pm ale pojawił się problem. Urządzenia Sonoff np. SONOFF::ZBMINIL2 które miały zapisane keepalive i timeout mają obecnie 0 i nie działają.

Po usupełnieniu keepalive na 60 i timeout na 90 funkcjonalność urządzeń powróciła.
Potwierdzam błąd z keepalive przy ustawionym wcześniej zeruje się czas i wysyła komendę jak w logu.
Migracja Z2S Gateway z wersji Z2S-1.5.163-30/08/26 do wersji Z2S-1.6.1-11/09/26 przez OTA 28 kanałów.

Code: Select all

[155712][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[155712][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[155946][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[155946][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156180][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156180][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156415][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156415][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156650][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156650][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156890][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156890][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157124][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157124][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157359][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157360][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157595][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157595][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157829][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157829][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158063][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158063][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158297][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158297][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158531][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158531][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158766][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158766][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159005][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159005][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159240][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159240][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159474][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159474][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159710][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159710][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159944][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159944][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160178][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160179][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160413][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160413][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160647][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160648][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160883][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160883][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161122][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161122][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161356][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161357][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161591][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161591][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161826][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161826][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[162060][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[162060][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[162294][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[162295][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[162529][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
User avatar
RomanG
Posts: 1067
Joined: Tue Jul 21, 2020 7:35 am
Has thanked: 30 times
Been thanked: 8 times

Post

vajera wrote: Fri Sep 11, 2026 5:30 am Jaki model syreny masz w bramce?
Skopiowałem z zakładki "ZigBee devices"; Manufacturer name _TZE204_t1blo2bj | model ID TS0601 .
Skoro pytasz to rozumiem, że "syrena" powinna się pojawić w "lokalnych akcjach". Byłaby to fajna opcja, ale przy obecnej funkcjonalności tej syreny (jej obsługa-zmiana parametrów) - jednak mocno ograniczona. Może kiedyś pojawi się bezpośredni wybór konkretnych parametrów działania tej syreny. ;)
User avatar
vajera
Posts: 7330
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 301 times
Been thanked: 168 times

Post

Beholder wrote: Fri Sep 11, 2026 7:57 am
bokk wrote: Thu Sep 10, 2026 10:52 pm ale pojawił się problem. Urządzenia Sonoff np. SONOFF::ZBMINIL2 które miały zapisane keepalive i timeout mają obecnie 0 i nie działają.

Po usupełnieniu keepalive na 60 i timeout na 90 funkcjonalność urządzeń powróciła.
Potwierdzam błąd z keepalive przy ustawionym wcześniej zeruje się czas i wysyła komendę jak w logu.
Migracja Z2S Gateway z wersji Z2S-1.5.163-30/08/26 do wersji Z2S-1.6.1-11/09/26 przez OTA 28 kanałów.

Code: Select all

[155712][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[155712][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[155946][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[155946][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156180][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156180][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156415][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156415][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156650][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156650][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[156890][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[156890][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157124][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157124][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157359][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157360][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157595][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157595][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[157829][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[157829][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158063][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158063][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158297][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158297][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158531][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158531][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[158766][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[158766][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159005][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159005][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159240][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159240][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159474][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159474][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159710][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159710][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[159944][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[159944][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160178][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160179][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160413][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160413][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160647][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160648][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[160883][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[160883][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161122][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161122][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161356][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161357][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161591][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161591][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[161826][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[161826][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[162060][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[162060][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[162294][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
[162295][I][ZigbeeGateway.cpp:1964] sendAttributeRead(): Sending 'read attribute' command
[162529][I][ZigbeeGateway.cpp:1937] sendAttributeRead(): short_addr = 0x447A
Potwierdzam - dokładnie rzecz ujmując bramka dzieli te wartości przez 1000, co przy wartościach < 1000 daje zero - wynika to, z tego, że zmieniłem wewnętrzny format przechowywania tych czasów (z [s] na [ms]. Wersja 1.6.2-11/09/26 poprawia ten błąd na etapie konwersji poprzedniej wersji bazy.
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: 7330
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 301 times
Been thanked: 168 times

Post

RomanG wrote: Fri Sep 11, 2026 8:18 am Skopiowałem z zakładki "ZigBee devices"; Manufacturer name _TZE204_t1blo2bj | model ID TS0601 .
Skoro pytasz to rozumiem, że "syrena" powinna się pojawić w "lokalnych akcjach". Byłaby to fajna opcja, ale przy obecnej funkcjonalności tej syreny (jej obsługa-zmiana parametrów) - jednak mocno ograniczona. Może kiedyś pojawi się bezpośredni wybór konkretnych parametrów działania tej syreny. ;)
Ten model identyfikuje się jako Z2S_DEVICE_DESC_MOES_ALARM:

1. powinien dodać się m.in. przekaźnik ALARM SWITCH, który włącza/wyłącza syrenę - potwierdasz?
2. Jeżeli tak, to ten przekaźnik powinien być również dostępny w lokalnych akcjach i reagować na akcje TURN_ON/TURN_OFF - potwierdzasz?
3.
Może kiedyś pojawi się bezpośredni wybór konkretnych parametrów działania tej syreny. ;)
A widziałeś zakładkę Advanced Devices w GUI - jest tam od ponad roku? :twisted:
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277

Return to “Bramka ZigBee”