2024.10: Heading in the right direction

Boo! 👻

Please don’t be scared; it is October, Halloween is coming, and so is the next Home Assistant release: 2024.10! 🎃

The release we bring you today is a perfect mix of new UI features, advanced features, improvements, and lots of bug fixes while not being too overwhelming. There is something for everyone in this release.

Most notably, we have a brand new heading card. It allows you to add titles or subtitles to your dashboards, make them clickable, and even add cute little entities to them. The new section dashboard gets better and better with every release, which is super exciting!

We also introduce some small YAML automation syntax changes. If you are still a sucker for writing your automations in YAMLYAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the configuration.yaml or automations.yaml files. [Learn more] (like me), I’m sure you’ll love these little tweaks that make it all feel more natural.

Enjoy the release!

../Frenck

Heading in the right direction

Update after update, Sections continues to become a customization powerhouse, and this month is no exception. Section titles are replaced with their own card, called the heading card. Making them a card rather than an inline title gives you a lot more flexibility, allowing you to put them nearly anywhere.

The heading card can be used to make titles, but also subtitles, which are half the height and have smaller, lighter text. So, if you have ever had a section that needs to be subdivided, slap a subtitle in there.

Screenshot showing a dashboard using heading cards with titles and subtitles

Titles and subtitles can be made clickable, displaying a chevron when you can interact with them. This can perform an action or navigate to a subpage, like having an energy section title navigate to the full energy dashboard.

Best of all, if you’ve already added titles to your sections, they will be migrated automatically to the new card. 😎

Another headline feature

We had such a fantastic reaction when we released our renewed badges, and this new heading card has something very similar and equally as visually appealing. It can show multiple entity states to the right of the title or subtitle.

Screenshot showing a dashboard with additional entities shown on card headings

Either in a subtle “no color” default or add a splash of color when the entity is in an active state. Other customization options for these entities include changing the icon, visibility, and what happens when you select it.

Repairs for long-term statistics

Long-term statistics are great; they downsample and store the data produced by your sensorsSensors return information about a thing, for instance the level of water in a tank. [Learn more], allowing Home Assistant to store data indefinitely in a fraction of the space the original readings took up. Take a look back at your energy usage from two years ago, or see if your living room really is colder this year compared to last.

Screenshot showing a long-term statistic repair showing up in the settings menu

In the past, if a statistic encountered an issue, it might be quietly broken until you dig into the statistics page. Now, Home Assistant will raise a repair notification when it detects issues with a long-term statistic and give you options for fixing the issue.

Improved YAML syntax for automations

Recently, we renamed service to action in the Home Assistant UI and YAML. This was done with the goal of making the syntax more natural, allowing it to be easier to grasp and read. We want to continue this work to improve the YAMLYAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the configuration.yaml or automations.yaml files. [Learn more] syntax, this time focusing on automationsAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more], and we’ve made the following changes,

  • The top-level trigger key is now triggers (plural)
  • The top-level condition key is now conditions (plural)
  • The top-level action key is now actions (plural)
  • The platform key of a trigger definition is now trigger

The result of all this is that YAML automation syntax now has triggers with multiple trigger definitions, conditions with multiple condition definitions, and actions with multiple action definitions.

Here is a small example of an automation highlighting these changes.

Screenshots; left showing the old automation YAML style, right showing the new style. The differences between them have been highlighted. The 2024.9 release on the left and this 2024.10 release on the right.

As with the other syntax changes we’ve done recently, this is not a breaking change, and there will be no deprecation. The previous syntax will continue to work, and there are no plans to remove the old syntax. The new syntax is recommended, and all documentation and examples have been updated. Automations managed by the automation editor will automatically be migrated to the new syntax when saving an automation.

This is not the only change to our syntax, thanks to @karwosts we now support merging a list of triggers, which is mostly useful for blueprintA blueprint is a script or automation configuration with certain parts marked as configurable. This allows users to create multiple scripts or automations based on the same blueprint, with each having its own configuration-specific settings. [Learn more] authors.

Faster upgrades when using custom integrations

We want Home Assistant to continue to work on a wide range of hardware. If you look at our opt-in analytics you’ll see a sizable amount of homes running it on single-board computers from the mid-2010s. A lot of effort has been put into keeping Home Assistant lean, and this release has some good improvements. This is specially for users of custom integrations, and this follows HACS getting a great speed boost for downloads.

