2024.12: Scene you in 2025! š
Home Assistant 2024.12! š
Holidays are coming, and it is time for the last release of the year! š
2024 has been a crazy year for Home Assistant. Not just in terms of features
like drag-and-drop dashboards, organization capabilities like labels, and
the countless improvements to our voice efforts. But also the founding of
the Open Home Foundation
However, the year aināt over yet! This month, we want to learn about all your āWhat the heck?!ā moments with Home Assistant. Tell us about any little annoyances, bugs, ideas, or suggestions. You can read all about it in the WTH announcement blog, or join the conversation on our WTH forums!
Honestly, the biggest announcement of the year has yet to come thoughā¦ š¤«
Iām pretty sure it is voice hardware related. š So make sure you arenāt
missing the live stream on 19 December
Before you check out everything in this release, I just want to close this year with a big thank you to every single person in our community, which includes you!
Thank you for using Home Assistant! ā¤ļø
Happy holidays! And for the last time in 2024: Enjoy the release!
../Frenck
- Improved scene editor experience
- Voice
- Revised Integration Quality Scale
- Integrations
- Other noteworthy changes
- Translations for units of measurement
- Weāve upgraded to Python 3.13
- Patch releases
- Need help? Join the community!
- Backward-incompatible changes
- All changes
Improved scene editor experience
ScenesScenes capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red. [Learn more] are a great way to set the mood in your home. They allow you to capture the state of your devices at a specific moment and restore it later, using a button on your dashboard, an automation, or even a voice command.
One of the common frustrations with editing scenes in Home Assistant is that it would immediately activate and apply the scene if you opened the scene editor. Not the best experience if you are doing some midnight tinkering and accidentally activate a scene that turns on all the lights in the house, waking up everyone. š
@karwosts
The āreview modeā is how your scene will open, and it will show you the scene as it is currently set up, but it will not apply it. You can then switch to the āedit modeā; only then will the scene activate, allowing you to adjust the actual scenery and snapshot it again once you are happy with the changes.
Additionally, if you preferĀ 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], you can edit scenes directly from
the scene editor by selecting āEdit in YAMLā from the three-dotted
Voice
It has almost been two years since we started our journey into building our very own open source voice assistants, with the goal of letting users control Home Assistant in their own language.
Today, we are getting even closer to the finish line. Not just with the features that ship in this release, but you might have heard about our voice hardware that is coming soonā¦
With some help from Santa š and his elves, we have prepared a product launch YouTube live stream on 19 December 2024, at 20:00 GMT / 12:00 PT / 21:00 CET!
Curious? Be sure to join the live stream
But before we get there, letās dive into the features that ship in this release!
Let your voice assistant fall back to an LLM-based agent
Exactly 6 months ago, we bridged the gap between our default conversation agent
and the wonderful (and scary) world of LLMs
This choice was an interesting first step. LLMs are generally much better at interpreting natural language and more knowledgeable about the world than our default agent. However, they are often slow and/or expensive. And letās face it: Even if the demos are cool, 90% of the commands we say in our homes are simple: āTurn this onā or āTurn that offā.
Today, weāre finally allowing users to mix these worlds. Starting from this release, you can set up a voice assistant that targets our fast, community-driven conversation agent first and only falls back to an LLM-based agent if no matches are found.
This allows you to mix the pros of both worlds with almost none of the cons.
Specific known commands will be processed locally and extremely fast, and the power of an LLM will only be used for more complex queries that Home Assistant does not natively understand.
Language leaders are accelerating the pace
It is no secret: our voice hardware will be revealed on 19 December 2024. Language leaders have already got their hands on the device, and are working extremely hard to polish support for their language.
The number of contributions to ourĀ intents repository
We wonāt list them all, but rest assured, someone is likely working hard to ensure your native language works seamlessly, so you can use it comfortably at home.
A faster voice experience
Our default conversation agent was built from the ground up to match a sentence to its underlying intention extremely fast and on cheap hardware.
Release after release, we added more use cases and sentences to Home Assistant, and our sentence-matching logic became slower and slower. In some languages, a non-matching sentence could take more than 15 seconds to process!
This release adds a lot of love to this matching logic; we completely reengineered the way we match sentences. On top of that, language leaders spent some time reducing the complexity of their sentences. Some languages saw a 99% reduction in the number of possible combinations!
The results speak for themselves:
Revised Integration Quality Scale
The Integration Quality Scale (IQS) is a way we classify the āqualityā of an integration. It gives users an idea of what to expect from an integration. You might have noticed our IQS indicator listed on each integration documentation page.
The scale was initially introduced in 2018 and aimed more at the technical side and code of an integration back then. Over the years, it didnāt really evolve with the rest of Home Assistant and the general expectations of our community. It was time for a change!
Over the last few months, we have worked with the community to revise and improve the scale. Involving not just our community developers but also documentation writers, user experience designers, and anyone interested in the community.
As a result, the new Integration Quality Scale is not just focused on the code but even more on the overall user experience. It is now a more holistic view of the integration, and we hope it will help everyone make better decisions about what to use in their homes.
We now have a total of 4 scaled tiers:
- š„ Bronze: The new minimum set of requirements weāve set for new integrations.
- š„ Silver: Ensuring reliability and robustness of integrations.
- š„ Gold: Ensuring a gold standard user experience, including documentation.
- š Platinum: The epitome of quality, supreme code quality, and optimal performance.
We also have four additional (non-scaled) special tiers:
- āĀ NoĀ score: For integrations that are not yet scored against the new scale.
- š Ā Internal For integrations Home Assistant itself uses, like the automation engine.
- š¾Ā Legacy For older integrations that canāt be set up through the UI.
- š¦Ā Custom For custom integrations, as we canāt score those.
You can read all about these tiers, what they have been designed for, and a summary of their characteristics on our dedicated Integration Quality Scale page.
We sincerely hope this new scale will not just help our users, but also our community developers to understand what is expected by providing a clear path to improving their integrations. To help with that, we have now extensively documented every rule and requirement for each tier in our developer documentation.
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:
-
Acaia, added by @zweckj
Adds support for Acaia coffee scalesto Home Assistant. -
Music Assistant, added by @jozefKruszynski
The integration for Music Assistantis making its way into Home Assistant! š -
NASweb, added by @nasWebio
Brings in support for the NASweb automation system to Home Assistant. -
Nord Pool, added by @gjohansson-ST
Pulls in latest energy prices from the Nord Pool energy market as sensors. -
Sky Remote, added by @dunnmj
Control your Skybox using automations or from your Home Assistant dashboards.
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:
- The UniFi Protect integration now has support for fingerprint and NFC
events. You can even automate on the specific fingerprint or NFC scanned!
Awesome, @RaHehl
! - The TP-Link integration now supports the H200 hubs and adds more
energy-monitoring sensors for Tapo devices. It also exposes new entities like
a motion sensor switch, a child lock switch for thermostats, and the last
water leak alert timestamp.
Thanks to @sdb9696
, @rytilahti , and @ryenitcher ! -
@starKillerOG
added selector entities for bitrate, framerate, and vehicle tone to the Reolink integration. Additionally, a tilt position sensor for PTZ cameras has been added. Thanks! -
@fwestenberg
updated the Stookwijzer integration, with some new sensors, right on time for the winter season. Nice! - The Habitica integration now provides actions for quest handling, scoring
habits, and rewards. It also adds calendars for your to-do and daily reminders.
Nice, @tr4nt0r
! - The eQ-3 Bluetooth Smart integration now provides several helpful switches
and sensors (like away mode, boost, battery). Thanks, @EuleMitKeule
! -
@YogevBokobza
added Switcher Lights support to the Switcher integration. Thanks!
Other noteworthy changes
There are many more improvements in this release; here are some of the other noteworthy changes this release:
-
@jpbede
added a download snapshot button to the camera entity information dialog. Super nice! Thanks! - The UI now displays durations using a timer format (like 03:26:00) in natural
language (3h 26min). Thanks @piitaya
! - Support for new units of measurement has been added:
- Units for area sizes (and conversions between metric and US). Thanks @mikey0000!
-
@jschlyter
has added support for MW, GW, TW, GWh, and TWh. Nice! - ĀµV has been added as a unit of electric potential. Thanks @tr4nt0r
! - Lastly, mL/s has been added as a unit of volume flow rate. Thanks @zweckj
!
- If you are editing an automation using YAML via our UI and you make a mistakeā¦
you will now actually see the parsing error message in the UI. This is really
helpful! Thanks, @karwosts
!
Translations for units of measurement
Over the last few years, we have been working hard to make every little bit of Home Assistant accessible for everyone by providing translations for every part of the system. š
However, we still have some edge cases, where we are not able to provide translations for everything. One of those edge cases is the units of measurement. š
Although units do not need translation (likeĀ Ā°C
Ā orĀ kWh
) in most cases, many
sensors in a home might use specific and non-standardized units. For example,
a sensor that measures the number of āpeopleā in a home or one that tells you
how many āmoviesā are in your collection.
So, suppose you now have a sensor with a custom measurement unit, like the amount of āmoviesā in your collection. In that case, integrations can now provide translations for those units. š
Several integrations have already added translations for their units, including Jellyfin, Lyrion Music Server, Transmission, Pi-hole, QBitTorrent, NextDNS, Mastodon, and Mealie!
Weāve upgraded to Python 3.13
This release comes packaged with Python 3.13! š
Wondering what that means? Python is the programming language that powers Home Assistant behind the scenes.
Why does it matter? Every new Python release brings improvements that we can tap intoābetter performance, fewer bugs, and a smoother developer experience for our contributors. Plus, Python 3.13 offers a speed boost to Home Assistant overallāwhatās not to love? š
Running Home Assistant OS or using the Home Assistant Container? No sweatāweāve got you covered. The upgrade to Python 3.13 is handled automatically. Just update Home Assistant as usual, and youāre good to go.
Easy, right? š
Patch releases
We will also release patch releases for Home Assistant 2024.12 in December. These patch releases only contain bug fixes. Our goal is to release a patch release every Friday.
2024.12.1 - December 6
- Bump elmax-api to 0.0.6.3 (@albertogeniola
- #131876 ) - Fix deprecated call to mimetypes.guess_type in CachingStaticResource (@bdraco
- #132299 ) - Bump tesla-fleet-api to 0.8.5 (@Bre77
- #132339 ) - Add missing UnitOfPower to sensor (@robinostlund
- #132352 ) - Removes references to croniter from utility_meter (@dgomes
- #132364 ) - Bump upb-lib to 0.5.9 (@gwww
- #132411 ) - Bump pydeako to 0.6.0 (@Balake
- #132432 ) - Bump aiohttp to 3.11.10 (@bdraco
- #132441 ) - Bump aioesphomeapi to 28.0.0 (@bdraco
- #132447 ) - Update exception handling for python3.13 for getpass.getuser() (@allenporter
- #132449 ) - Bump hass-nabucasa from 0.85.0 to 0.86.0 (@ludeeus
- #132456 ) - Fix nordpool dont have previous or next price (@gjohansson-ST
- #132457 ) - Bump deebot-client to 9.2.0 (@edenhaus
- #132467 ) - Point to the Ecovacs issue in the library for unspoorted devices (@edenhaus
- #132470 ) - Bump tplink python-kasa dependency to 0.8.1 (@sdb9696
- #132472 ) - Bump samsungtvws to 2.7.2 (@epenet
- #132474 ) - Update frontend to 20241127.5 (@bramkragten
- #132475 ) - Update frontend to 20241127.6 (@bramkragten
- #132494 ) - Fix google tasks due date timezone handling (@allenporter
- #132498 )
2024.12.2 - December 10
- Enable additional entities on myUplink model SMO20 (@astrandb
- #131688 ) - Bump pydrawise to 2024.12.0 (@dknowles2
- #132015 ) - Fix API change for AC not supporting floats in SwitchBot Cloud (@SeraphicRav
- #132231 ) - Update pyrisco to 0.6.5 (@agmckaybro
- #132493 ) - Fix PyTado dependency (@erwindouna
- #132510 ) - Bump pycups to 2.0.4 (@bdraco
- #132514 ) - Update debugpy to 1.8.8 (@frenck
- #132519 ) - bump total_connect_client to 2023.12 (@austinmroczek
- #132531 ) - Bump aiounifi to v81 to fix partitioned cookies on python 3.13 (@Kane610
- #132540 ) - Update twentemilieu to 2.2.0 (@frenck
- #132554 ) - Bump yalexs-ble to 2.5.2 (@bdraco
- #132560 ) - Bump plugwise to v1.6.1 (@bouwew
- #131950 ) - Bump plugwise to v1.6.2 and adapt (@bouwew
- #132608 ) - Fix config flow in Husqvarna Automower (@Thomas55555
- #132615 ) - Bump ZHA dependencies (@puddly
- #132630 ) - Bump plugwise to v1.6.3 (@bouwew
- #132673 ) - Bump yt-dlp to 2024.12.06 (@joostlek
- #132684 ) - Revert āBump pyezviz to 0.2.2.3ā (@srescio
- #132715 ) - Bump intents to 2024.12.9 (@synesthesiam
- #132726 ) - Update frontend to 20241127.7 (@bramkragten
- #132729 ) - Bump reolink-aio to 0.11.5 (@starkillerOG
- #132757 ) - Catch Hydrawise authorization errors in the correct place (@dknowles2
- #132727 ) - Pass an application identifier to the Hydrawise API (@dknowles2
- #132779 ) - Bump deebot-client to 9.3.0 (@edenhaus
- #132834 ) - Bump aioacaia to 0.1.11 (@zweckj
- #132838 )
2024.12.3 - December 13
- Bump python-linkplay to v0.1.1 (@silamon
- #132091 ) - Bump pydaikin to 2.13.8 (@weltall
- #132759 ) - Fix pipeline conversation language (@synesthesiam
- #132896 ) - fix AndroidTV logging when disconnected (@chemelli74
- #132919 ) - Guard Vodafone Station updates against bad data (@chemelli74
- #132921 ) - Bump led-ble to 1.1.1 (@bdraco
- #132977 ) - Change warning to debug for VAD timeout (@synesthesiam
- #132987 ) - Fix LaMetric config flow for cloud import path (@frenck
- #133039 ) - Update frontend to 20241127.8 (@bramkragten
- #133066 ) - Bump pysuezV2 to 1.3.5 (@jb101010-2
- #133076 ) - Bugfix to use evohomeās new hostname (@zxdavb
- #133085 ) - Bump py-aosmith to 1.0.12 (@bdr99
- #133100 ) - Bump deebot-client to 9.4.0 (@edenhaus
- #133114 ) - Bump aiowithings to 3.1.4 (@joostlek
- #133117 )
2024.12.4 - December 17
- Simplify recorder RecorderRunsManager (@emontnemery
- #131785 ) - Fix fibaro climate hvac mode (@rappenze
- #132508 ) - Bump yt-dlp to 2024.12.13 (@joostlek
- #133129 ) - Fix strptime in python_script (@gjohansson-ST
- #133159 ) - Bump yalexs-ble to 2.5.4 (@bdraco
- #133172 ) - Bump starlink-grpc-core to 1.2.1 to fix missing ping (@MrConorAE
- #133183 ) - Bump aiolifx to 1.1.2 and add new HomeKit product prefixes (@Djelibeybi
- #133191 ) - Revert āSimplify recorder RecorderRunsManagerā (@emontnemery
- #133201 ) - Revert āImprove recorder history queries (#131702)ā (@emontnemery
- #133203 ) - Bump incomfort-client to v0.6.4 (@jbouwh
- #133205 ) - Bump yalexs-ble to 2.5.5 (@bdraco
- #133229 ) - Set code_arm_required to False for homekit_controller (@bdraco
- #133284 ) - Allow load_verify_locations with only cadata passed (@mib1185
- #133299 ) - Bump
imgw-pib
to version 1.0.7 (@bieniu- #133364 ) - Fix fan setpoints for flexit_bacnet (@lellky
- #133388 ) - Bump holidays to 0.63 (@gjohansson-ST
- #133391 )
2024.12.5 - December 20
- Bump
nice-go
to 1.0.0 (@IceBotYT- #133185 ) - Add support for Nice G.O. HAE00080 wall station (@IceBotYT
- #133186 ) - Bugfix: also schedule time based integration when source is 0 (@ronweikamp
- #133438 ) - Ensure screenlogic retries if the protocol adapter is still booting (@bdraco
- #133444 ) - Bump Freebox to 1.2.1 (@Quentame
- #133455 ) - Bump pyOverkiz to 1.15.3 (@iMicknl
- #133458 ) - Donāt raise Overkiz user flow unique_id check (@iMicknl
- #133471 ) - Update Roborock to 2.8.1 (@Lash-L
- #133492 ) - Update fjƤrƄskupan to 2.3.1 (@elupus
- #133493 ) - Update fjƤrƄskupan to 2.3.2 (@elupus
- #133499 ) - Bump gardena_bluetooth to 1.5.0 (@elupus
- #133502 ) - Bump aiohttp to 3.11.11 (@bdraco
- #133530 ) - Handle null value for elapsed time in Music Assistant (@marcelveldt
- #133597 ) - Fix Twinkly raise on progress (@joostlek
- #133601 ) - Handle mqtt.WebsocketConnectionError when connecting to the MQTT broker (@bdraco
- #133610 )
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:
Brother Printer
The unit of measurement for pages changed from p
to pages
.
This could potentially break use cases if it was used in templates where a state
with a unit is used, such asĀ states('sensor.pages', with_unit=True)
.
(@bieniu
Ecovacs
Ecovacs devices not recognized by the library will no longer use the fallback vacuum. Instead, the device will not be added to Home Assistant, and a warning log will created.
(@edenhaus
Glances
The previously deprecated Glances v2 API has been removed. Upgrade to v3 or higher to continue using the integration.
History Stats
After this change,Ā history_stats
Ā in time
Ā orĀ ratio
Ā mode will only count
definitively known time-based recorded data.
Prior to this change, if the start of the time window was earlier than the
oldest datapoint in the recorder, history_stats
would count time using the
assumption that an entity was in the first state it found since the beginning
of time. This could lead to wild overcalculations when a switch was turned on
after a long period of inactivity, and history_stats
would assume it had
always been on and calculate a huge value based on that.
(@karwosts
Jewish Calendar
To support Rosh Chodesh this creates a breaking change as the holiday sensor will return āChanukah, Rosh Chodeshā when both of those days fall on the same date. If you have an automation expecting the āChanukahā value, you must update it.
(@tsvi
Plugwise
For the Plugwise Adam, all device-based climate entities will be replaced by new zone-based climate entities, which will most likely have different entity names.
This change aligns with the Plugwise Appās representation of climate entities as zones (as discovered in Issue #130597
(@bouwew
QNAP
The QNAP sensors will no longer have the following extra state attributes:
memory_free
memory_percent_used
memory_size
memory_used
network_err
network_link_status
network_max_speed
network_rx
network_tx
status
system_temp
uptime
volume_percentage_used
volume_size_free
volume_size_total
volume_size_used
These extra state attributes were deprecated in Home Assistant 2024.6 and have now been removed. If you are using this in your automation or script, use the separate available sensors instead.
(@jbouwh
Spotify
The Spotify audio feature sensors have been removed since Spotify removed access for them, starting 27 November.
Additionally, featured and category playlists have been removed from the Spotify media browser since Spotify deprecated the API, starting on 27 November.
(@joostlek
Statistics
Previously the attributes of the entity states of the Statistics integration were only provided when they had a non None
value.
This has now changed so the attributes are always provided even with None
values. You might need to modify your automations or scripts depending on
whether these attributes are present or not.
Stookwijzer
The Stookwijzer sensor has migrated to the new API provided by Atlas Leefomgeving. As a result, the reported states are slightly different.
Old versus new:
- Blue (
blauw
) -> Yellow (code_yellow
) - Orange (
oranje
) -> Orange (code_orange
) - Red (
rood
) -> Red (code_red
)
If you use the Stookwijzer sensor in your automations or scripts, you might need to adjust those for this change.
(@frenck
Templates
The this
template variable which is available in some templatable helpers was
previously based on the new state instead of the current state.
The change affects the following integrations, if templates use the this
variable. The user might have to update their templates to reflect the above
change using the value
variable instead, which holds the new value.
command_line
rest
scrape
snmp
sql
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.39.0 or greater (schema 39).
- If you use the Z-Wave JS add-on, you need at least version
0.9.0
. - If you use the Z-Wave JS UI add-on, you need at least version
3.17.0
. - If you use the Z-Wave JS UI Docker container, you need at least version
9.26.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.39.0
.
(@MindFreeze
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:
- Camera API changes
- Integration quality scale
- New options flow properties
- Translating units of measurement
- Utility function homeassistant.util.dt.utc_to_timestamp is deprecated
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.12