21 października 2026 ukazało się zigpy 2.4.0, czyli nowa wersja biblioteki Zigbee, na której działa integracja ZHA w Home Assistancie. Użytkowników ZHA dotyczą dwie zmiany: biblioteka zbiera zapisy do bazy danych i zatwierdza je hurtem, a do tego ma już działającą obsługę Green Power, czyli tej części standardu Zigbee, z której korzystają przełączniki bez baterii. Do Home Assistanta żadna z nich nie trafi, dopóki ZHA nie przejdzie na nowe zigpy. Najnowsze wydanie biblioteki ZHA to 2.3.1 z 9 października.
Rzadsze zapisy do bazy
Do tej pory zigpy zatwierdzało zapis w bazie SQLite niemal po każdym zdarzeniu: po odczycie atrybutu, zmianie stanu czy aktualizacji czasu ostatniej aktywności urządzenia. W ruchliwej sieci z gniazdkami, które bez przerwy raportują pobór mocy, oznaczało to zapis do dziennika SQLite mniej więcej co sekundę.
Wersja 2.4.0 wprowadza ustawienie database_commit_interval, domyślnie 30 sekund. Zapisy wykonują się po kolei jak dawniej, ale zatwierdzenie czeka na upływ tego czasu. Od razu trafiają na dysk tylko zdarzenia, które nie mogą czekać: kopie zapasowe sieci, parowanie i usuwanie urządzeń, zmiany adresów sieciowych i zmiany grup. Przy zamykaniu programu zaległe zmiany też są zapisywane, a wartość 0 przywraca dawne zatwierdzanie po każdym zdarzeniu.
Twórcy uczciwie mówią, ile to kosztuje. Po twardej awarii albo zaniku zasilania może przepaść do 30 sekund danych o atrybutach, ostatniej aktywności i topologii sieci. Parowania i kopii zapasowych to nie dotyczy, bo zapisują się bez opóźnienia. Poprawka w tym samym wydaniu pilnuje też, żeby ponowne odpytanie urządzenia nie wymuszało zatwierdzenia w połowie innego zapisu.
Green Power sześć lat po pierwszej prośbie
Urządzenia Green Power to przełączniki Zigbee zasilane energią samego naciśnięcia przycisku, takie jak Philips Hue Tap. Prośba o ich obsługę w zigpy czeka od marca 2020. Warstwa odczytu (typy ramek i szyfrowanie) trafiła do kodu w lipcu, a wersja 2.4.0 dokłada resztę:
- menedżer Green Power, który zajmuje się dodawaniem i parowaniem urządzeń oraz obsługą przychodzących pakietów;
- model urządzenia Green Power i tablicę pośredników;
- przechwytywanie ramek Green Power w punkcie końcowym 242, w klastrze
0x0021, oraz wywołaniepermit_gp, które otwiera dla nich sieć.
Dodane urządzenia Green Power trafiają do bazy SQLite (schemat w wersji 16, nowa tabela gp_devices), więc przetrwają ponowne uruchomienie. Licznik ramek zapisuje się przy każdym naciśnięciu, a nie tylko przy parowaniu, dzięki czemu nadal działa ochrona przed powtórnym wysłaniem przechwyconych pakietów.
W tym wydaniu nie ma jeszcze definicji dla konkretnych urządzeń Green Power, bo cały mechanizm takich definicji jest właśnie przebudowywany. Nie wiadomo też, kiedy ZHA zacznie korzystać z nowego kodu.
Drobniejsze poprawki
- Jeśli ustawisz lokalną strefę czasową, klaster czasu zacznie podawać początek i koniec czasu letniego oraz przesunięcie. Bez strefy zigpy nie zna dat zmiany czasu i nie ustawia już flagi
Master_for_Zone_and_DST. - Okresowe skanowanie topologii zatrzymuje się prawidłowo, nawet gdy zamknięcie programu wypadnie w trakcie zaplanowanego skanu.
- Wyjątek w jednym odbiorniku zdarzeń nie psuje już pozostałych.