- 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.
