Zmiana identyfikatora encji w Home Assistancie zawsze była poważniejszą operacją, niż się wydaje. Za kulisami encja była usuwana i dodawana ponownie pod nowym identyfikatorem, a cały proces jej przygotowania przebiegał drugi raz. Od Home Assistant Core 2026.11 to się skończy: encja zostanie po prostu przełączona na nowy identyfikator, bez usuwania. Zmianę ogłosił Erik Montnemery na blogu dla programistów Home Assistanta 12 października 2026.
Co się dzieje przy zmianie identyfikatora
W wersji 2026.11 Home Assistant usunie stan zapisany pod starym identyfikatorem, przełączy encję na nowy, przeniesie swoje dane wewnętrzne i zapisze stan pod nowym identyfikatorem. Do tych danych należą powiązania w rejestrze encji i rejestrze urządzeń, informacje o źródle encji, zapisany stan do przywrócenia i grupy encji. Metody async_will_remove_from_hass i async_added_to_hass nie będą już wywoływane, więc integracja nie rozbierze i nie zbuduje encji od nowa tylko dlatego, że nadałeś jej lepszy identyfikator.
W tę samą stronę idzie zmiana opisana na tym samym blogu 6 października. Od wersji 2026.11 stany zapisywane przez mechanizm przywracania stanu są przypisane do identyfikatora encji w rejestrze, a nie do jej identyfikatora widocznego dla użytkownika. Zapisany stan podąża więc za encją po zmianie identyfikatora i nigdy nie trafi do innej encji, która przypadkiem dostanie stary identyfikator.
Co muszą zrobić autorzy integracji
Wbudowane integracje od razu korzystają z nowego zachowania. Integracje niestandardowe, także te instalowane przez HACS, dostają okres przejściowy. Jeśli własne klasy takiej integracji implementują async_prepare_to_add_to_hass, async_added_to_hass albo async_will_remove_from_hass, jej encje nadal będą usuwane i dodawane ponownie, dopóki autor nie doda nowej metody async_entity_id_changed. Home Assistant wywołuje ją po przełączeniu i przekazuje stary identyfikator. To w niej trzeba zaktualizować wszystko, co zależy od identyfikatora encji, na przykład nasłuchiwanie zmian stanu albo sygnały wewnętrzne. Jeśli nic nie trzeba zmieniać, wystarczy metoda, która tylko wywołuje super(). Tryb zgodności zniknie w Core 2027.11.
Ten sam wpis wprowadza drugą metodę, async_prepare_to_add_to_hass, dostępną od wersji 2026.10. Uruchamia się, zanim platforma encji przetworzy wpis w rejestrze, nawet wtedy, gdy dodanie encji zostanie przerwane, na przykład dlatego, że encja jest wyłączona. Zastępuje dotychczasowe nadpisywanie metody add_to_platform_start, choć ta nigdy nie była do tego przeznaczona.
Co to oznacza dla użytkowników
Dla większości osób zmiana identyfikatorów encji powinna być po prostu lżejsza i bezpieczniejsza: bez zbędnego rozbierania i budowania encji od nowa, a zapisany stan zostaje przy encji. Jeśli korzystasz z integracji niestandardowych, okres przejściowy cię chroni, bo dopóki ich autorzy nie wprowadzą nowej metody, zachowują one dotychczasowy sposób działania. Gdyby taka integracja zaczęła sprawiać kłopoty po zmianie identyfikatora, zwłaszcza po wyłączeniu trybu zgodności w wersji 2027.11, najpierw zajrzyj do zgłoszeń w jej repozytorium.