A new home for every contributor
The developer docs, the design portal, and the data science portal are now one site, for everyone who helps build Home Assistant, code or no code.
News for contributors. Every area has its own feed, or follow all posts.
The developer docs, the design portal, and the data science portal are now one site, for everyone who helps build Home Assistant, code or no code.
DeviceInfo and ChildDeviceInfo are no longer TypedDicts. They are dataclasses with typed fields, which are read and written as attributes.
Two new entity lifecycle hooks have been added: async_prepare_to_add_to_hass and async_entity_id_changed.
No authors match
No posts in 2026 match these filters. Pick another year on the timeline.
As of Home Assistant Core 2026.11, update entities can override the new has_update property to determine whether an update is available.
A new UnitOfMeasurementSelector lets users pick a unit of measurement in a config, options, or subentry flow, and in blueprints.
As of Home Assistant Core 2026.11, climate entities have a new temperature_unit state attribute, and the temperature properties integrations implement have been renamed with a native_ prefix.
As of Home Assistant Core 2026.11, water heater entities have a new temperature_unit state attribute, and the temperature properties integrations implement have been renamed with a native_ prefix.
As of Home Assistant Core 2026.11, states stored by the restore state helper are indexed by the entity's entity registry ID instead of by its entity ID.
Since Home Assistant Core 2026.9, schema validation runs on Probatio instead of voluptuous.
As of Home Assistant Core 2026.10, the homeassistant integration can translate abort reasons that every integration words the same way.
As of Home Assistant Core 2026.10, an LLM tool returns an llm.ToolResult instead of a plain JSON object.
Integration migration async_migrate_entry method can now raise config entry exceptions instead of only being limited to return False.
DeviceEntry.config_entries deprecation is now enforcedThe device registry's multi-config-entry compatibility properties — DeviceEntry.config_entries, DeviceEntry.config_entries_subentries and DeviceEntry.primary_config_entry — were announced as deprecated in Devices are restricted to a single config entry and at most one subentry, but reading them was still silent.
As of Home Assistant Core 2026.10, LawnMowerEntity supports a stop action and an IDLE activity.
As of Home Assistant Core 2026.10, the OAuth2 helper raises exceptions that config entry setup already understands, so integrations no longer translate OAuth2 failures themselves.
New selectors are available to choose a device class or sensor state class.
As of Home Assistant Core 2026.10, modbus.get_hub is deprecated. It will be removed in Home Assistant Core 2027.10.
The Configurator integration has been deprecated and will be removed in Home Assistant 2027.10.
This is a follow-up to Devices are restricted to a single config entry and at most one subentry, and covers additional device registry deprecations, a few new helper methods, and some stricter validation that landed after that post.
This post describes changes to the device registry WebSocket API — the commands and device serialization consumed by the frontend, custom cards, and other WebSocket clients.
We added ha-split-panel, a Home Assistant wrapper around the Web Awesome split panel component.
Button event entities now have a set of standard event types, provided by the new ButtonEventType enum.
A device is now owned by a single config entry, and by a single (or no) config subentry.
AI-assisted development has become part of daily reality for many contributors, and for us as maintainers too.
Modbus is everywhere in the modern home: solar inverters, energy meters, heat pumps, and all kinds of industrial equipment that has found its way indoors.
Media sources can now implement search. By adding an async_search_media method to your MediaSource, users can search through your media directly from the media browser.
The dedicated home_assistant_start flag of async_initialize_triggers is deprecated and will be removed in Home Assistant Core 2027.8.
As of Home Assistant Core 2026.7, the following unit constants are deprecated and replaced by a corresponding enum:
ha-button, ha-button-toggle-group, and ha-slider now use the short Web Awesome size names.
There have been multiple recent changes to the device tracker entity model:
As of Home Assistant 2026.6, custom cards can show up as suggestions in the card picker.
ha-radio was removed from our codebase, we use the webawesome based ha-radio-group with ha-radio-option now.
User profile advanced mode is going away, which means integrations can no longer check if advanced mode is enabled or not in data entry flows.
The BrowseMediaSource class in the media_source integration has been tightened up.
The condition and script APIs have been changed.
As of Home Assistant 2026.4, the hass object exposes a formatEntityName helper. It is the same function used by the built-in cards (tile card, entity rows, ...) to compute the display name of an entity from its registry context (entity, device, area, floor).
In the future, the MQTT publish API will require explicit values for qos and retain.
The MQTT publish API now supports setting a message expiry interval. Previously, retained messages were stored by the broker until they were replaced or explicitly cleared.
As of Home Assistant Core 2026.6, using a config entry listener together with any reloading methods in a config flow is deprecated and will result in an error from 2026.12.
A new component replaces mwc-progress-bar in our codebase and is fully themeable.
Last release we introduced the lazy context and we wanted to use hass context and lazy context more in favor of passing the hass object.
Existing integrations and libraries communicating with serial ports should migrate from pyserial, pyserial-asyncio, and pyserial-asyncio-fast to serialx.
Home Assistant now has a radio_frequency entity platform that decouples RF transceiver hardware from the devices it controls.
As of Home Assistant 2026.5, you can now register custom dashboard strategies, just as you can with custom cards, making them easier to discover and add using the new dashboard dialog under the Community dashboards section.
The legacy (non-config-entry) device tracker platform API is deprecated and will be removed in the Home Assistant 2027.5 release.
Doorbell event entities now have a standard ring event type. Integrations that use EventDeviceClass.DOORBELL must include DoorbellEventType.RING in their event_types list.
Integrations that set entity_id directly on an entity will now be validated to ensure the domain portion matches the platform's domain.
The legacy home-assistant/builder container and the old home-assistant/builder GitHub Action have been retired.
Home Assistant now has an infrared entity platform that decouples IR emitter hardware from the devices they control.
We keep migrating our Material Design based components to Web Awesome based. This time we migrated the input components, which leads to an API change but the look and feel stays the same for now.
Each dialog managed by the dialog manager was only opened once and stayed in the DOM for the lifetime of the application.
In the Home Assistant frontend, a Context is a way to share data across the component tree without explicitly passing it through every level as a property.
The BackupAgent.async_upload_backup method now receives a new on_progress callback parameter.
Starting with Home Assistant 2026.3, custom integrations can include their own brand images (icons and logos) directly in the integration directory.
In October 2022, Home Assistant migrated the preferred color temperature unit from mired to kelvin.
Starting as of 2026.3, we're enhancing how the OAuth 2.0 helper handles token request and refresh token failures.
Integrations that use the webhook config flow helper (homeassistant.helpers.config_entry_flow.register_webhook_flow) now support reconfiguration.
The async_listen helper in the labs integration has been deprecated in favor of async_subscribe_preview_feature.
By replacing pre-commit with prek we can increase the performance of our checks.
Starting in 2026.7, installation of pyserial-asyncio will be blocked in Home Assistant.