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

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