On each upgrade, all dependencies needed for custom integrationsA custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the Spook integration. are now downloaded and installed. We are now using uv internally to download and install dependencies, which is a faster and more efficient way to download and install dependencies. If you’re not aware, uv is what makes our release process so fast nowadays, and @edenhaus has done an interesting developer backstory on our move from pip to uv (saving us 200+ hours of execution time a month). @edenhaus has also implemented uv at runtime as well.

This speeds up the upgrade process, especially for custom integrations with many dependencies, or installations with many custom integrations. This change is fully transparent to the user, and no action is required. Just sit down, relax, and enjoy the faster upgrade process!

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 a new virtual integration. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. This one is 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:

Now available to set up from the UI

While most integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] can be set up directly from the Home Assistant user interface, some were only available using YAML configuration. We keep moving more integrations to the UI, making them more accessible for everyone to set up and use.

The following integrations are now available via the Home Assistant UI:

Matter

At this point, our Matter integration is almost becoming a monthly recurring topic in our release notes. For a good reason! The development is moving forward at a strong pace; running toward the certification finish line!

Matter logo

In terms of stability, we have improved the robustness of the integration to ensure it sets up correctly every time, even if an issue with one of your devices occurs. Besides the usual bugfixes and improvements, this release has some cool new features and additions:

  • Button entities
    New button entities that allow you to perform an action on a device. For example, to identify a device or reset the filter state.
  • Valve entities
    Support for water valves, allowing you to control the flow of fluids or gases.
  • Support for operation states
    Control and monitor the operation state of, for example, dishwashers and other household equipment.
  • Support for smoke and CO sensors
    Monitor the air quality in your home with smoke and CO sensors.
  • Add support for Matter 1.3 power/energy sensors
    Especially the energy sensors are great to use with the energy dashboard.

Other noteworthy changes

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

  • In June, we added support for adding Model IDs to devices. This release has lots of integrations that add them, including Matter, Plugwise, Wallbox, and Govee. We are calling for contributions to add model IDs to more integrations! Maybe a cool suggestion for an Hacktoberfest contribution!
  • @bmesuere improved the accessibility of all graphs by adjusting all the default colors used in those graphs! You are a hero!
  • When you unignore an integration or device on the integrations page, Home Assistant will instantly try to rediscover it again! Nice! Thanks, @emontnemery!
  • We now have a new unit of measurement for energy entities: calories. Useful, for devices like a treadmill or an exercise bike. Thanks, @dudanov!
  • @TrevorSchirmer did something similar, and added a new unit of speed: mm/s and in/s. Thank you!
  • When you rename a device, you will now see more details about the rename operation. Including a preview of the new entity IDs. Nice, @karwosts!
  • @gjohansson-ST added a new template function merge_response that allows you to merge multiple responses of a single action or multiple actions into a single response. Nice!
  • Trigger-based templates now have support for adding conditions! Just like automations, you can now add conditions to these entities to control when they are rendered. Thanks, @chammp!
  • More template fun! You can now set up your templated alarm control panel straight from the UI. Thanks, @gjohansson-ST!
  • The statistics developer tools have been improved. They now have the new-style data tables and the ability to bulk select items to action. Awesome @karwosts!
  • There is a new entity in town, the assist satellite entity. It is a building block for remote satellites devices that use Assist. This is in preparation for our upcoming satellite hardware. Stay tuned!

The source of a repair

IntegrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] can raise issues in your repairs dashboard, they can raise issues for themselves, but also for other integrations. An example of such an issue is an integration that connects to your device that raises an issue on an automationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more] that controls it.

The result is an automation issue in your repair center. This is cool, but you might want to know which integration raised the issue in the first place.

Thanks to @wendevlin, we now show the source integration of the repair issue in the issue dialog.

Screenshot showing the new repairs dialog reporting the integration that raised it.

YAML-editor improvements

@naps62 has been busy improving the YAML editor found in the Home Assistant user interface.

We now have a vertical line based on indentation, which makes it easier to see the indentation of your YAML configuration and allows you to spot and prevent indentation errors.

Screenshot showing the YAML editor with collapsed sections and the vertical indentation line.

But he didn’t stop there. You can now collapse and expand sections of your YAML configuration based on the indentation level; which is also demonstrated in the screenshot above.

