Introducing description placeholders for service action translations
It is now possible to use translation placeholders for (custom) service actions.
News for contributors. Every area has its own feed, or follow all posts.
No authors match
No posts in 2025 match these filters. Pick another year on the timeline.
It is now possible to use translation placeholders for (custom) service actions.
The Store class from homeassistant/helpers/storage.py accepts a new constructor argument serialize_in_event_loop
Integrations that use MQTT might need to wait for a subscription to complete before they initiate actions.
Button entities representing a device identification mechanism (using IDENTIFY device class) are now required to have their entity category set to DIAGNOSTIC.
We're excited to announce a new system for shipping preview features in Home Assistant:
Integrations using the Data Update Coordinator can enhance the UpdateFailed exception with a new parameter retry_after to defer the next scheduled refresh by a specified number of seconds and then resume the normal cadence once the API has recovered.
The capability_attributes field has been removed from CalculatedState. Capability attributes are still included in all attributes, which remain available in CalculatedState.
Integrations using Application Credentials and Configuration via OAuth2 need to update their error handling to correctly handle configuration when the internet is down.
The method convert_interval in TemperatureConverter (allowing conversions between °F and °C intervals) has been deprecated in favor of TemperatureDeltaConverter.convert.
Action translations defined in strings.json are no longer included in responses from the WebSocket get_services command and the REST /api/services endpoint because they were incomplete and the Home Assistant frontend did not use them.
The Python and WS APIs for injecting and modifying statistics have changed.
The device filter option is no longer supported by the target selector and has been removed from the target selector documentation.
The update coordinator with debouncer active will now accept a request for an update while an update is currently in progress.
Platform entity services should be registered by calling the helper service.async_register_platform_entity_service from the integration's async_setup instead of calling platform.async_register_entity_service during platform set up.
Providing hass argument to the following service helpers is deprecated: verify_domain_control, extract_entity_ids, async_extract_entities, async_extract_entity_ids, and async_extract_config_entry_ids.
The unit prefix μ is used by unit of measurement constants like μV and μS. There are however two different Unicode encodings of μ:
The DeviceEntry.suggested_area attribute is deprecated and will be removed in HA Core 2026.9.
The result attribute has been removed from the homeassistant.data_entry_flow.FlowResult typed dict, and is now present only when needed, i.e. homeassistant.auth.models.AuthFlowResult and homeassistant.config_entries.ConfigFlowResult.
Helper integrations should not add their own config entries to the source entity's device or to a user selected device.
The media player state MediaPlayerState.STANDBY has been deprecated as decided in home-assistant/architecture#799 and will be removed in Home Assistant Core 2026.8.
With the release of Home Assistant OS 16, the default limit for open file descriptors in Docker containers (and, by extension, all add-ons and the processes within them) has changed.
As of Home Assistant Core 2025.8, the two properties for battery in StateVacuumEntity, battery_level and battery_icon, have been deprecated.
If a numeric sensor doesn't have a suggested display precision set by its integration, Home Assistant will now use a default display precision based on the sensor's device class.
Icon translations now support defining icons based on numeric ranges. This means integration authors can define icons that change based on numeric values without implementing custom logic in their code.
The type of location_accuracy attribute (short hand _attr_location_accuracy) of the TrackerEntity class of the device_tracker entity component has been changed from int to float.
Media players can now allow users to search through the media, by adding MediaEntityFeature.SEARCH_MEDIA and implementing async_search_media.
UnitSystem class is changed to a frozen data class, and all instances derived from it are now frozen.
ConfigSubentryFlow._reconfigure_entry_id has been renamed to ConfigSubentryFlow._entry_id and ConfigSubentryFlow._get_reconfigure_entry has been renamed to ConfigSubentryFlow._get_entry.
The implementation of the toggle action service has been adjusted in the media player base class.
The BackupAgent API has been adjusted such that the following methods should now raise BackupNotFound when a backup is not found:
Creating a config entry with a unique ID already present in the registry is deprecated, and will now log a warning.
Config entry state transitions when unloading and removing entries has been modified:
In the January release of 2025, we introduced a new feature for backups called backup agents.
Config entries now have a new data type called “config subentry”. Config subentries are owned by a config entry and set up as part of async_setup_entry.
A new ENERGY_DISTANCE device class for representing energy per distance is now available for number and sensor entities, together with automatic unit conversion based on the unit system.
To reduce current reliance on optional integrations for names that are in essence used as helpers, the following ServiceInfo models have been relocated: