Kłopoty z Zigbee w Home Assistancie zwykle wyglądają jak usterki pojedynczych urządzeń. Czujnik nie chce się sparować, pilot reaguje z sekundowym opóźnieniem, czujnik ruchu co kilka dni znika z sieci. Dokumentacja Home Assistanta wskazuje jednak, że źródło wielu takich problemów leży gdzie indziej: w przestarzałym koordynatorze albo starym oprogramowaniu, w zakłóceniach w miejscu, gdzie wpięto adapter, i w sieci kratowej, w której jest za mało routerów.

Ten poradnik opiera się na zaleceniach z dokumentacji integracji ZHA w Home Assistancie i z dokumentacji Zigbee2MQTT. Kolejność rozdziałów odpowiada mniej więcej temu, czym zajmiesz się przy budowie nowej sieci albo naprawianiu takiej, która działa z przerwami. Większość wskazówek przyda ci się niezależnie od tego, którego z tych dwóch rozwiązań używasz.

Z czego składa się sieć Zigbee

W sieci są trzy rodzaje urządzeń:

  • Koordynator to adapter radiowy podłączony do komputera, na którym działa Home Assistant. W sieci jest dokładnie jeden.
  • Routery to w Zigbee urządzenia zasilane z sieci elektrycznej, na przykład inteligentne gniazdka, wiele żarówek i część włączników ściennych. Przekazują wiadomości innych urządzeń dalej.
  • Urządzenia końcowe to najczęściej czujniki i piloty na baterie. Większość czasu śpią i komunikują się przez urządzenie nadrzędne, czyli koordynator albo router.

Zigbee to sieć kratowa, więc zasięg i pojemność biorą się z routerów, a nie z mocniejszego koordynatora. Dokumentacja ZHA mówi to wprost: zdrowa sieć potrzebuje wielu routerów rozmieszczonych stosunkowo blisko siebie.

Istnieje też twardy limit urządzeń, które mogą połączyć się bezpośrednio z koordynatorem. Biblioteka zigpy, na której opiera się ZHA, dopuszcza 32 takie urządzenia. Brzmi to skromnie, ale urządzenia podłączone przez routery się do tego limitu nie wliczają, więc w całej sieci może ich być kilkaset. Oprogramowanie koordynatorów wprowadza takie ograniczenia między innymi po to, żeby sieć szybko przyjęła układ kratowy, a nie gwiazdę, w której wszystko wisi na koordynatorze.

Wybierz nowoczesny koordynator

Do ZHA dokumentacja Home Assistanta poleca każdemu, kto zakłada nową sieć, adapter Home Assistant Connect ZBT-2. Jego oprogramowanie rozwija zespół Home Assistanta odpowiedzialny za Zigbee i można je aktualizować z poziomu Home Assistanta. Starszy Connect ZBT-1 nie jest już produkowany, ale wciąż ma pełne wsparcie. Home Assistant Green nie ma własnego radia Zigbee, więc też potrzebuje osobnego adaptera.

Inne adaptery, które dokumentacja ZHA wymienia jako sprawdzone i dobrze działające:

  • z układami Silicon Labs: Sonoff Zigbee 3.0 USB Dongle Plus „ZBDongle-E” (EFR32MG21) i SMLIGHT SLZB-07;
  • z układami Texas Instruments: adaptery z CC2652P, CC2652R, CC2652RB, CC1352P i CC1352R z wgranym oprogramowaniem koordynatora Z-Stack;
  • od dresden elektronik: ConBee III.

Równie ważne jest to, czego unikać. Dokumentacja ZHA nie zaleca już adapterów z CC2530 i CC2531, bo działają tylko na bardzo starym oprogramowaniu, którego nikt już nie rozwija. Przewodnik Zigbee2MQTT o stabilności sieci też wymienia CC2530 i CC2531 jako układy, które sprawują się słabo. Jeśli wciąż masz taki adapter, oba projekty doradzają to samo: wymień go.

