🐛 "nie ma tego złego, co by na dobre nie wyszło" - historia jednego błędu w HA

“Nie ma tego złego, co by na dobre nie wyszło”

Wprowadzenie

Dwa dni temu odwiedził nas przedstawiciel fajnej polskiej firmy i pokazał nam nowe urządzenie, nad którym pracują.

Urządzenie nie miało jeszcze opisanych wyjść (prototypowa obudowa) i podczas podłączania “na pamięć”, wywaliło nam zabezpieczenie różnicowe w biurze, bo podłączając urządzenie do sieci :electric_plug: zrobiliśmy zwarcie… upss

Później spotkanie było bardziej owocne, bo po przywróceniu zasilania i poprawnym podłączeniu urządzenia do zasilania, w ciągu 15 minut sterowaliśmy nim komendami głosowymi z Asystenta domowego :slight_smile:

Całe spotkanie trwało kilka godzin i było bardzo miłe i owocne, pozdrawiamy serdecznie!

Otrzymaliśmy też urządzenie do zabawy i kolejnego użytkownika naszej bramki - bardzo dziękujemy :slight_smile:

Coś jest nie tak…

Po jakimś czasie zauważyliśmy, że coś jest nie tak z działaniem systemu… automatyzacje w biurze, nie działają natychmiast tylko po jakimś czasie :warning:
Oczywiście podejrzenie padło na nowe urządzenie, które dostaliśmy “do zabawy”. Odłączyliśmy od sieci, nie pomogło.
Zaczęliśmy sprawdzać co się dzieje na bramce. W konsoli htop pokazuje 100% CPU… wszystko jest konsumowane przez Home Assistant.

Diagnoza

W konsoli pm2 nie logował żadnych błędów. Wiedzieliśmy już (z htop), że CPU obciąża sam HA więc żeby zobaczyć co on robi przełączyliśmy logi na poziom debug (trochę to trwało nim aplikacja zareagowała i wczytała stronę z konfiguracją logów). W konsoli sprawdziliśmy co loguje HA i okazało się, że problem jest z komponentem sun (pozycja słońca) który loguje tysiące zmian pozycji w pętli i zużywa całe CPU.

Dodatkowo rzuciło nam się w oczy, że data nie jest poprawna. Pomimo, że bramka po braku zasilania połączyła się z siecią (jak sieć wstała) i ostatecznie dostała poprawną datę, to i tak HA myśli, że jest 2015 i zgłasza zmiany pozycji słońca które wystąpiły w ciągu kilku lat…

Odtworzyliśmy to na innej bramce:

  • odłączenie z zasilania
  • uruchomienie HA bez sieci (bez poprawnej godziny)
  • podłączenie sieci i otrzymanie poprawnej daty w systemie
  • HA rejestruje “szybki skok w czasie” i rejestruje zdarzenia z kilku lat, zużywając całe zasoby CPU

Błąd w Home Assistant

Zgłosiliśmy problem do HA:

W tej chwili trwa audyt integracji które potencjalnie mogą mieć ten problem:

Zajmuje się tym nasz ulubiony programista Nick Koston @bdraco, ten gość jest naprawdę niesamowity, zoptymalizował już sporo rzeczy w HA które nie działały tak jak powinny a po jego poprawkach, śmigają :slight_smile:

Jak tyko HA skończy audyt i poprawki to oczywiście dostarczymy je na bramkę. Wyjdzie to nam wszystkim na dobre :slight_smile:

9 polubień

Super :ok_hand:t2: To już wiem czemu kilka razy po restarcie miałem problem z “dziwną” datą.