2025.3: View those headers!

Home Assistant 2025.3! 🎉

But! Before I dive into the release, let me quickly catch you up on things you might have missed. There is a lot of cool stuff happening lately!

We had a live stream about Assist: Voice chapter 9! Here we announced Speech-to-Phrase, a voice recognition technology that is blazing fast and super accurate, even on a Raspberry Pi! 🚀

I’m also super stoked about the announcement that Apollo Automation has joined the Works with Home Assistant program 🥰

And our friends at Music Assistant have shipped their next big hit! With awesome new features like Spotify Connect, Assist optimization, an equalizer, and podcast & audiobook support. 🎶

Great stuff, right? But this release today is also packed with amazing things!

After a few releases focusing on backups, we are back with a release packed with new features and improvements, mostly focusing on dashboards! 🤩

The new abilities, the tile card’s fine-tuning, and the dashboard view’s new headers are really cool; I can’t wait to see screenshots of your dashboards with these new features! 📸

Enjoy the release!

../Frenck

Dashboard view headers

This release brings a whole new look with the ability to add headers to your dashboards. This allows you to add a title and welcoming text to your dashboards using Markdown and even templates. Additionally, this gives you a lot of space for badges next to the header.

As always, we’ve baked in a lot of customization, with the ability to align the header in multiple different ways. It comes with a responsive layout by default, but you can also set it to always be left-aligned or center-aligned.

Screenshot showing the new header feature in the dashboard view.

The badges can also be positioned below the text (default) or above the text. A great visual menu makes it easy to choose how you want to organize your header.

Tile cards

This release has made many improvements and fine touches to the tile card. It is one of the most versatile cards in Home Assistant, and we have made it even better!

Making tile card interactions clearer

There is no doubt the tile card can do a lot, but ever since its creation, it has had a little flaw that you might have run into yourself…

How would you know if tapping the icon on the tile card would trigger an action or whether it would just display more information? We have addressed this with some subtle visual language in this release!

Screenshot showing tile cards with and without direct actions on their icons. The ones that do have a direct action have a circular background, others don't.

When tapping the icon on the tile card directly performs an action, like for example, turning on a light, the icon will have a circular background around it. In all other cases, the little circle will not be displayed.

Now you know! 👍

Position tile card features

Since we added support for resizing cards, we gained the ability to make very wide tile cards. These cards have a lot of empty space surrounding them, which can be helpful at times.

But what if you could do something useful with that space? Now you can! All features of a tile card can now be positioned inline in the tile card!

Screenshot showcasing the new inline tile card features (versus the existing bottom feature

This brings a completely new look and feel, which we are sure you will love! From the settings, you can add a feature, like a brightness slider, and position it either below (bottom) or to the right side of the icon (inline).

Note

Only the first feature can be positioned inline; the rest will not be displayed.

New tile card features

This release also ships with two new tile card features that can be added to your entities to provide new controls. @jpbede contributed these, so a big shout out to him!

Switch toggle

The first addition is one that is just surprising we didn’t have it before: A switch toggle! This allows you to toggle a switch entity directly from the tile card.

Screenshot showing the new tile card feature for switch entities.

Counter actions

The second addition is a counter toggle. This allows you to add a button to increase, decrease, or reset a counter entity directly from the tile card.

Screenshot showing the new tile card feature for counter helper entities.

Tiny interaction improvements

More tweaks to the tile card have been made to improve their interaction experience. For example, we now have nice little animations when you hover over the tile card, making it more apparent that it is interactive. Still, when you tap the tile card, it will show a little animation to indicate that the tap was registered.

Screenrecording showing the new tiny micro interactions added to the tile card and a small demo of using keyboard navigation

Another nice addition is that the tile card can now interact with your keyboard! Tab and shift + tab your way across the screen like the keyboard warrior you are.

Editor improvements

Not just the tile card itself has been improved, but also the editor for the tile card has been improved. It is now clearer and easier to use.

The new control gives you a better overview of what the option will do for the tile card.

Screenshot showing the brand new visual card editor that make it more visually clear what options do.

Assist chat now has streaming responses

If you have hooked up an LLM, like ChatGPT, to your Assist as a conversation agent, it will now livestream the responses to you when you are text chatting with it!

When experimenting with larger models, or on slower hardware, LLM’s can feel sluggish. They only respond once the entire reply is generated, which can take frustratingly long for lengthy responses (you’ll be waiting a while if you ask it to tell you an epic fairy tale).

We’ve added support for LLMs to stream their response to the text chat, allowing you to start reading while the response is being generated. A bonus side effect is that commands are now also faster: they will be executed as soon as they come in, without waiting for the rest of the message to be complete.

There was quite a lot more to tell around Assist and the new voice features; in case you missed it, you can read all about it in this blog post:

📰 Speech-to-Phrase brings voice home - Voice chapter 9

Integrations

Thanks to our community for keeping pace with the new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] and improvements to existing ones! You’re all awesome 🥰

New integrations

We welcome the following new integrations in this release:

This release also has new virtual integrations. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. These ones are new:

Noteworthy improvements to existing integrations

It is not just new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have been added; existing integrations are also being constantly improved. Here are some of the noteworthy changes to existing integrations:

SmartThings

The SmartThings integration has been completely rewritten! 🎉 In December, SmartThings shut down the old authentication method, but thanks to SmartThings’ hard work and close collaboration with us, @joostlek was able to bring back the integration is back—better than ever.

No more setting up routing, exposing ports, or creating developer accounts with access tokens—just log in with your Samsung account, and you’re good to go!

And there’s more! Push updates now work without exposing your instance to the internet, making the experience faster, seamless, and more secure! 🚀

A huge shoutout to our amazing community, who played a key role in this effort! 💙 When @joostlek shared a guide on gathering test data, the community stepped up—sending in valuable test data that helped fine-tune the integration. This collaboration truly made a difference!

Other noteworthy changes

There are many more improvements in this release; here are some of the other noteworthy changes this release:

  • Ever upgraded Home Assistant and needed to do a hard refresh in your browser to make it work again? We have been able to reduce the cases in which this happens! Thanks, @bramkragten!
  • @balloob made a small change with a big impact. When you set up a new integration for a new device, Home Assistant will now redirect you to the device page after setting it up. Nice!
  • There is now an option to add an extra margin to the top of a section view. Thanks, @piitaya!
  • The add/edit area dialog has been improved and compacted. They are much more pleasant to use now. Thanks, @jpbede!
  • We now have a device class for the wind direction sensors! Thanks, @edenhaus!
  • @jschlyter has added the energy distance device class for sensors, which supports the following units: kWh/100mi, kWh/100km, and mi/kWh, including conversion between them. Awesome!
  • Media player entities that support browsing media now have a new action available to browse media as an action with a response. Thanks, @PeteRager!
  • @rikroe has added an action to retrieve the configuration of a schedule helper. Thanks!

Iterating on the legends of graphs

Last release, we made quite a big change to the charts by replacing the software we use to make these graphs in Home Assistant. Things changed behind the scenes, but our aim to start was to make it look and feel similar.

However, we received a lot of feedback from the community that the legends shown on the new graphs were suboptimal. Our UX and frontend teams have been working hard to improve this situation and make the new graph legends more similar to the old ones.

A screen recording showing expanding and collapsing the legend

By default, we show the legend below the graph and show as many data points as possible. If there are too many, they will be displayed on demand using the little ellipsis button.

When using these cards on your dashboard, if you want to always show the full legend, a new option will allow you to keep it fully visible.

You can now also zoom in and out, by double clicking on a graph. If you want more control over the range you want to view in your graph, you can press the ctrl/cmd key and then select the range on the graph you want to zoom in on.

Grouping/clustering of trackables on the maps

The map card is perfect for visualizing your entities’ locations, but when too many cluster together in the same spot, it can get a bit cluttered.

To tackle this, we’ve introduced marker clustering, which groups nearby entities together, making it easier to see them at a glance. When zooming in, the markers ‘spider’ out, showing individual entity locations with a connecting line to their original positions. You can temporarily disable clustering with a simple toggle.

Thanks @jpbede and @marcinbauer85 for this awesome improvement!

The map now nicely clusters the items on the same location. This animation shows the ability to expand the cluster of items.

