Opóźnione lokalne sterowanie Home Assistantem podczas awarii internetu zwykle oznacza, że ścieżka uznawana za lokalną nadal czeka na zależność WAN albo nagromadzone zadania.
Zacznij od rozdzielenia nadejścia wyzwalacza od ukończenia akcji: jeśli czujnik ruchu zmienia stan natychmiast, ale światło reaguje z opóźnieniem, ścieżka zdarzenia działa, a opóźnienie występuje później w łańcuchu. Jeśli encja docelowa staje się niedostępna, problem leży niżej, w ścieżce urządzenia; potraktuj awarię jako kontrolowaną zmienną i ustal pierwszy etap, którego opóźnienie się zmienia.
Główną przyczyną jest zwykle ukryta zależność w ścieżce sterowania
Instalacja Home Assistanta może działać lokalnie na poziomie serwera, podczas gdy poszczególne encje, nazwy, powiadomienia lub usługi pomocnicze nadal zależą od internetu. Użytkownik widzi jedno naciśnięcie przycisku, ale żądanie może przechodzić przez lokalny panel, resolver nazw, pętlę zdarzeń Home Assistanta, integrację, API dostawcy, a następnie fizyczne urządzenie. Wystarczy jeden etap zależny od WAN, aby opóźnić całą widoczną akcję.
Artykuł o architekturze lokalnej przedstawia tę samą kwestię, rozróżniając podstawowe sterowanie domem od opcjonalnych funkcji WAN; ścieżki sterowania działające przede wszystkim offline pozostają niezawodne tylko wtedy, gdy łańcuch od czujnika do akcji pozostaje wewnątrz domu. Zdalne powiadomienia, pogoda i usługi dostawców mogą zawodzić niezależnie, nie blokując światła ani zamka.
Nie zaczynaj od zmiany procesora, bazy danych ani ustawień automatyzacji. Najpierw rejestruj znaczniki czasu zmiany stanu czujnika, rozpoczęcia automatyzacji, każdego kroku akcji, wywołania usługi docelowej oraz potwierdzenia stanu urządzenia. Pierwszy przedział, który wydłuża się tylko wtedy, gdy WAN jest niedostępny, wskazuje klasę zależności wymagającą zbadania.
Cztery przyczyny lokalnych opóźnień związanych z awarią
Najbardziej użyteczny podział obejmuje powolną akcję w chmurze, lokalną nazwę lub trasę, która w rzeczywistości zależy od infrastruktury WAN, integrację urządzenia sterowaną przez chmurę oraz kolejkę utworzoną przez wcześniejsze nieudane zadania. Wszystkie cztery przyczyny mogą wyglądać identycznie w panelu, ponieważ każda kończy się późnym lokalnym rezultatem.
Jedno ze społecznościowych dochodzeń wykazało, że Home Assistant zwalniał, gdy integracje chmurowe miały słabe połączenie lub nie miały go wcale, co stanowi rzeczywisty przykład wpływu awarii chmury na responsywność. Ta obserwacja jest przydatna, ponieważ oddziela obecność lokalnego Core od zachowania integracji, na które Core czeka.
Traktuj poniższe sygnały jako hipotezy, a nie etykiety. Odtwórz tę samą lokalną akcję przy sprawnym i odłączonym WAN, a następnie usuwaj tylko jedną podejrzaną zależność naraz. Przyczyna zostaje potwierdzona, gdy zmieniony etap i opóźnienie widoczne dla użytkownika zmieniają się jednocześnie, podczas gdy reszta ścieżki sterowania pozostaje stała.
Przyczyna 1: Akcja w chmurze blokuje wykonanie
- Mechanizm: lokalny wyzwalacz dociera do akcji zależnej od chmury, która czeka na przekroczenie limitu czasu lub ponowienie próby.
- Sygnał: lokalne zmiany stanu docierają na czas, ale ślad automatyzacji zatrzymuje się na jednym zdalnym wywołaniu.
- JEŚLI–TO: jeśli usunięcie tego wywołania przywraca czas reakcji podczas tej samej awarii, opóźniony krok chmurowy jest przyczyną.
Przyczyna 2: Rozpoznawanie lokalnej nazwy lub trasy również zależy od WAN
- Mechanizm: klienci lub integracje korzystają z DNS, serwera proxy albo tras, które przełączają się poza sieć LAN.
- Sygnał: bezpośredni dostęp przez lokalny adres IP jest szybki, podczas gdy zwykła nazwa hosta lub trasowana ścieżka zatrzymuje się.
- JEŚLI–TO: jeśli w pełni lokalna nazwa i trasa usuwają opóźnienie, logika sterowania była lokalna, ale ścieżka dostępu już nie.
Przyczyna 3: Lokalne urządzenie jest w rzeczywistości sterowane przez chmurę
- Mechanizm: encja wyświetlana w Home Assistancie reprezentuje API dostawcy, a nie bezpośredni punkt końcowy LAN lub radiowy.
- Sygnał: automatyzacja uruchamia się, ale encja docelowa staje się niedostępna lub aktualizuje się dopiero po przywróceniu internetu.
- JEŚLI–TO: jeśli Zigbee, Z-Wave, ESPHome lub inny lokalny cel nadal reaguje, a to urządzenie nie, przyczyną jest granica integracji.
Przyczyna 4: Zaległości z okresu awarii opóźniają późniejsze lokalne uruchomienia
- Mechanizm: zadania umieszczone w kolejce lub uruchomione równolegle podczas awarii zużywają te same zasoby automatyzacji lub hosta po pierwszym niepowodzeniu.
- Sygnał: czysto lokalne akcje zaczynają się opóźniać dopiero po nagromadzeniu kilku nieudanych prób zdalnych.
- JEŚLI–TO: jeśli wyczyszczenie kolejki lub zapobieżenie jej powstawaniu przywraca lokalne opóźnienia, wtórnym problemem jest kolejkowanie, a nie protokół lokalny.
Odróżnij utratę internetu od utraty sieci lokalnej
Awarii internetu nie należy mylić z utratą routera, punktu dostępowego Wi-Fi, przełącznika Ethernet, lokalnego DNS, koordynatora Zigbee ani hosta Home Assistanta. Jeśli sama sieć LAN jest niesprawna, lokalne sterowanie może zawieść, nawet gdy w projekcie nie ma zależności od chmury. Test awarii musi pozostawić lokalną infrastrukturę zasiloną i dostępną, odcinając wyłącznie połączenie z internetem.
Niedawny poradnik dotyczący lokalnego Home Assistanta opisuje dokładnie to rozdzielenie i podkreśla, że lokalne sterowanie jest kwestią projektu zależności, a nie tylko faktem, że Home Assistant działa w domu. Lokalne moduły radiowe, API LAN, DNS i kontroler również muszą działać niezależnie od WAN.
Jeśli bezpośredni dostęp przez lokalny adres IP, urządzenia radiowe i usługi lokalne nadal działają szybko, a tylko zwykła nazwa hosta działa wolno, przed modyfikacją automatyzacji przetestuj rozpoznawanie DNS i działanie proxy. Jeśli Home Assistant sam staje się niedostępny z sieci LAN, problem nie dotyczy wyłącznie internetu i należy przenieść diagnostykę na warstwę sieci lokalnej lub hosta.
Wykonaj test izolacyjny z czterema znacznikami czasu
Wybierz jedną prostą automatyzację z lokalnym czujnikiem i lokalnym elementem wykonawczym. Aktualny proces debugowania oparty na śladach może rejestrować wyzwalacz, warunki, wygenerowane dane akcji i czas trwania kroków; połącz to z zaobserwowanym potwierdzeniem stanu urządzenia. Powtórz test dziesięć razy przy dostępnym internecie, a następnie dziesięć razy przy zablokowanym WAN, pozostawiając działającą sieć LAN. Porównaj medianę i najwolniejsze wykonania, a nie pojedyncze przypadkowe naciśnięcie.
ZimaSpace pokazuje, jak pozornie szybka aplikacja LAN może zatrzymywać się jeszcze przed ścieżką aplikacji, ponieważ opóźnienie DNS może wystąpić przed rozpoczęciem połączenia. Ta sama zasada izolacji obowiązuje tutaj: mierz czas każdego etapu, aby nie pomylić opóźnienia rozpoznawania nazwy z opóźnieniem wykonywania automatyzacji.
Projekt lokalnego sterowania można uznać za poprawny, gdy usunięcie WAN nie zmienia znacząco czasu od wyzwalacza do lokalnego urządzenia, a nieudane zadania chmurowe nie mogą utworzyć zaległości, która później blokuje lokalną ścieżkę. Jeśli jeden znacznik czasu się wydłuża, najpierw napraw tę zależność. Nie zwiększaj współbieżności, nie przenoś baz danych ani nie wymieniaj sprzętu, dopóki pomiary czasu nie wykażą, że te zasoby rzeczywiście uczestniczą w problemie.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego architektura Home Assistant zmienia się, gdy serwer domowy obsługuje więcej usług?
Więcej usług zmienia architekturę Home Assistanta, gdy dodają współdzielony stan, kolejki, urządzenia, cykle aktualizacji lub domeny awarii — a nie tylko więcej kontenerów.

Jak mierzyć wydajność Home Assistant, nie myląc pamięci podręcznej z możliwościami sprzętu
Ciepły wynik potwierdza ponowne wykorzystanie, a nie wydajność. Zmierz zimny start, ciepły stan ustalony, powtarzające się obciążenie, opóźnienie ogona oraz pierwszy zasób, który osiąga...

Ile równoległych automatyzacji potrzebuje Home Assistant do sterowania całym domem?
Większość automatyzacji obejmujących cały dom wymaga jedynie ograniczonego nakładania się uruchomień; określ maksymalną równoległość na podstawie czasu trwania uruchomienia × częstotliwości wyzwalania, a następnie...

