Home Assistant koordynuje Zigbee2MQTT za pośrednictwem MQTT, zamiast traktować Zigbee2MQTT jako część Home Assistant Core. Zigbee2MQTT zarządza koordynatorem Zigbee i komunikacją z siecią mesh, broker MQTT przenosi komunikaty, a integracja MQTT w Home Assistant przekształca tematy autodetekcji i stanu w encje, z których mogą korzystać automatyzacje.
Taki podział jest bardzo elastyczny, ponieważ transport Zigbee, pośredniczenie w komunikatach i logika automatyki domowej mogą być niezależnie restartowane lub przenoszone. Tworzy jednak także łańcuch zależności obejmujący trzy usługi: urządzenie Zigbee może działać prawidłowo, podczas gdy Home Assistant pokazuje je jako niedostępne, jeśli Zigbee2MQTT, broker, autodetekcja lub komunikaty o dostępności nie działają poprawnie.
Zigbee2MQTT Zarządza Komunikacją z Urządzeniami Po Stronie Radiowej
Zigbee2MQTT komunikuje się z koordynatorem, utrzymuje definicje urządzeń Zigbee, odbiera raporty z sieci mesh i przekształca je w komunikaty MQTT. Home Assistant nie musi mieć bezpośredniego dostępu do tego koordynatora, gdy zarządza nim Zigbee2MQTT.
Przewodnik integracji Zigbee2MQTT z Home Assistant wyjaśnia, że autodetekcja MQTT to standardowy sposób automatycznego tworzenia urządzeń i encji Zigbee2MQTT w Home Assistant.
Ta granica odpowiedzialności ma znaczenie podczas przywracania działania. Restart Home Assistant nie powinien wymagać ponownego parowania sieci Zigbee, a restart Zigbee2MQTT nie powinien usuwać automatyzacji Home Assistant odwołujących się do stabilnych identyfikatorów encji.
Broker MQTT Jest Granicą Komunikacyjną Między Usługami
Zigbee2MQTT publikuje stan urządzeń i informacje o mostku w tematach MQTT. Home Assistant subskrybuje odpowiednie tematy i publikuje polecenia z powrotem, gdy automatyzacja lub użytkownik zmienia stan urządzenia.
Broker MQTT jest granicą komunikacyjną, ponieważ Zigbee2MQTT publikuje komunikaty w tematach, podczas gdy Home Assistant subskrybuje potrzebne tematy i publikuje polecenia z powrotem za pośrednictwem tego samego brokera. Aktualny przewodnik po architekturze MQTT wyjaśnia, jak wydawcy i subskrybenci pozostają od siebie niezależni, a broker przekazuje między nimi komunikaty oparte na tematach.
Jeśli broker ulegnie awarii, sieć Zigbee może nadal działać, podczas gdy widok w Home Assistant przestanie się aktualizować. Diagnozuj brokera niezależnie od koordynatora i Core.
Autodetekcja Opisuje Encje, a Tematy Stanu Utrzymują Ich Aktualność
Komunikaty autodetekcji informują Home Assistant, jaka encja powinna istnieć, które tematy dostarczają stan i polecenia, do którego urządzenia należy encja oraz jak należy interpretować wartości. Gdy encja już istnieje, zwykłe komunikaty o stanie utrzymują ją w aktualności.
Ponowne wczytanie lub restart może ujawnić błędy w tym obszarze. Przypadek opisany w społeczności Home Assistant pokazuje, jak encje wykryte przez MQTT mogą pozostać niedostępne, gdy oczekiwana ścieżka ponownej autodetekcji lub zachowanego stanu nie zostanie poprawnie odbudowana.
Używaj stabilnych unikalnych identyfikatorów i przemyślanej strategii ponownej autodetekcji. Odtwarzanie encji pod nowymi identyfikatorami po każdej zmianie mostka powoduje problemy z pulpitami, ciągłością historii i automatyzacjami, nawet jeśli fizyczne urządzenie Zigbee się nie zmieniło.
Dostępność Jest Osobnym Sygnałem, Niezależnym Od Stanu Urządzenia
Stan taki jak ON informuje Home Assistant o ostatniej zaraportowanej wartości; nie potwierdza, że Zigbee2MQTT lub urządzenie jest obecnie osiągalne. Tematy dostępności zapewniają odrębny mechanizm sprawdzania aktywności.
Mechanizm dostępności Zigbee2MQTT traktuje urządzenia zasilane oraz bateryjne odmiennie, ponieważ urządzeń pasywnych nie można na żądanie sprawdzać za pomocą pingów. Aktualna dokumentacja określa, że urządzenia aktywne korzystają z krótszych okien kontrolnych oraz mechanizmu pingów i wycofywania, podczas gdy urządzenia pasywne polegają na znacznie dłuższych oknach kontrolnych. Dostępność należy więc interpretować niezależnie od ostatniego zachowanego stanu.
Nie uruchamiaj działań o krytycznym znaczeniu dla bezpieczeństwa na podstawie nieaktualnego stanu bez uwzględnienia dostępności. Zachowana wartość może być przydatna do odtworzenia stanu, a jednocześnie odnosić się do urządzenia, które jest obecnie offline.
Kolejność Uruchamiania Powinna Odbudowywać Kontrakt, a Nie Zależeć Od Przypadku
Prawidłowa sekwencja uruchamiania nie sprowadza się jedynie do „najpierw broker, potem Zigbee2MQTT, a następnie Home Assistant”. Usługi mogą uruchamiać się w różnej kolejności, dlatego kontrakt komunikacyjny musi tolerować ponowne połączenia. Zigbee2MQTT powinien ponownie łączyć się z brokerem, autodetekcja powinna stać się dostępna, Home Assistant powinien rozpocząć subskrypcję, a bieżący stan powinien zostać ponownie opublikowany lub zachowany zgodnie z założeniami.
Przykłady zdarzeń inteligentnego domu w ZimaSpace pokazują, jak MQTT pozwala usługom inteligentnego domu wymieniać lokalne zdarzenia bez współdzielenia jednego procesu lub jednego fizycznego serwera. Zigbee2MQTT jest konkretnym przykładem takiego rozdzielenia.
| Warstwa | Główna odpowiedzialność | Objaw awarii |
|---|---|---|
| Zigbee2MQTT | Sieć mesh Zigbee i tłumaczenie komunikacji z urządzeniami | Brak nowych komunikatów Zigbee |
| Broker MQTT | Dostarczanie komunikatów między usługami | Nie działa ścieżka publikowania i subskrybowania |
| MQTT w Home Assistant | Autodetekcja encji i mapowanie stanu | Brak encji lub encje są niedostępne |
| Automatyzacje/Core | Reguły i wywołania usług | Encja działa poprawnie, ale logika akcji zawodzi |
FAQ
Czy Zigbee2MQTT wymaga działającego Home Assistant, aby utrzymać sieć Zigbee?
Nie. Zigbee2MQTT zarządza siecią Zigbee po stronie koordynatora. Home Assistant jest odbiorcą danych i źródłem poleceń komunikującym się przez MQTT. Home Assistant może być offline, podczas gdy usługa Zigbee2MQTT i broker nadal działają.
Dlaczego encje Zigbee2MQTT stają się niedostępne po restarcie brokera lub Home Assistant?
Zwykle dlatego, że autodetekcja, zachowany stan, dostępność lub komunikaty o ponownym połączeniu nie odbudowały jeszcze pełnego kontraktu MQTT. Przed ponownym parowaniem urządzeń sprawdź stan mostka Zigbee2MQTT, połączenie z brokerem, tematy autodetekcji i dostępność encji.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego Home Assistant działa inaczej w sieci lokalnej i przy połączeniach zdalnych?
Sesje Home Assistant w sieci LAN i zdalne korzystają z różnych ścieżek sieciowych; opóźnienie zdalne obejmuje DNS, szyfrowanie, sieć WAN, serwer proxy lub VPN...

Czy Home Assistant działa niezawodnie za CGNAT-em lub podwójnym NAT-em?
CGNAT i podwójny NAT zazwyczaj nie wpływają na lokalne sterowanie Home Assistantem; zmieniają głównie sposób, w jaki zdalni klienci mogą utworzyć ścieżkę przychodzącą do...

Jak opóźnienie sieci wpływa na działanie Home Assistant podczas awarii Internetu?
Utrata dostępu do Internetu i opóźnienia sieciowe to różne awarie: lokalne ścieżki urządzeń mogą nadal działać szybko, podczas gdy DNS, integracje z chmurą, bramy...