Jeśli zamierzasz używać Zigbee2MQTT, zajrzyj najpierw na jego listę obsługiwanych adapterów. Dzieli ona sprzęt według stosu oprogramowania na zalecany (zStack od Texas Instruments, EmberZNet od Silicon Labs i deCONZ), niezalecany, nierozwijany (ZiGate) i eksperymentalny (ZBOSS). Zaznacza też, że przed użyciem trzeba wgrać do adaptera oprogramowanie koordynatora, choć niektóre mają je już fabrycznie. Kopię zapasową koordynatora w Zigbee2MQTT obsługują na razie tylko adaptery ze stosem zStack i EmberZNet.

Podłącz koordynator lokalnie i po kablu

Koordynator rozmawia z Home Assistantem przez protokół szeregowy. Dokumentacja ZHA wyjaśnia, że ten protokół nie radzi sobie z utratą pakietów i opóźnieniami na niestabilnym łączu, i odradza podłączanie koordynatora przez mostek szeregowy-IP działający po Wi-Fi, przez internet czy VPN. Zigbee2MQTT ostrzega tak samo przed Wi-Fi i radzi, żeby w razie braku lokalnego adaptera USB wybrać koordynator sieciowy podłączony przez Ethernet.

Wybierasz więc między adapterem USB wpiętym w komputer z Home Assistantem a koordynatorem sieciowym na kablu. Mostek przez Wi-Fi odpada.

Ustawienie adaptera, czyli najtańsza poprawka

Przewodnik Zigbee2MQTT o stabilności ostrzega, żeby tego nie lekceważyć, a poprawka rzadko kosztuje więcej niż przedłużacz USB.

  • Użyj przedłużacza USB. Adapter wpięty prosto w komputer albo Raspberry Pi łapie zakłócenia z samego urządzenia. Według Zigbee2MQTT już 50 cm przewodu wystarczy, żeby je zmniejszyć, a oba projekty zalecają przewód ekranowany. Dokumentacja ZHA dodaje, że grubsze przewody mają zwykle lepsze ekranowanie.
  • Wybierz port USB 2.0. Porty USB 3.x, urządzenia USB 3.x i nieekranowane przewody to znane źródła zakłóceń w paśmie 2,4 GHz. Jeśli komputer ma tylko porty USB 3.x, dokumentacja ZHA radzi podłączyć adapter przez zasilany koncentrator USB 2.0. Zigbee2MQTT dodaje, że adapter tuż przy porcie USB albo HDMI może całkowicie stracić sygnał, i ostrzega przed umieszczaniem go blisko dysku SSD.
  • Odsuń go od sprzętu Wi-Fi, zasilaczy i urządzeń AGD. Dotyczy to także routera Wi-Fi i punktów dostępowych.
  • Postaw go możliwie blisko środka domu, z dala od ścian, podłogi i sufitu, na ile się da.
  • Sprawdź różne położenia. Oba projekty zwracają uwagę, że samo obrócenie adaptera albo jego anteny potrafi wyraźnie zmienić jakość połączeń bez przenoszenia go w inne miejsce. Z przedłużaczem łatwo to przetestować.

Jeśli koordynator jest wbudowany w komputer, dokumentacja ZHA ostrzega, że metalowa obudowa może pogorszyć jego działanie.

Nie zmieniaj kanału, zacznij od Wi-Fi

Zigbee korzysta z kanałów od 11 do 26, wszystkich w paśmie 2,4 GHz, które dzieli z Wi-Fi. Dobra praktyka według dokumentacji ZHA to zostawić kanał domyślny. Jeśli już go zmieniasz, ogólne zalecenie to kanał 15, 20 albo 25: rzadziej nakładają się na Wi-Fi, a poza tym nie każde urządzenie Zigbee obsługuje wszystkie kanały.