Nice work @naps62!

Patch releases

We will also release patch releases for Home Assistant 2024.10 in October. These patch releases only contain bug fixes. Our goal is to release a patch release every Friday.

2024.10.1 - October 4

2024.10.2 - October 11

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:

Climate

We have added more validation to the climate.set_humidity action, which enforces that the set target humidity is within the targeted entity’s minimum and maximum humidity levels.

You should adjust automations and scripts to use valid values if you are using this action.

(@gjohansson-ST - #125242) (documentation)

ecobee

The previously deprecated aux_heat attribute has been removed from the provided climate entity.

(@gjohansson-ST - #125246) (documentation)

Honeywell Total Connect Comfort (US)

The previously deprecated aux_heat attribute has been removed from the provided climate entity.

(@gjohansson-ST - #125248) (documentation)

Humidifier

We have added more validation to the humidifier.set_humidity action, which enforces that the target humidity is within the targeted entity’s minimum and maximum humidity levels.

You might need to adjust automations and scripts to use valid values if you are using this action.

(@gjohansson-ST - #125863) (documentation)

Nuki

The previously deprecated nuki_id and battery_critical attributes have been removed from the Nuki entities. If you are using these attributes in automations or scripts, you need to update those.

(@steffenrapp - #125348) (documentation)

OpenTherm Gateway

To modernize the OpenTherm Gateway integration, all entities have been split into different devices. As a result, the OpenTherm Gateway climate entity has been moved to a new OpenTherm Thermostat device.

Configurations that look for the climate entity by device must be adjusted accordingly.

In the process, all entities were reviewed and some were found to be irrelevant or superfluous. These entities have been removed. All removed entities were previously disabled by default, so anyone who has never manually enabled an entity in the OpenTherm Gateway integration is not affected by this.

All other users should review their configuration for using OpenTherm Gateway entities that no longer exist or have been assigned to another device.

(@mvn23 - #124869) (documentation)

Pentair ScreenLogic

Support for use of an area, device, or entity as a target for ScreenLogic actions has been removed. Instead, use config_entry with the entry_id of the desired ScreenLogic

Support for using an area, device, or entity as a target for ScreenLogic actions has been removed. Instead, use config_entry with the entry_id of the desired ScreenLogic.

(@dieselrabbit - #123432) (documentation)

Ping

The binary sensor attributes this integration provided have been replaced with sensor entities in Home Assistant 2024.4. These deprecated attributes have now been removed.

(@jpbede - #125760) (documentation)

Ring

The ring.update action was deprecated in the 2024.4 release and has now been removed. Please use homeassistant.update_entity if you need a replacement.

(@jpbede - #125762) (documentation)

Squeezebox (Lyrion Music Server)

We previously noticed that the squeezebox platform had deprecated the squeezebox_sync and squeezebox_unsync actions and the sync_group entity attribute in favor of the newer “join” framework common to all media players.

These deprecated actions and entity attributes have now been removed.

(@rajlaud - #125271) (documentation)

Templates

Limit maximum template render output to 256KiB to ensure template renders do not inject unreasonable data into the system and cause a crash.

256KiB is likely to still block Home Assistant’s event loop for an unreasonable amount of time, but it’s likely someone is using the template engine for large blocks of data, so we want a limit that still allows that but has a reasonable safety margin to prevent the system from crashing down.

(@bdraco - #124946)

ThermoWorks Smoke

The ThermoWorks Smoke integration is disabled because it creates an unresolvable dependency conflict.

Contributions to fixing this conflict are greatly appreciated.

(@edenhaus - #125661) (documentation)

Tfiac

The Tfiac integration is disabled because we cannot create valid Python wheels for its dependencies.

Contributions to fixing this issue are greatly appreciated.

(@edenhaus - #125692) (documentation)

Z-Wave

With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.37.0 or greater (schema 37).

  • If you use the Z-Wave JS add-on, you need at least version 0.7.0.
  • If you use the Z-Wave JS UI add-on, you need at least version 3.9.0.
  • If you use the Z-Wave JS UI Docker container, you need at least version 9.16.0.
  • If you run your own Docker container or some other installation method, you will need to update your zwave-js-server instance to at least 1.37.0.

(@MartinHjelmare - #125666) (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 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 2024.10