2024.12: Scene you in 2025! 🎄


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, and even more in the growth of our lovely community
as we’ve risen up to become the #1 open source project on GitHub! ❤️

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! 📺 You will not be disappointed! 🎁

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

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 & @marcinbauer85 to the rescue! 🦸‍♂️ As of this release, the scene
editor has two modes. A review mode and an edit mode.

The improved scene editor now has a preview mode, which is shown in this screenshot.

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
overflow menu in the top right corner.

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, hit like 👍, subscribe to our
channel, and the little bell 🔔 to get notified when we go live! You really
don’t want to miss this one!

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. We allowed you to experiment and
let an LLM-based conversation agent control your home instead of relying on our
built-in sentences.

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.

Dialog showing the Assist pipeline configuration, showing the new option to prefer handling commands locally.

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 (where we store the
supported sentences) skyrocketed during the last month, which we all truly
appreciate. More and more languages are becoming usable or even complete!
You can follow the progress here.

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.

The integration quality scale is also shown in the Home Assistant UI now. The image shows the HomeWizard Energy integration scoring platinum on the new integration quality scale.

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:

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:

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

The Python logo; Home Assistant now runs on top of Python latest 3.13 update
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

2024.12.2 – December 10

2024.12.3 – December 13

2024.12.4 – December 17

2024.12.5 – December 20

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:

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#131275) (documentation)

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#131525) (documentation)

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#126271) (documentation)

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#130456) (documentation)

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#131659) (documentation)

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#130310) (documentation)

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#131754 #131758) (documentation)

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.

(@gjohansson-ST#129353) (documentation)

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#131567) (documentation)

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

(@gjohansson-ST#130135)

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#129482) (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.12

Source link