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
- Repairs for long-term statistics
- Improved YAML syntax for automations
- Faster upgrades when using custom integrations
- Integrations
- Matter
- Other noteworthy changes
- Patch releases
- Need help? Join the community!
- Backward-incompatible changes
- All changes
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.
Titles and subtitles can be made clickable, displaying a chevron
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.
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.
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 nowtriggers
(plural) - The top-level
condition
key is nowconditions
(plural) - The top-level
action
key is nowactions
(plural) - The
platform
key of a trigger definition is nowtrigger
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.
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
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 Spookuv
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 @edenhauspip
to uv
(saving us 200+ hours
of execution time a month). @edenhausuv
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:
-
Cambridge Audio, added by @noahhusby
Control all receivers and streamers that support the StreamMagic app. -
Deako Smart Lighting, added by @Balake
Control and automate your Deakodevices. -
Duke Energy, added by @hunterjm
Import your energy usage data from Duke Energy into the Home Assistant energy dashboard. -
Google Photos, added by @allenporter
Upload photos to your Google Photos libraryand use as a media source. Note that only images uploaded by the integration can be viewed and used. -
Iskra, added by @iskrakranj
Monitor your energy and power usage from an Iskra energy meter. -
Lektrico Charging Station, added by @Lektrico
Get in control of your Lektrico EV chargerfrom Home Assistant and optimize your energy usage. -
Monarch Money, added by @jeeftor
Monitor your account balance using the Monarch Money personal finance service. -
NYT Games, added by @joostlek
Keep track of your New York Times gamesprogress, like Spelling Bee and Wordle. -
Sensoterra, added by @markruys
Monitor your soil moisture and temperature using Sensoterra sensors. -
TRIGGERcmd, added by @rvmey
Execute commands on your computer(s) using the TRIGGERcmd cloud service. -
Weheat, added by @jesperraemaekers
Manage and monitor your Weheat heatpump, keeping your home warm and cozy. -
WMS WebControl pro, added by @mback2k
Control your WAREMAsun shading covers entirely locally.
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:
-
Arizona Public Service (APS), provided by Opower, added by @seferino-fernandez
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:
-
@Bre77
has been busy with the Tesla Fleet integration, adding a bunch of new features and entities to control your Tesla vehicle. It now supports climate, media player, cover, number, select, button, and lock entities. - You can now control the volume, ringtone, and status light of your Reolink
Hub! Cool, @starkillerOG
! -
@daniel-k
added support for controlling the volume and @sdb9696 added a switch for controlling motion detection on Ring devices; Nice work team! - The Switchbot Cloud integration now supports the K10+ Mini Robot Vacuum
. Thanks, @Gigatrappeur ! -
@sorgfresser
extended the ElevenLabs integration with integration options to control the voice settings. Nice! - The Squeezebox (Lyrion Music Server) integration now has new service sensors,
and support for your favorites straight from the media browser.
Thanks, @pssc
and @rajlaud ! -
@tronikos
added Google Cloud speech-to-text (STT) to Home Assistant. This allows you to use Google’s Cloud speech-to-text with Assist! Awesome! - If you are using the Husqvarna Automower, you can now view the calendar
it provides, thanks to @Thomas55555
! -
@klaasnicolaas
added support for home batteries to the Autarco integration so you can use them in your energy dashboard. Great!
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:
-
Emoncms, done by @alexandrecuer
-
Google Cloud Platform, done by @tronikos
-
HTML5 Push Notifications, done by @alexyao2015
-
Mold Indicator, done by @gjohansson-ST
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!
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
YAML-editor improvements
@naps62
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.
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
- Fix device id support for alarm control panel template (@piitaya
- #127340 ) - Bump pysmlight 0.1.2 (@tl-sl
- #127376 ) - Remove assumption in ConfigEntryItems about unique unique_id (@emontnemery
- #127399 ) - Add missing number platform to init of Tesla Fleet (@Bre77
- #127406 ) - Bump aiomealie to 0.9.3 (@andrew-codechimp
- #127454 ) - Fix int value in unique_id for Tellduslive (@robinostlund
- #127526 ) - Bump matrix-nio to 0.25.2 (@PaarthShah
- #127535 ) - Adjust polling rate of Rituals Perfume Genie (@frenck
- #127544 ) - Create new clientsession for NYT Games (@joostlek
- #127547 ) - Strip the NYT Games token (@joostlek
- #127548 ) - Revert “Bump pychromecast to 14.0.2 (#127333)” (@joostlek
- #127555 )
2024.10.2 - October 11
- Fix Island status in Teslemetry (@Bre77
- #127504 ) - Bump pyblu to 1.0.3 (@LouisChrist
- #127571 ) - Bump aiostreammagic to 2.5.0 (@noahhusby
- #127595 ) - Bump opower to 0.8.2 (@tronikos
- #127598 ) - Fix wake up in Tesla Fleet (@Bre77
- #127615 ) - Update Radarr config flow to standardize ports (@Khabi
- #127620 ) - Bump fyta_cli to 0.6.7 (@dontinelli
- #127650 ) - Revert “Fix enum lookup (#125220)” (@cdce8p
- #127680 ) - Fix problems with automatic management of Schlage locks (@dknowles2
- #127689 ) - Fix typo in HDMI CEC (@joostlek
- #127714 ) - Fix Withings log message (@joostlek
- #127716 ) - Bump NYT Games to 0.4.3 (@joostlek
- #127717 ) - Bump airgradient to 0.9.1 (@joostlek
- #127718 ) - Add translation string for Withings wrong account (@joostlek
- #127719 ) - Increase connection timeout in CalDAV (@mib1185
- #127727 ) - Migrate SMA unique id to str (@rklomp
- #127732 ) - Remove stale references in squeezebox services.yaml (@rajlaud
- #127739 ) - Fix Aurora integration casts longitude and latitude to integer (@johangus65
- #127740 ) - Bump python-linkplay to 0.0.15 (@silamon
- #127748 ) - Fix custom account config flow setup (@rjmarques
- #127750 ) - Bump solarlog_cli to 0.3.1 (@dontinelli
- #127753 ) - Update DoorBirdPy to 3.0.3 (@frenck
- #126949 ) - Bump DoorBirdPy to 3.0.4 (@bdraco
- #127760 ) - Bump pychromecast to 14.0.3 (@emontnemery
- #127778 ) - Fix aurora alert sensor always Off (@johangus65
- #127780 ) - Update aioairzone-cloud to v0.6.6 (@Noltari
- #127789 ) - Bump pysmlight to v0.1.3 (@tl-sl
- #127804 ) - Fix incorrect string in amberlectric (@epenet
- #127807 ) - Add missing and fix incorrect translation string in alarmdecoder (@epenet
- #127814 ) - Fix incorrect translation string in analytics_insights (@epenet
- #127815 ) - Add missing and fix incorrect translation string in aurora (@epenet
- #127818 ) - Fix incorrect translation string in azure event hub (@epenet
- #127820 ) - Correct cleanup of sensor statistics repairs (@emontnemery
- #127826 ) - Add missing translation string in blebox (@epenet
- #127827 ) - Fix incorrect translation string in bryant_evolution (@epenet
- #127830 ) - Add missing and fix incorrect translation string in duotecno (@epenet
- #127834 ) - Reverse unintended change of unique_id for solarlog (@dontinelli
- #127845 ) - Bump
pytouchlinesl
to 0.1.8 (@jnsgruk- #127859 ) - Fix wrong DPTypes returned by Tuya’s cloud (@azerty9971
- #127860 ) - Add missing translation string in AVM Fritz!Smarthome (@mib1185
- #127864 ) - Fix merge_response template not mutate original object (@gjohansson-ST
- #127865 ) - Don’t error with missing information in systemmonitor diagnostics (@gjohansson-ST
- #127868 ) - Bump holidays library to 0.58 (@gjohansson-ST
- #127876 ) - Bump pyeconet to 0.1.23 (@dcmeglio
- #127896 ) - Add missing translation string in otbr (@epenet
- #127909 ) - Add missing translation string in yamaha_musiccast (@epenet
- #127912 ) - Add support of due date calculation for grey dailies in Habitica integration (@tr4nt0r
- #127923 ) - Bump
imgw_pib
library to version 1.0.6 (@bieniu- #127925 ) - Bump python-kasa to 0.7.5 (@sdb9696
- #127934 ) - Fix discovery of WMS WebControl pro by using IP address (@mback2k
- #127939 ) - Update pywmspro to 0.2.1 to fix handling of unknown products (@mback2k
- #127942 ) - Fix europe authentication in Fujitsu FGLair (@crevetor
- #127947 ) - Bump motionblindsble to 0.1.2 (@LennP
- #127954 ) - Fix zwave_js config validation for values (@raman325
- #127972 ) - Fix firmware version parsing in venstar (@epenet
- #127974 ) - Bump pyduotecno to 2024.10.0 (@Cereal2nd
- #127979 ) - Increase tplink climate precision (@rytilahti
- #127996 ) - Add missing translation string in solarlog (@dontinelli
- #128015 ) - Fix missing reauth name translation placeholder in ring integration (@sdb9696
- #128048 ) - Add missing translation string for re-auth flows (@mib1185
- #128055 ) - Update xknxproject to 3.8.1 (@farmio
- #128057 ) - Fix casing on Powerview Gen3 zeroconf discovery (@kingy444
- #128076 ) - Fix ring realtime events (@sdb9696
- #128083 ) - Increase Hydrawise polling interval to 60 seconds (@dknowles2
- #128090 ) - Update frontend to 20241002.3 (@bramkragten
- #128106 ) - Bump aioautomower to 2024.10.0 (@Thomas55555
- #128137 ) - Fix license script for ftfy (@cdce8p
- #128138 ) - Fix regression in Opower that was introduced in 2024.10.0 (@tronikos
- #128141 ) - Bump opower to 0.8.3 (@tronikos
- #128144 ) - Remove some redundant code in Opower’s coordinator from the fix in #128141 (@tronikos
- #128150 ) - Fix preset handling issue in ViCare (@CFenner
- #128167 ) - Fix model in Husqvarna Automower (@Thomas55555
- #128168 )
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
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.
ecobee
The previously deprecated aux_heat
attribute has been removed from the
provided climate entity.
Honeywell Total Connect Comfort (US)
The previously deprecated aux_heat
attribute has been removed from the
provided climate entity.
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.
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
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
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.
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
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
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
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.
ThermoWorks Smoke
The ThermoWorks Smoke integration is disabled because it creates an unresolvable dependency conflict.
Contributions to fixing this conflict are greatly appreciated.
(@edenhaus
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
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
.
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:
- Additional validation in Climate set temperature
- Calories added to energy class sensors
- Deprecating constants for Media Player
- Deprecating feature flag constants for Vacuum
- Deprecating state constants for camera
- Deprecating state constants for lock
- Enforce SourceType and add shorthand attributes and EntityDescription to device_tracker
- Extend deprecation period of @bind_hass and hass.components
- Introducing the Assist satellite entity
- Version compare for Update platform can now be overwritten
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