Home Assistant dostaje nową integrację o nazwie Debug console. To wiersz poleceń Pythona wewnątrz działającego Home Assistanta, podobny do konsoli w narzędziach programistycznych przeglądarki. Część serwerową napisaną przez Francka Nijhofa (zmiana #186547) i kartę w interfejsie (zmiana #54937) przyjęto do kodu 16 października 2026, a dokumentacja przypisuje integrację do wydania 2026.11.

Do czego służy

Po włączeniu konsola jest dostępna w ustawieniach, w sekcji narzędzi (Settings > Tools > Debug console). Wpisujesz kod w Pythonie, naciskasz Enter i kod wykonuje się w procesie Home Assistanta, z dostępem do obiektu hass. Możesz więc odczytać stan dowolnej encji, wywołać akcję albo zajrzeć do wnętrza działającej integracji bez dopisywania komunikatów do dziennika i ponownego uruchamiania.

Kilka szczegółów z dokumentacji:

  • await działa bezpośrednio w konsoli, więc funkcje asynchroniczne wywołasz bez opakowywania ich w inną funkcję.
  • Wyniki i to, co wypisze print(), pojawiają się jako drzewo obiektów, które można rozwijać. Właściwości są oznaczone jako (...) i wykonują się dopiero po kliknięciu, bo samo ich odczytanie może coś zmienić.
  • Podpowiedzi nazw i listy argumentów nigdy nie uruchamiają twojego kodu.
  • Kod, który na coś czeka, nie blokuje konsoli, a przycisk zatrzymania (albo Ctrl+C) przerywa jego działanie.
  • Zmienne są przechowywane osobno dla każdego użytkownika i karty przeglądarki. Sesja znika 30 minut po rozłączeniu karty albo po ponownym uruchomieniu Home Assistanta.

Jednego ograniczenia nie da się obejść. Kod działa w pętli zdarzeń Home Assistanta, więc wywołanie blokujące, na przykład time.sleep(), zamraża cały serwer do czasu, aż się skończy, i nie da się go przerwać przyciskiem zatrzymania.

Celowo trudno ją włączyć

Dokumentacja bez owijania w bawełnę opisuje ryzyko. Kod w konsoli ma te same uprawnienia co sam Home Assistant: może odczytać i zmienić wszystko, łącznie z konfiguracją, hasłami i tokenami. Nie ma żadnych zabezpieczeń przed pomyłką, a ostrzeżenie mówi wprost, że ktoś, kto prosi o wklejenie kodu do konsoli, może próbować przejąć system.

Stąd kilka zabezpieczeń:

  • Integrację można włączyć tylko wpisem debug_console: w pliku configuration.yaml i ponownym uruchomieniem, a nie z interfejsu. Dokumentacja wyjaśnia dlaczego: kod działający w przeglądarce, na przykład niestandardowa karta, nie powinien móc jej włączyć.
  • Korzystać z niej mogą wyłącznie administratorzy.
  • Każdy administrator musi najpierw zaakceptować ostrzeżenie i może to zrobić dopiero po kilku sekundach od jego wyświetlenia.
  • Wklejanie jest zablokowane, dopóki nie wpiszesz allow pasting, tak jak w konsolach przeglądarek.
  • Wszystko, co zostanie uruchomione, trafia do dziennika Home Assistanta razem z informacją, kto to zrobił.

Żeby wyłączyć konsolę, usuń wpis debug_console: i uruchom Home Assistanta ponownie. Kod, który wcześniej wykonano, zostaje w historii przeglądarki i w dzienniku.

Dla kogo

Dokumentacja zaznacza, że przy codziennym korzystaniu z Home Assistanta konsola nie jest potrzebna. Przyda się twórcom integracji i osobom, które szukają przyczyny błędu z pomocą kogoś, kto zna kod. To przy pracy nad nią Nijhof trafił na błąd, przez który usunięci użytkownicy zachowywali otwarte połączenia. Poprawka weszła do Home Assistanta 2026.10.2.