"Turn on every light downstairs except the kitchen" has so far meant giving up on the floor as a target and listing each light by hand. Home Assistant now has a way around that. A set of changes merged on 22 October 2026 adds exclusions to the targets of actions, triggers and conditions. The code is in the development branch, so it should ship with Home Assistant 2026.11.

The exclude block

The backend change by Jan-Philipp Benecke adds an exclude block inside target. It takes the same keys as the target itself, so you can leave out entities, devices, areas, floors and labels. The example from the documentation turns on the ground floor lights except those in the kitchen and those with the Night light label:

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

The useful part is that exclusions are resolved again every time, just like the target. If you later add a lamp to the kitchen, the automation leaves it out without any edit. A list of individual entities could never do that.

A few rules apply. An exclude block cannot be a target on its own, cannot be nested inside another exclude, and cannot use all or none. An exclusion that matches nothing is ignored and not logged. Excluding an old-style group such as group.downstairs_lights removes only the group entity, not its members; to drop the members, exclude them, their area or their label. If the target includes config and diagnostic entities, excluding an area removes those too.

A follow-up fix merged the same evening makes conditions with exclusions notice changes in the entity and device registries.

In the visual editor

Three frontend pull requests bring the same feature to the UI. The target picker gets an Exclude button next to Add target. It only offers items that overlap the selected targets. Each exclusion is shown muted under every target it affects, with a "Removes N" count, and targets read "N entities (M excluded)". Exclusions that no longer remove anything, for example because the excluded item was deleted, move to a separate Exclusions with no effect section where you can clear them.

You can also exclude from the target details. Each floor, area, device and entity row gets a checkbox. Unticking an area or device excludes the area or device itself, not its current entities, so the exclusion keeps working as things change. Some rows are locked, for example an entity excluded through a label or through an excluded area above it. Those show a disabled checkbox and an "Excluded by" chip, and you bring them back by removing the exclusion that caused it. Changes take effect after Apply.

For now the Exclude button appears only in the target selector used by automations, scripts and blueprints. Other places that use the same picker, such as history and the logbook, do not handle exclusions yet.

The work implements an approved item on the Open Home Foundation roadmap, which is still marked as Building.