Żeby włączyć wszystkie światła na parterze oprócz kuchni, trzeba było dotąd zrezygnować z piętra jako celu i wypisać każdą lampę z osobna. Home Assistant wreszcie to upraszcza. Zmiany scalone 22 października 2026 dodają wykluczenia do celów akcji, wyzwalaczy i warunków. Kod jest w gałęzi rozwojowej, więc powinien trafić do Home Assistanta 2026.11.

Sekcja exclude

Jan-Philipp Benecke dodał w części serwerowej sekcję exclude wewnątrz target. Przyjmuje ona te same klucze co sam cel, więc można wykluczyć encje, urządzenia, obszary, piętra i etykiety. Przykład z dokumentacji włącza światła na parterze z wyjątkiem kuchni i lamp z etykietą „Night light”:

action: light.turn_on
target:
  floor_id: ground_floor
  exclude:
    area_id: kitchen
    label_id: night_light

Najważniejsze jest to, że Home Assistant sprawdza wykluczenia za każdym razem od nowa, tak jak cel. Jeśli później dołożysz lampę w kuchni, automatyzacja ją pominie bez żadnej poprawki. Ręcznie wypisana lista encji tego nie potrafi.

Obowiązuje kilka zasad. Sama sekcja exclude nie jest poprawnym celem, nie można jej zagnieżdżać w innej sekcji exclude ani używać w niej all i none. Wykluczenie, które do niczego nie pasuje, nie ma żadnego skutku i nie trafia do dziennika. Wykluczenie grupy w starym stylu, na przykład group.downstairs_lights, usuwa tylko encję grupy, a jej członkowie zostają. Żeby ich pominąć, wyklucz ich bezpośrednio albo przez obszar lub etykietę. Jeśli cel obejmuje encje konfiguracyjne i diagnostyczne, wykluczenie obszaru usuwa także je.

Poprawka scalona tego samego wieczoru sprawia, że warunki z wykluczeniami zauważają zmiany w rejestrach encji i urządzeń.

W edytorze wizualnym

Trzy zmiany w interfejsie przenoszą tę funkcję do edytora. Obok przycisku „Add target” w wyborze celów pojawia się przycisk „Exclude”. Proponuje on tylko to, co pokrywa się z wybranymi celami. Każde wykluczenie jest widoczne, przygaszone, pod każdym celem, którego dotyczy, z licznikiem „Removes N”, a przy celu widać „N entities (M excluded)”. Wykluczenia, które już niczego nie usuwają, na przykład dlatego, że wykluczony element skasowano, trafiają do osobnej sekcji „Exclusions with no effect”, gdzie można je usunąć.

Wykluczać można też w szczegółach celu. Każdy wiersz piętra, obszaru, urządzenia i encji dostaje pole wyboru. Jeśli odznaczysz obszar albo urządzenie, wykluczysz je w całości, a nie tylko encje, które mają w tej chwili, więc wykluczenie nadąża za późniejszymi zmianami. Niektórych wierszy nie da się zaznaczyć z powrotem, na przykład encji wykluczonej przez etykietę albo przez wykluczony obszar wyżej. Mają wtedy nieaktywne pole wyboru i oznaczenie „Excluded by” z nazwą tego, co je wyklucza. Żeby je przywrócić, trzeba usunąć to wykluczenie. Zmiany zapisuje przycisk „Apply”.

Na razie przycisk „Exclude” jest dostępny tylko w wyborze celów w automatyzacjach, skryptach i schematach. Historia, dziennik zdarzeń i inne miejsca z tym samym wyborem jeszcze nie obsługują wykluczeń.

To realizacja zatwierdzonego punktu z planu prac Open Home Foundation, który wciąż ma status „Building”, czyli w budowie.