Need help? Join the community!

Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!

Our very active Discord chat server is an excellent place to be at, and don’t forget to join our amazing forums.

Found a bug or issue? Please report it in our issue tracker, to get it fixed! Or, check our help page for guidance for more places you can go.

Are you more into email? Sign-up for our Building the Open Home Newsletter to get the latest news about features, things happening in our community and other news about building an Open Home; straight into your inbox.

Backward-incompatible changes

We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes, it is inevitable.

We always make sure to document these changes to make the transition as easy as possible for you. This release has the following backward-incompatible changes:

Automations & scripts

The wait variable and variables defined by a response_variable set in an inner scope of a script or automation now propagate to outer scopes also if a variables action is present in the inner scope.

Furthermore, variables defined by a response_variable now also propagate out from parallel sequences. Scripts and automations which relied on the older (buggy) behavior might need to be adjusted.

(@arturpragacz - #138883)

GPSD

All state attributes of the main sensor were replaced with a dedicated sensor Home Assistant in 2024.9. The deprecated attributes have now been removed.

(@jrieger - #137600) (documentation)

Home Connect

Some programs and program switches (which are being deprecated) and program select entities may not be exposed anymore by the integration as they are missing an aiohomeconnect program key enumeration (file). You can get the diagnostics from the configuration entry or the device and open an issue or submit a PR with the generated diagnostics file on the aiohomeconnect repository to suggest the missing program(s).

(@Diegorro98 - #136116) (documentation)


Using program and option keys that aren’t in the API documentation in Home Connect actions will no longer work. To be able to use undocumented program or option keys, open an issue or submit a pull request with the required keys at MartinHjelmare/aiohomeconnect.

(@Diegorro98 - #137027) (documentation)


Multiple Home Connect config entries will not be allowed to be configured. For regular users where all appliances in the home are connected to the same Home Connect account, there should not be any reason to have more than one config entry since all appliances in the home will be connected to the same account and config entry.

(@Diegorro98 - #137088) (documentation)

MQTT

Legacy color_mode support for MQTT JSON lights has been removed. The support was deprecated in HA Core 2024.4.

Users with a YAML setup have been instructed to update their configuration in configuration.yaml via repair issue flow. Deprecation issues with MQTT JSON lights set up through discovery were communicated via warnings in the logs. Using the removed parameters in discovery will not break the configuration but will still log a warning.

(@jbouwh - #136996) (documentation)

Proximity

The distance is now measured to the edge of the monitored zones (it takes the radius into account), instead of to the center of the zone as before. This leads to slightly different expected distance values, which you may have to adjust accordingly in your existing automations.

(@Spcemarine - #138819) (documentation)

SmartThings

The energy and power sensors have been removed for every device that has a switch. They rarely worked because there were no energy or power capabilities available to get data from. If you do have the capabilities, it will still work for you.

(@joostlek - #138313) (documentation)


There are a lot of states that have been renamed; this might need an update in your automations or other configurations.

  • Set options for dishwasher job state sensor in SmartThings (#139349)
  • Add translatable states to SmartThings media source input (#139353)
  • Add translatable states to SmartThings media playback (#139354)
  • Add translatable states to oven mode in SmartThings (#139356)
  • Add translatable states to oven job state in SmartThings (#139361)
  • Add translatable states to robot cleaner movement in SmartThings (#139363)
  • Add translatable states to robot cleaner turbo mode in SmartThings (#139364)
  • Add translatable states to washer job state in SmartThings (#139368)
  • Add translatable states to dryer job state in SmartThings (#139370)
Synology DSM

The scan interval option has been removed, and the default of 15 minutes is used. If needed, there is an integration-independent and common way to set a custom polling interval.

(@mib1185 - #138490) (documentation)

TechnoVE

The status sensor state high_charge_period was renamed to high_tariff_period.

(@Moustachauve - #139314) (documentation)

If you are a custom integration developer and want to learn about changes and new features available for your integration: Be sure to follow our developer blog. The following changes are the most notable for this release:

All changes

Of course there is a lot more in this release. You can find a list of all changes made here: Full changelog for Home Assistant Core 2025.3