Jeśli w którymś węźle ESPHome masz listę devices: w sekcji esphome:, następne wydanie nie skompiluje go, dopóki przy każdym urządzeniu podrzędnym nie dopiszesz jednej linijki. Zmiana #21232, scalona z gałęzią rozwojową ESPHome 22 października 2026, dodaje do każdego wpisu na tej liście obowiązkowy klucz relation:. Oznaczono ją jako zmianę niezgodną wstecz i trafi do ESPHome 2026.11.

Co oznacza nowy klucz

Dzięki urządzeniom podrzędnym jedna płytka ESP może pojawić się w Home Assistancie jako kilka urządzeń, każde z własnymi encjami i obszarem. Do tej pory ESPHome opisywał je tylko w jeden sposób, a Home Assistant rejestrował każde jako osobne urządzenie, do którego łączy się przez główny węzeł. Teraz węzeł musi wskazać, który z dwóch przypadków zachodzi:

  • via oznacza osobne fizyczne urządzenie, do którego dociera się przez ten węzeł, na przykład czujnik radiowy za mostkiem 433 MHz albo coś podłączonego przez UART, ESP-NOW lub UDP. Tak Home Assistant zawsze traktował urządzenia podrzędne.
  • child oznacza logiczną część samego węzła, na przykład jedną strefę sterownika wielostrefowego.

Co trzeba zmienić

Klucz nie ma w YAML wartości domyślnej, więc konfiguracja z esphome: devices: nie przejdzie walidacji, dopóki nie ustawisz go przy każdym urządzeniu podrzędnym. Żeby wszystko działało jak dotąd, dopisz relation: via:

esphome:
  devices:
    - id: front_door_device
      name: Czujnik drzwi wejściowych
      relation: via

W sterowniku wielostrefowym każda strefa dostałaby za to relation: child. Opis nowej opcji scalono w dokumentacji na esphome.io razem z kodem.

Co dzieje się po stronie Home Assistanta

Wartość trafia do Home Assistanta jako nowe pole w informacjach o urządzeniu, które wysyła natywne API. Jeśli pola nie ma, przyjmowane jest via, więc nowe wersje odczytają starsze oprogramowanie jako via, a stare po prostu je pominą. ESPHome nie podnosi z tego powodu wersji API. Odpowiednią zmianę w bibliotece aioesphomeapi, przez którą Home Assistant rozmawia z ESPHome, scalono 21 października.

Żeby child faktycznie działało inaczej, potrzebna jest jeszcze zmiana w Home Assistant Core (#186150), która wciąż czeka na scalenie. Rejestrowałaby ona urządzenia podrzędne jako dzieci głównego urządzenia ESPHome, a nie powiązywała je przez via_device. Jej autorzy uprzedzają, że wtedy automatyzacja, skrypt albo akcja skierowane na główne urządzenie obejmą też encje jego dzieci, a dzieci bez przypisanego obszaru przejmą obszar głównego urządzenia. Istniejące urządzenia podrzędne zostałyby przekształcone na miejscu i zachowałyby swoje identyfikatory. Dopóki ta zmiana nie wejdzie, wybór child jest głównie przygotowaniem konfiguracji na przyszłość.

Pamięci RAM ubywa niewiele. Gdy wszystkie urządzenia podrzędne w węźle mają tę samą relację, ESPHome nie zapisuje niczego dodatkowego. Dopiero węzeł, w którym są zarówno via, jak i child, dostaje osobne pole dla każdego urządzenia, a to przez wyrównanie danych zajmuje 4 bajty na urządzenie.