Gdy Wi-Fi i Zigbee rzeczywiście sobie przeszkadzają, dokumentacja ZHA radzi najpierw ustawić stały kanał na routerze Wi-Fi albo punktach dostępowych, a dopiero potem ruszać Zigbee. Jeśli mimo to zdecydujesz się zmienić kanał Zigbee, ZHA ma w informacjach o sieci („Settings > Connectivity > Zigbee > Network information”) opcję „Smart”, która raz skanuje wszystkie kanały i wybiera najlepszy, z preferencją dla 15, 20 i 25. Później już nie pilnuje kanałów. Przejście wszystkich urządzeń na nowy kanał może potrwać do godziny, a jeśli na chwilę odłączysz zasilanie urządzeń końcowych, pójdzie szybciej. W Zigbee2MQTT kanał ustawia się w pliku configuration.yaml, a dokumentacja ostrzega, że po zmianie część urządzeń trzeba będzie sparować od nowa.

Wi-Fi to niejedyny sąsiad w tym paśmie. Zigbee2MQTT wymienia Bluetooth, bezprzewodowe odbiorniki myszy i klawiatur do gier oraz bezprzewodowe nadajniki audio. Zwraca też uwagę, że drugi system Zigbee, na przykład stary mostek Philips Hue, powinien albo przekazać żarówki do głównej sieci, albo działać na innym kanale.

Najpierw routery, potem czujniki

Kolejność budowania sieci ma znaczenie. Według zaleceń ZHA zacznij od urządzeń zasilanych z gniazdka, a dopiero potem dodawaj te na baterie. Gdy routery już działają, nowy czujnik ma się do czego podłączyć w pobliżu.

To, czy router pomaga, czy szkodzi, zależy od kilku szczegółów:

  • Router musi mieć stałe zasilanie. Żarówka wyłączona włącznikiem ściennym przestaje przekazywać wiadomości, a urządzenia, które z niej korzystały, muszą szukać innej drogi. Dokumentacja ZHA mówi wprost, że routery nie powinny być często odłączane od prądu.
  • Nie każde urządzenie z gniazdka jest routerem. Według Zigbee2MQTT routerem jest prawie każde urządzenie zasilane z sieci, z wyjątkiem większości przekaźników, które nie wymagają przewodu neutralnego.
  • Routery różnią się jakością. Jedne przekazują wiadomości znacznie lepiej od innych. Zigbee2MQTT podaje jako przykład słabego routera niektóre wersje gniazdka Sonoff S26R2ZB i pisze, że urządzenia AwoX są znane z tego, że powodują problemy w sieci. ZHA wymienia urządzenia Xiaomi i Aqara jako niewspółpracujące z routerami kilku marek, między innymi Ledvance/OSRAM i SmartThings, i jako lepszy wybór wskazuje urządzenia IKEA zasilane z sieci albo routery zbudowane samodzielnie.
  • Zapasowy adapter może zostać routerem. Niektóre adaptery koordynatorów mają też oprogramowanie routera. Dostajesz wtedy osobny, zawsze włączony router, który postawisz tam, gdzie sieć jest najsłabsza.

Paruj urządzenia tam, gdzie będą działać

Nowe urządzenie paruj w miejscu, w którym ma docelowo zostać. Dokumentacja ZHA ostrzega, że jeśli sparujesz je obok koordynatora i dopiero potem przeniesiesz, jego połączenie może być gorsze.

Inne rady z tej samej strony:

  • Urządzenie, które było kiedyś sparowane z inną siecią, zwykle trzeba najpierw przywrócić do ustawień fabrycznych.
  • Słaba bateria w niektórych urządzeniach uniemożliwia parowanie. Część użytkowników rozwiązała problem, wymieniając baterię w nowo kupionym czujniku Xiaomi albo Aqara.
  • Niektóre urządzenia wymagają kilku prób. W przypadku Xiaomi i Aqara, które nie trzymają się w pełni standardu, dokumentacja wspomina o próbach trwających 10-20 minut albo dłużej.

Ostrożnie z mapą sieci

