Home Assistant Core 2026.7.0 → 2026.9.4
13 versions, 17 breaking changes in 2 versions, 0 required stops
Version by version, oldest first
2026.7.1 – 2026.7.4: no action items (4 versions)
2026.8.0 2026-08-05
Quoted from www.home-assistant.io/blog/2026/08/05/release-20268/#backward-incompatible-changes
Breaking
AirNow
The station radius option has been removed. The 2026 AirNow API no longer uses a distance parameter, so the radius had no effect on which reporting station was used. Existing entries are updated automatically, and any radius you had set is discarded. No action is needed.
Breaking
Breaking
Edifier Infrared
If you set up the Edifier Infrared integration for the R2000DB or R2730DB speakers, some buttons were mapped to the wrong infrared codes (on the R2730DB, power and mute were swapped). The mappings are now corrected and migrated automatically. If you built automations or scripts around the old, incorrect buttons, update them to match.
Breaking
Ohme
The Ohme energy sensor has been removed. It reported an estimate of the energy stored in the car's battery rather than the energy delivered by the charger, which caused confusing jumps in the energy dashboard, and the vendor's API no longer provides a useful value.
If you tracked this sensor, use an Integration - Riemann sum helper on a power sensor to estimate the energy instead.
(@dan-r - #174664) (Ohme documentation)
Breaking
Paperless-ngx
Paperless-ngx now requires a newer version of your Paperless-ngx server. The minimum supported server version is raised to 2.19, which also restores compatibility with Paperless-ngx 3.0. If your Paperless-ngx server is on version 2.18 or older, update it before you update Home Assistant.
Breaking
Robot vacuums
The deprecated battery_level property has been removed from the vacuum entities of several integrations. If you use a robot vacuum's battery level in an automation, script, or on a dashboard, use the vacuum's battery sensor instead.
This affects the following integrations:
(@gjohansson-ST - #175681, #175684, #175685, #175686, #175687, #175688, #175691, #175764)
Breaking
ScreenLogic
The option to configure the polling interval has been removed from ScreenLogic. Home Assistant now polls the integration at a fixed interval. If you need a different update frequency, you can set your own polling interval or trigger an update with the homeassistant.update_entity action.
Breaking
UniFi Protect
Support for UniFi Protect AI Port devices has been removed. These devices only ever exposed diagnostic sensors, all disabled by default, and are not part of the UniFi Protect public API the integration is moving to. The AI Port device and its sensors are removed automatically when you update. You can still configure the AI Port directly in UniFi Protect.
(@RaHehl - #174378) (UniFi Protect documentation)
Detection scores are no longer available. The detection binary sensors (motion, person, vehicle, animal, and the smart-audio alarm sensors) now take their state from the UniFi Protect public API, which carries no per-event score, so their event_score attribute is gone and automations that filter on it need another condition. The event id and the detected types moved to the new Motion detection, Smart detection, and Sound detection event entities.
(@RaHehl - #174948) (UniFi Protect documentation)
UniFi Protect 7.1 or newer is now required. On an older console the integration reports that the version is too old instead of setting up. Update UniFi Protect to 7.1 or newer to keep using it.
Breaking
Volvo On Call
The Volvo On Call integration has been removed. If you have a supported Volvo, set up the newer Volvo integration instead.
2026.8.1 – 2026.8.3: no action items (3 versions)
2026.9.0 2026-09-02
Quoted from www.home-assistant.io/blog/2026/09/02/release-20269/#backward-incompatible-changes
Breaking
Flexit Nordic (BACnet)
The deprecated fireplace mode switch entity has been removed. If you have automations or scripts that use switch.<device>_fireplace_mode, use the climate.set_preset_mode action on the Flexit climate entity with preset_mode: fireplace instead.
(@magnusoverli - #179272) (Flexit Nordic (BACnet) documentation)
Breaking
KNX
KNX exposes no longer send an entity's first value to the KNX bus. Previously, this depended on timing: if the entity already had a value when the expose was set up, nothing was sent, but if the value arrived later, it was sent to the bus right away.
Now, both cases behave the same way. The first value is adopted locally without sending a telegram, but stays available for read requests and periodic sending. Later value changes are still sent as before.
To send the first value right away, turn on Send on initialization for the expose in the KNX panel, or set send_on_init: true in your YAML configuration.
(@Kolbi - #178793) (KNX documentation)
Breaking
LLM APIs
LLM tool names are now prefixed with the domain of the integration that offers them. For example, GetLiveContext becomes homeassistant__GetLiveContext and HassTurnOn becomes intent__HassTurnOn. If you have a custom prompt that names a tool directly, update it to use the new prefixed name.
Breaking
Persistent Notification
Updating a persistent notification that already exists now triggers an update_type of updated instead of added. If you have an automation that triggers on an update_type of added to catch every new or changed notification, add updated to the list of types it triggers on.
(@davidlang42 - #171067) (Persistent Notification documentation)
Breaking
UniFi Protect
The smart detection switches (for example Detections: Person, Detections: Vehicle, and the audio alarm toggles) are no longer hidden while recording is disabled. They now stay available and follow the same public API as the other camera configuration switches. Their entity IDs and what happens when you toggle them are unchanged.
(@RaHehl - #174963) (UniFi Protect documentation)
UniFi Protect 7.2.105 or newer is now required. On an older version, the integration stops setting up and tells you to update. Update UniFi Protect, then reload the integration.
Breaking
Update
Installing an update, skipping an update, and clearing a skipped update now require an administrator account. These are configuration-level actions, so they are now restricted to admins, like other sensitive actions in Home Assistant.
Automations are not affected, because they run without a user context. A script runs in the context of the user who started it, so a script that installs or skips an update now fails when a non-admin user starts it. Trigger it from an automation instead, or start it as an admin.
Breaking
Vacuum
The deprecated battery_level property has been removed from the base vacuum entity. All core vacuum integrations were already migrated in Home Assistant 2026.8. If a custom integration still sets this property, it no longer reports a battery level; add a separate battery sensor instead.
Breaking
Z-Wave JS
The Z-Wave actions to manage lock users and credentials (set_user, delete_user, delete_all_users, set_credential, delete_credential, and delete_all_credentials) now require an administrator account.
2026.9.1 – 2026.9.4: no action items (4 versions)
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).