Cel: mądrze wybrać między Zigbee2MQTT a ZHA, bez żalu po instalacji
Wybór stosu Zigbee w Home Assistant to decyzja na lata. Od niej zależy stabilność czujników, responsywność automatyzacji i łatwość utrzymania całego smart domu.
Brief decyzji: pytania, na które chcesz dostać jasne odpowiedzi
- Czy Zigbee2MQTT obsłuży więcej „egzotycznych” urządzeń niż ZHA i czy to naprawdę ma znaczenie?
- Który stos lepiej nadaje się na start dla osoby bez doświadczenia z MQTT?
- Jakie są praktyczne różnice w codziennym użytkowaniu (parowanie, aktualizacje OTA, grupy, sceny, binding)?
- Jaki koordynator USB wybrać do ZHA, a jaki do Zigbee2MQTT? Czy da się korzystać z multiprotokołu (Thread + Zigbee) bez strat?
- Co, jeśli będę chciał zmienić stos w przyszłości – czy muszę parować wszystko od nowa?
- Jak uniknąć problemów z zasięgiem i utratą połączeń, zwłaszcza przy bateriowych czujnikach Aqara i Tuya?
- Jakie są realne granice skali (liczba urządzeń) i kiedy rozważyć drugi koordynator?
Szybka odpowiedź: ZHA czy Zigbee2MQTT? Decyzja w 60 sekund
Jeśli spełniasz większość z poniższych – wybierz ZHA
- Chcesz maksymalnej prostoty (bez zewnętrznego brokera MQTT) i integracji „prosto w HA”.
- Używasz koordynatora na bazie Silicon Labs (np. Home Assistant SkyConnect, Sonoff ZBDongle-E) i planujesz multiprotocol/Thread w przyszłości.
- Stawiasz na stabilną podstawę i urządzenia Zigbee 3.0 znanych marek (IKEA, Sonoff, Philips Hue, Aeotec, Tuya).
- Wolisz konfigurować grupy, binding i OTA w UI Home Assistant, bez dodatkowych narzędzi.
Jeśli spełniasz większość z poniższych – wybierz Zigbee2MQTT
- Masz mieszankę różnych, także niszowych urządzeń i chcesz największej szansy wsparcia „od ręki”.
- Nie przeszkadza Ci posiadanie brokera MQTT (Mosquitto) i podoba Ci się debugowanie przez tematy MQTT.
- Chcesz łatwo tworzyć własne „konwertery” dla niestandardowych funkcji urządzeń.
- Twój koordynator bazuje na TI CC2652/CC1352 (np. Sonoff ZBDongle-P), a Ty lubisz kontrolę i rozbudowane logi.
Mit vs rzeczywistość #1
Mit: Zigbee2MQTT jest zawsze stabilniejszy od ZHA. Rzeczywistość: Stabilność sieci w 80% zależy od koordynatora, jakości routerów (zasilanych z sieci) i poprawnej konfiguracji kanału, a nie od tego, czy użyjesz ZHA czy Zigbee2MQTT.
Krok po kroku: procedura podjęcia decyzji
Krok 1: Inwentaryzacja urządzeń i plan wzrostu
Spisz listę urządzeń, które masz i które planujesz dołożyć w 6–12 miesięcy. Oznacz:

- Urządzenia sieciowe (routery Zigbee) – wszystko na 230 V: gniazdka, przekaźniki, żarówki, wzmacniacze sygnału.
- Czujniki na baterie – końcowe (end devices), często „kapryśne” w doborze routera, np. Aqara.
- Urządzenia o nietypowych funkcjach – np. przyciski z zaawansowanymi kombinacjami, zamki, rolety z niestandardowymi klastrami.
Jeśli masz sporo egzotycznych czujników i elementów sterujących (głównie no-name z marketplace), Zigbee2MQTT zwiększy szanse pełnej obsługi funkcji. Jeśli większość to Zigbee 3.0 od większych marek, ZHA sprawdzi się świetnie.
Krok 2: Wybór warstwy sprzętowej (koordynator i routery)
Dobór koordynatora determinuje wygodę pracy i stabilność. Dla ZHA świetnie sprawdzają się:
- Home Assistant SkyConnect (EFR32MG21) – naturalny wybór pod ZHA oraz multiprotocol (Thread + Zigbee) w HA OS.
- Sonoff ZBDongle-E (EFR32MG21, EZSP) – bardzo dobry do ZHA, także do multiprotokołu; współpracuje również z Zigbee2MQTT.
Dla Zigbee2MQTT popularny i bezproblemowy jest:
- Sonoff ZBDongle-P (TI CC2652P, Z-Stack) – mocny nadajnik i dojrzałe wsparcie w Zigbee2MQTT i ZHA.
Obsługa ConBee II w Zigbee2MQTT bywa ograniczona – generalnie nie rekomendowana na start. W ZHA ConBee/RaspBee działa przez bibliotekę zigpy-deconz, choć dziś częściej wybiera się TI lub Silicon Labs.
Krok 3: Określenie wymagań funkcjonalnych
- Binding i grupy: w obu dostępne; ZHA świetnie integruje to w natywnym UI Home Assistant, Z2M ma własne UI i MQTT.
- OTA: w obu obsługiwane, ale zakres dostępnych firmware różni się zależnie od producenta; sprawdź listę wsparcia dla kluczowych urządzeń.
- Mapa sieci i logi: w Zigbee2MQTT masz czytelną mapę i strumień przez MQTT; ZHA oferuje mapę, logi i narzędzia w HA.
- Konwertery/quirks: Z2M – konwertery społeczności na bieżąco; ZHA – quirks w zha-device-handlers, tempo rozwoju jest wysokie.
Krok 4: Plan radiowy i wybór kanału Zigbee
Zanim cokolwiek sparujesz, ustaw docelowy kanał Zigbee. Zmiana po fakcie oznacza konieczność ponownego parowania wielu urządzeń.
- Przeskanuj pasmo 2,4 GHz (aplikacja w telefonie lub interfejs routera Wi‑Fi). Zanotuj kanały Wi‑Fi 2,4 GHz i szerokości (20/40 MHz).
- Dobierz kanał Zigbee tak, by minimalizować nakładanie z Wi‑Fi:
- Gdy Wi‑Fi używa kanału 1 (20 MHz) – Zigbee 15 lub 20 są zwykle bezkolizyjne.
- Gdy Wi‑Fi używa kanału 6 – Zigbee 11/15/25 rozważ jako priorytet.
- Gdy Wi‑Fi używa kanału 11 – Zigbee 15 lub 20 sprawdzają się najlepiej.
- Unikaj Zigbee 26 przy mieszance starszych urządzeń – bywa ograniczany lub nieobsługiwany.
- Ustal kanał w konfiguracji koordynatora przed pierwszym parowaniem.
- Jeśli planujesz multiprotocol (Thread + Zigbee na jednym donglu) – ustaw Zigbee na 15/20 i Thread tak, by nie nachodził na szczyt pasma (sprawdź domyślny kanał Thread dla Twojej instalacji).
Mit: „Kanał 25 jest zawsze najlepszy”. Rzeczywistość: bywa świetny w zatłoczonych blokach, ale część urządzeń ogranicza na nim moc lub ma gorszą czułość. Bez skanu to loteria.
Krok 5: Konfiguracja minimalna – ZHA i Zigbee2MQTT
Cel: postawić stos z bezpiecznym kluczem sieci, właściwym kanałem i jasnymi zasadami parowania.
- ZHA (Integracja w Home Assistant):
- Dodaj integrację „Zigbee Home Automation”. Wskaż port USB koordynatora.
- Wybierz kanał Zigbee (z Krok 4). Pozostaw wygenerowany klucz sieci (lub wklej własny, zapisany w menedżerze haseł).
- Jeśli używasz SkyConnect/Sonoff-E i chcesz multiprotocol – skonfiguruj go w dodatku firmware HA OS, nie mieszaj trybów w trakcie parowania.
- Wyłącz globalne „permit join” po testach. Paruj urządzenia świadomie, w krótkich oknach.
- Zigbee2MQTT (Add-on + Mosquitto):
- Zainstaluj Mosquitto Broker i Zigbee2MQTT (add-on lub kontener). Włącz autostart brokera.
- W konfiguracji Z2M ustaw:
- serial.port (ścieżka do dongla) i adapter (znp/ezsp – zgodnie z chipem).
- advanced.channel (z Krok 4), pan_id, ext_pan_id i network_key – zapisz je w bezpiecznym miejscu.
- frontend: true, homeassistant: true, permit_join: false (domyślnie zamknięte).
- Po starcie sprawdź logi – brak błędów „Network started” i poprawny kanał/kontroler.
Mit: „Domyślne ustawienia wystarczą”. Rzeczywistość: domyślny kanał często koliduje z Wi‑Fi, a niezapisany klucz sieci utrudnia migrację i odzysk po awarii.

Krok 6: Parowanie w poprawnej kolejności
Kolejność ma znaczenie dla stabilności tras i żywotności baterii.
- Najpierw zasilane z sieci (routery Zigbee): gniazdka, przekaźniki, wzmacniacze, żarówki. Rozmieść je piętrowo i w korytarzach.
Krok 6: Kolejność parowania w praktyce
- Najpierw wszystkie urządzenia zasilane z sieci (routery): gniazdka, przekaźniki, sterowniki rolet, wzmacniacze. Zaczynaj od tych najbliżej koordynatora i „idź na zewnątrz”/po piętrach.
- Żarówki paruj tylko wtedy, gdy będą stale pod napięciem (ścienny włącznik w pozycji „ON” na stałe). Jeśli ktoś w domu odcina im prąd przełącznikiem – nie licz ich jako kluczowe routery.
- Po dodaniu pierwszej partii routerów daj sieci „oddychnąć” – 10–30 minut w małej sieci, do kilku godzin przy kilkudziesięciu urządzeniach. Sprawdź mapę i siłę sygnału (LQI/RSSI).
- Dopiero potem czujniki na baterie. Paruj je jak najbliżej docelowego routera (nie pod samym koordynatorem, jeśli finalnie są w innym skrzydle domu). Przy Aqara często pomaga dłuższe przytrzymanie przycisku, by wymusić pełne dołączenie do rodzica.
- Otwieraj „permit join” na krótkie okna (3–5 minut), po 1–3 urządzenia. Po każdej serii zamknij i sprawdź logi/telemetrię.
- Na koniec skonfiguruj grupy i ewentualny binding (np. przycisk → grupa lamp), żeby odciążyć HA i sieć.
Mit: najlepiej parować wszystko obok koordynatora, a potem przenieść na miejsce. Rzeczywistość: urządzenie wybiera rodzica przy dołączaniu; przenosiny daleko od rodzica często kończą się niestabilnością i rejoinami.
Krok 7: Weryfikacja stabilności i szybkie korekty
- Mapa i sygnał: każdy czujnik powinien mieć rodzica 1–2 ściany dalej, nie „na końcu świata”. LQI stabilne i bez gwałtownych spadków.
- Obciążenie routerów: rozłóż dzieci między kilka punktów 230 V zamiast „pchać” wszystko w jedno gniazdko w korytarzu.
- Opóźnienia i straty: szybki test – 10 włączeń/wyłączeń lamp i obserwacja logów. Brak dubletów i timeoutów to dobry znak.
- Raportowanie energii/częstotliwości: jeśli masz „gadulskie” mierniki/gniazdka, zwiększ interwały raportów (Z2M: state/reporting w konfiguracji urządzenia; ZHA: ustawienia raportowania w UI na klastrach).
- Rejoiny: sporadyczne są normalne. Cykliczne co kilka minut oznaczają złego rodzica lub zakłócenia – dołóż router pośredni albo zmień miejsce.
Mit: po każdej zmianie trzeba uruchomić „heal sieci”. Rzeczywistość: Zigbee samoczynnie przebudowuje trasy; daj czas. Pomaga też krótkie odłączenie/przywrócenie zasilania wybranym routerom, ale bez „wyciągania wtyczki” wszystkim naraz.