Mapa sieci w ZHA („Settings > Connectivity > Zigbee > Show map”) pokazuje połączenia między urządzeniami razem z wartościami RSSI i LQI. Przyda się do znalezienia urządzeń ze słabym połączeniem, ale nie wyciągaj z niej zbyt daleko idących wniosków.

  • Brak połączeń przy urządzeniach na baterie jest normalny. Uśpione urządzenia końcowe często znikają z tablicy urządzeń podrzędnych routera przez mechanizm Zigbee 3.0 zwany starzeniem się urządzeń podrzędnych, a mimo to dalej działają. Jeśli urządzenie wciąż zgłasza zmiany stanu, jest połączone.
  • RSSI łatwiej zinterpretować. Według dokumentacji ZHA wartości od -60 dBm w górę oznaczają silny sygnał i bardzo małe ryzyko utraty wiadomości, a wartości od -80 dBm w dół świadczą o zaszumionym otoczeniu, w którym wiadomości mogą ginąć. Pomiar dotyczy pierwszego przeskoku, czyli często routera, a nie koordynatora.
  • Wskaźnika LQI nie da się porównywać między producentami. Specyfikacje Zigbee i IEEE 802.15.4 nie określają, jak go mierzyć. Traktuj go jako jedną z kilku wskazówek, oceniaj razem z RSSI i nie wyciągaj z niego ostatecznych wniosków.

Zrób kopię zapasową, zanim będzie potrzebna

ZHA automatycznie tworzy kopie zapasowe sieci Zigbee, a ręczną kopię możesz zrobić na stronie konfiguracji. Dzięki niej przeniesiesz sieć na nowy koordynator bez parowania wszystkiego od nowa: w ustawieniach Zigbee („Settings > Connectivity > Zigbee”) wybierz migrację („Migrate”), podłącz nowy adapter i przejdź przez kolejne kroki. Przenoszenie działa między adapterami Silicon Labs, Texas Instruments i ConBee/RaspBee, pod warunkiem że stary adapter pracował w ZHA, a nie w deCONZ czy Zigbee2MQTT.

W trakcie migracji ZHA może zaproponować nadpisanie adresu IEEE nowego radia adresem starego. Zgódź się. Według dokumentacji bez tego sporo urządzeń trzeba będzie podłączać od nowa. Potem nie uruchamiaj starego adaptera w pobliżu, chyba że zmienisz jego adres. Licz się z tym, że przez jakiś czas urządzenia będą niedostępne. Zwykle wracają do sieci w ciągu godziny, a szybciej, jeśli na chwilę odłączysz im zasilanie.

Zigbee2MQTT działa tu inaczej i uprzedza, że przejście na inny adapter może w niektórych przypadkach wymagać ponownego sparowania wszystkich urządzeń. Zanim kupisz następcę, przeczytaj FAQ projektu o migracji.

Aktualizacje oprogramowania urządzeń

ZHA potrafi aktualizować oprogramowanie urządzeń Zigbee przez standardowe encje aktualizacji, o ile producent publikuje pliki z oprogramowaniem. Ma wbudowane źródła aktualizacji dla IKEA, Inovelli, Ledvance/OSRAM, Sonoff i Third Reality. Ledvance, Sonoff, Inovelli i Third Reality są włączone domyślnie. Pozostałe źródła są domyślnie wyłączone, bo ich aktualizacje mogą zmienić lub usunąć funkcje urządzeń, a część z nich jest słabo przetestowana. Zanim coś zainstalujesz, zastanów się, czy w ogóle tego potrzebujesz. Dokumentacja ostrzega, że aktualizacja może zepsuć niektóre funkcje (jej przykład to wiązanie grup w części urządzeń IKEA), a w rzadkich przypadkach trwale uszkodzić urządzenie.

Przed aktualizacją urządzenia na baterie włóż nowe baterie i wybudź je naciśnięciem przycisku albo zmianą stanu, żeby przyjęło aktualizację. Aktualizacja jednego urządzenia trwa zwykle około 10 minut. Jeśli trwa znacznie dłużej albo się nie udaje, dokumentacja ZHA wskazuje te same przyczyny co we wszystkich wcześniejszych punktach: słaby zasięg i za mało routerów.