Home Assistant Core 2026.6.0 → 2026.7.0
5 versions, 13 breaking changes in 1 version, 0 required stops
Version by version, oldest first
2026.6.1 – 2026.6.4: no action items (4 versions)
2026.7.0 2026-07-01
Quoted from www.home-assistant.io/blog/2026/07/01/release-20267/#backward-incompatible-changes
Breaking
Purpose-specific triggers and conditions
Several entity triggers and conditions, part of the new purpose-specific triggers and conditions, have been renamed so their keys are consistent across all domains. The old keys no longer work.
The following triggers changed:
battery.lowis nowbattery.became_lowbattery.not_lowis nowbattery.no_longer_lowlawn_mower.dockedis nowlawn_mower.returned_to_dockschedule.turned_offis nowschedule.block_endedschedule.turned_onis nowschedule.block_startedtimer.time_remainingis nowtimer.remaining_time_reachedupdate.update_became_availableis nowupdate.became_availablevacuum.dockedis nowvacuum.returned_to_dock
The following conditions changed:
climate.target_humidityis nowclimate.is_target_humidityclimate.target_temperatureis nowclimate.is_target_temperature
If an automation or script uses one of these, it will stop working until updated. To fix it, open the affected automation or script, re-select the trigger or condition (it now appears under its new name), and save. If you edit in YAML, replace the old key with the new one from the list above.
Breaking
BSB-LAN
The BSB-LAN integration has reduced its support for the older version 1 JSON API. If your BSB-LAN device runs very old firmware that only speaks the version 1 API, update it to firmware that supports the version 2 API to keep everything working.
A repair notification will let you know if your device is affected.
Breaking
iCloud
The battery_level attribute has been removed from iCloud device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.
Breaking
Person
Person entities no longer report the latitude and longitude of the home zone when their location comes from a presence scanner associated with the home zone.
If you have automations or scripts that check the coordinates of a person, adjust them. To check whether a person is in a specific zone, use the new in_zones state attribute instead.
Breaking
Rabbit Air
The Rabbit Air fan preset mode values changed from title case to lowercase to match Home Assistant's state convention: Auto is now auto, Manual is now manual, and Pollen is now pollen. The user-facing labels stay the same through translations.
Update any automations, scripts, templates, or action calls that reference the old title-case preset values.
Breaking
Reolink
Reolink Duo PoE and Duo WiFi dual-lens cameras now expose a sub-device per lens. The camera and motion/AI sensor entities that previously had a "lens 0" or "lens 1" suffix in their name are moved to the new lens sub-devices and lose that suffix. Entity IDs and custom names stay the same, so most automations keep working.
If you target these entities through the camera device, update them to use the new lens sub-devices.
Breaking
StarLine
The battery_level attribute has been removed from StarLine device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.
Breaking
Tesla Fleet
The route device tracker (device_tracker.<vehicle>_route) no longer reports the active route's destination name as its state. Its state is now derived from your zones like a normal device tracker (home, not_home, or a zone name), based on the route's coordinates.
The destination name is still available through the new destination sensor (sensor.<vehicle>_destination), which is disabled by default. Enable it from the entity settings if you have automations that relied on the destination name, and update any automations that matched the old route tracker state.
Breaking
Teslemetry
The route device tracker no longer reports the active route's destination as its state or through a location_name attribute. Its state is now derived purely from the route's coordinates (zone-aware, like home or not_home).
If you relied on the destination name, enable the new Destination sensor (sensor.*_destination), which is disabled by default and reports the destination name as Tesla provides it.
Breaking
Tractive
The battery_level attribute has been removed from Tractive device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.
Breaking
Zeroconf
The legacy requires_api_password field has been removed from the Home Assistant zeroconf/mDNS discovery announcement (_home-assistant._tcp). It had been hardcoded to true since the http.api_password authentication mechanism was removed in Home Assistant 2024.7, so it no longer carried any meaning. The official companion apps already ignore it.
Third-party discovery clients that still read this field need to tolerate its absence.
(@agners - #173090) (Zeroconf documentation) (API documentation)
Breaking
Zone
The state (person count) and persons attribute of zone entities are now calculated from the in_zones attribute of person entities. As a result, a person can now be counted in more than one zone at the same time. For example, a person who is home with in_zones: ["home", "near_home"] now counts toward both zone.home and zone.near_home, where previously they only counted toward zone.home.
In addition, the state of position-aware device trackers is now the smallest zone the device is in, instead of the zone whose center it is closest to.
Automations, scripts, or templates that depend on zone person counts or on device tracker zone states may need to be adjusted.
Breaking
Z-Wave JS
This release requires an updated Z-Wave JS server. You need zwave-js-server 3.9.0 or newer (schema 49):
- If you use the Z-Wave JS app, update it to at least version 1.4.0.
- If you use the Z-Wave JS UI Docker container, update it to at least version 11.19.1.
- If you run your own zwave-js-server, update it to at least version 3.9.0.
Release notes from github.com/home-assistant/core/releases, and the official release blog, checked 18 hours ago. Only text the vendor marks as breaking, or puts in a warning/caution/important note, is shown; read the full notes for anything else. Home Assistant lists its breaking changes in the “Backward-incompatible changes” section of each monthly release post on home-assistant.io (2020.12 onward). Each entry of that section is quoted as “Breaking” on the x.y.0 release, under the integration name the post gives it. The post’s “Farewell to the following” section (integrations removed in that release, 2020.12–2024.5) is quoted whole as “Note”. The post's separate section for custom integration developers is not quoted. Patch releases are listed but their notes (lists of fixes) are not quoted. Versions come from PyPI (package homeassistant).