Krok 8: Bezpieczne aktualizacje OTA (ZHA i Zigbee2MQTT)
Cel: podnieść wersje firmware bez rozjechania sieci i „uceglenia” lamp czy czujników.
- Przygotowanie:
- Stabilne zasilanie dla routerów (lampy nie mogą być wyłączane ściennym włącznikiem w trakcie OTA).
- Jedno urządzenie testowe na początek; dopiero potem reszta z tej samej serii.
- Sprawdź listę dostępnych firmware dla danego modelu (release notes producenta lub lista w Z2M/ZHA).
- ZHA:
- W panelu urządzenia sprawdź sekcję aktualizacji (OTA/cluster „OTA Upgrade”).
- Uruchom aktualizację dla jednego egzemplarza i monitoruj postęp w logach Zigbee.
- Gdy zakończy się poprawnie, zaktualizuj pozostałe w oknach po kilka sztuk.
- Zigbee2MQTT:
- W frontendzie Z2M wejdź w urządzenie → zakładka OTA (lub Tools → OTA dla wybranych).
- Włącz OTA tylko na czas aktualizacji; kontroluj logi i temperaturę dongla.
- Nie aktualizuj kilkunastu urządzeń naraz – sieć i koordynator mają ograniczony bufor.
- Kryteria „zielonego światła”: brak restartów urządzenia w trakcie, stabilny LQI do rodzica, poprawna wersja po restarcie, urządzenie odpowiada na polecenia.
Mit: „OTA zawsze poprawia stabilność”. Rzeczywistość: zdarzają się regresje; najpierw test na jednym egzemplarzu z tej samej partii.
Krok 9: Automatyzacje lokalne – binding i grupy bez obciążania HA
Cel: skrócić opóźnienia i uniezależnić kluczowe akcje od Home Assistanta.
- Scenariusz: przycisk na ścianie → grupa lamp w salonie.
- ZHA: utwórz grupę Zigbee, następnie w urządzeniu przycisku dodaj powiązanie (bind) do tej grupy. Przetestuj pojedynczy i podwójny klik, jeśli wspierane.
- Z2M: utwórz grupę w frontendzie (lub w pliku groups), a w zakładce Bind przypisz przycisk do grupy. Zapisz i sprawdź w logach, czy binding został potwierdzony.
- Po wykonaniu: wyłącz na moment automatyzacje HA i sprawdź, czy sterowanie lokalne nadal działa (klik → światło reaguje w ułamku sekundy).
- Jeśli przycisk ma zaawansowane akcje (hold, triple), część zdarzeń możesz dalej obsłużyć w HA, a podstawowe ON/OFF zostawić w bindzie.
Mit: „Binding jest zbędny, bo automatyzacje w HA wystarczą”. Rzeczywistość: lokalny bind skraca opóźnienia, ratuje sterowanie przy niedostępności HA i odciąża sieć.
Krok 10: Kopie zapasowe i odzysk po awarii
Cel: odtworzyć sieć bez ponownego parowania po utracie systemu lub wymianie urządzenia.

- Co musisz mieć zapisane:
- network_key, pan_id, ext_pan_id i kanał Zigbee – to „tożsamość” sieci.
- Zawartość NVRAM koordynatora (backup adaptera).
- Baza urządzeń: ZHA – pliki konfiguracji/DB integracji; Z2M – katalog data (m.in. state, konfiguracja, mapowania).
- ZHA – procedura:
- Regularny pełny backup HA (snapshot). Dodatkowo zanotuj network_key i kanał z ustawień ZHA.
- Przy odtwarzaniu: przywróć backup HA, upewnij się, że port USB koordynatora ma tę samą ścieżkę, uruchom ZHA i sprawdź, czy urządzenia są dostępne.
- Zigbee2MQTT – procedura:
- Wykonuj backup z frontendu (Tools/Backup) – pobierz kopię NVRAM koordynatora i plik bazy.
- Przy odtwarzaniu: wgraj backup NVRAM, przywróć katalog data, ustaw identyczne parametry sieci (kanał/pan_id/network_key) i uruchom usługę.
- Po starcie: routery zasilane z 230 V zwykle wrócą same. Czujniki bateryjne wybudź przyciskiem (krótkie kliknięcie lub długie przytrzymanie wg instrukcji).
Ostrzeżenie: zmiana network_key lub kanału po awarii = parowanie od zera u większości urządzeń.
Krok 11: Migracja między ZHA a Zigbee2MQTT bez ponownego parowania
Cel: przejść na drugi stos, zachowując istniejącą sieć.
- Warunki powodzenia:
- Ten sam koordynator lub adapter z tym samym zbiorem parametrów i kompatybilnym firmware (np. TI Z-Stack ↔ TI Z-Stack).
- Identyczne: kanał, pan_id, ext_pan_id, network_key.
- Procedura krok po kroku:
- Zapisz parametry sieci ze stosu źródłowego. Zrób pełny backup (Z2M: NVRAM + baza; ZHA: snapshot HA).
- Wyłącz i odinstaluj/wyłącz integrację źródłową, aby tylko jeden stos miał dostęp do portu USB.
- Skonfiguruj stos docelowy na identyczne parametry sieci. Jeśli to Z2M – wgraj NVRAM koordynatora (jeśli dostępny) i ustaw adapter type.
- Uruchom nowy stos. Poczekaj kilka minut; wybudź czujniki bateryjne.
- Zweryfikuj encje i nazwy – w ZHA/Z2M mogą być inne. Napraw odwołania w automatyzacjach.
- Wyjątki i pułapki:
- Zmiana rodziny chipu (np. z EZSP na Z-Stack) bywa kłopotliwa – część urządzeń może wymagać rejoinu.
- Niestandardowe funkcje oparte o konwertery (Z2M) lub quirks (ZHA) mogą różnić się mapowaniem encji.
Kiedy wybrać ZHA, a kiedy Zigbee2MQTT
Nie ma jednej odpowiedzi „lepszy/gorszy”. Wybór można zawęzić kilkoma pytaniami. Jeśli większość „tak” pada przy jednym z poniższych zestawów, decyzja zwykle staje się oczywista.
- ZHA – wybór naturalny, gdy:
- Chcesz jak najmniej elementów do utrzymania (bez brokera MQTT i osobnej usługi).
- Preferujesz pełną integrację z UI Home Assistanta, prosty onboarding i jednolity model encji.
- Masz głównie popularne urządzenia (IKEA, Philips, Sonoff, Aqara, Tuya mainstream) i nie gonisz za nowinkami dzień po premierze.
- Nie potrzebujesz niestandardowych konwerterów ani ręcznych obejść – wystarczą funkcje dostępne prosto z pudełka.
- ZHA: Home Assistant SkyConnect (EFR32MG21) lub Sonoff ZBDongle-E (EFR32, EZSP) – świetne do ZHA i gotowe pod multiprotocol.
- Z2M: Sonoff ZBDongle-P (TI CC2652P, Z-Stack) – mocny nadajnik, bardzo dojrzałe wsparcie; działa też z ZHA.
Najczęściej zadawane pytania (FAQ)
ZHA czy Zigbee2MQTT – co wybrać na start?
Jeśli zależy Ci na prostocie i integracji „prosto w Home Assistant”, wybierz ZHA. Nie wymaga osobnego brokera MQTT, ma spójne UI, dobrze dogaduje się z koordynatorami na bazie Silicon Labs (np. Home Assistant SkyConnect, Sonoff ZBDongle-E) i naturalnie pasuje do planów z Thread/Matter.
Gdy masz mieszankę mniej typowych urządzeń (w tym no-name z marketplace) lub chcesz pełniejszego dostępu do logów i debugowania przez tematy MQTT, postaw na Zigbee2MQTT. Z2M częściej „od ręki” wspiera egzotyczne funkcje dzięki konwerterom społeczności.
Mit: „Z2M jest zawsze stabilniejszy”. Rzeczywistość: stabilność w największym stopniu zależy od koordynatora, dobrych routerów zasilanych z sieci i prawidłowego kanału radiowego, a nie od samego stosu.
Jakie są praktyczne różnice w codziennym użyciu (parowanie, OTA, grupy, binding)?
Parowanie i OTA są w obu stosach. W ZHA większość zrobisz w natywnym UI Home Assistant, włącznie z grupami, binding i aktualizacjami OTA dla popularnych producentów. Z2M oferuje wygodny frontend i pełny wgląd w ruch przez MQTT, co ułatwia diagnozę niestandardowych urządzeń.
Różnice czuć przy „nietypach”: w Z2M łatwo dodać własny konwerter, gdy urządzenie wysyła niestandardowe klastery. W ZHA rolę tę pełnią „quirks” (zha-device-handlers) – tempo rozwoju jest wysokie, ale pełne wsparcie egzotyki nadal częściej pojawia się szybciej w Z2M.
Jaki koordynator USB wybrać? Czy multiprotocol (Thread + Zigbee) ma sens?
Bezpieczne wybory:
Multiprotocol ma sens, jeśli chcesz w jednym donglu Zigbee i Thread (np. pod Matter). Pamiętaj jednak o dobrej konfiguracji kanałów i o tym, że współdzielenie radia nie jest „za darmo” – w bardzo dużych instalacjach lepiej rozdzielić fizycznie. Mit: „Multiprotocol zawsze bez strat”. Rzeczywistość: bywa idealny w małych/średnich sieciach, ale przy setkach ramek lepszy jest osobny stick.
Czy przy migracji między ZHA a Zigbee2MQTT trzeba parować urządzenia od nowa?
Najczęściej tak. Zigbee nie przewiduje przenoszenia urządzeń między sieciami bez ponownego parowania, bo zmienia się klucz sieci i identyfikatory. Wyjątkiem bywa migracja w obrębie tego samego stosu i koordynatora z zachowaniem tego samego network_key, PAN ID i kanału – to jednak scenariusze zaawansowane i nie zawsze skuteczne.






