Home Assistant Core 2024.2! 🥰
Undoubtedly, you’ve heard about last year’s “The Year of the Voice”.
2023 might be over, but we are definitely not done with voice yet! This release
contains some very cool new features for voice.
Not just that, we’ve also launched a voice assistant contest
that you could join, and I’m happy to inform you that we will have another voice-related
live stream on 21 February 2024, at 12:00 PST / 21:00 CET: Chapter 6!
But there is more in this release besides voice! There’s drag ’n drop magic for
our automation editor, and you can now update Zigbee devices directly
from Home Assistant. We also have icons in more places 🤩, and quite a lot of
new functionalities for Matter devices.
In general, contributions to our open-source project have been amazing this
month. I’ve never seen so many contributed bug fixes, improvements, and new
features in a single release. Like… 21 new integrations! This is,
without a doubt, the largest release we’ve ever put out.
A big shout-out to everyone who helped! ❤️
Enjoy the release!
../Frenck
Oh! And don’t forget Valentine’s Day is coming up! 😘
Don’t forget to join our release party live stream on YouTube
7 February 2024, at 12:00 PST / 21:00 CET!
Better drag & drop support for automations
Let’s start with some old-fashioned drag ’n drop magic! 🪄
As of this release, dragging and dropping triggers, conditions, and actions in
the automation editor are always enabled. Previously, you had to explicitly
enable re-ordering in the automation editor settings, but now, it is just
always active.
But even more exciting is that you can now drag and drop elements into other
nested elements! For example, you can now drag a condition into
the condition of an if-then or choose action. 🤯
Export data from the history dashboard
The following feature might be small, but it is a big deal for many. Home
Assistant stores your data privately and locally; it is your data. To make
this data more accessible, we’ve added a new feature to the history dashboard.
You can now download the data you are viewing in the history dashboard. This
allows you to further analyze the data in, for example, Excel or to visualize
it in other ways.
The button will export and download the data you currently view in the history
dashboard as a CSV file.
Thanks for this one @balloob!
Improved error responses when using Assist
If you use Assist, our private voice assistant, you may have
noticed that its responses were not meaningful when something was not understood.
Some of the errors encountered while using Assist can easily be fixed on your
side by adding aliases to entities or areas, exposing entities to Assist,
or assigning entities and devices to the correct areas.
So we are taking the first step to help you fix these errors: as of this release,
Assist provides much better errors in case your intention is understood,
but something else is missing (An unknown name, area, device class, or domain).
Custom Assist responses in automations using the sentence trigger
Like almost every other component and feature of Home Assistant, Assist can be
customized and extended to understand more sentences.
A few releases ago, we introduced a very simple way to extend what Assist
understands: The sentence trigger
in our automation engine.
Up until now, using a sentence trigger always led to the same Assist response:
“Done”. In fact, the only way to define a custom response was to write complex
custom sentences in YAML.
This release introduces a new action to set a custom response in your
sentence-triggered automations directly inside the automation editor.
The response field accepts templates, so it can be used to build complex
responses, for example, listing all your room temperatures.
A very cool feature that might come in handy if you build an automation
blueprint to submit as an entry for our voice assistant contest!
All known Assist devices
Last addition for voice, we’ve added a small additional page to give you an
overview of all the Assist devices you have active in your Home. You can find
this on the Assist configuration dashboard
by selecting the new “Assist devices” button.
Or, use this My Home Assistant button below to navigate to the voice assistants
configuration dashboard:
Updating your Zigbee devices
ZHA (Zigbee Home Automation, our built-in Zigbee integration)
now provides update entities to Home Assistant!
This means you can get notified when a device has a firmware update available,
and you can trigger the update from Home Assistant!
Noticed the weird version numbers? Unfortunately, that is how version numbers
in the Zigbee standard work and look. We haven’t figured out a way to translate
them to something more human-readable format that matches what the manufacturer
communicates.
Currently, it supports updating Inovelli, OSRAM/Ledvance, Sonoff, and
ThirdReality devices, and we are looking at adding support for more brands
in the future. Be aware, Zigbee is a slow protocol, and firmware updates can
take a long time (sometimes hours).
Matter diagnostics and actions
Home Assistant works actively to provide the best support for Matter
devices out of the box. To help with that, we have added more information and
controls for your Matter devices in the UI.
On the device page of the Matter device in Home Assistant, we will now show
additional diagnostic information about the device. This information can be
used to troubleshoot issues with the device or when reporting issues. Some
examples include the network type the device uses, its addresses, and IDs,
device types and its connected fabrics.
Besides more information, you can also take new actions on the device.
For example, ping the device to check if it is available, force a full
device interview to sync all its information, remove it from another controller,
and even a new button to share your Matter device from Home Assistant with
another Matter controller.
Icons everywhere
We completely changed how Home Assistant handles icons under the hood.
A big effort from many people, with almost… no change! That is
right, almost everything looks just the same as before. 😁
We did make some improvements! For example, integrations can now
provide icons for things like fan speeds or thermostat presets. Also,
service call actions can now have their own icon as well:
Areas now have icons too! You can set them in the area configuration. They show
up in the area selectors and in the area dashboard itself
(in case you didn’t upload a picture).
Integrations with authentication issues are now shown in the repairs dashboards
When one of your integrations has authentication issues, Home Assistant
will now report this in the repairs dashboard.
Previously, this was only visible on the integration dashboard, but now it shows
up in the repairs dashboard, as this is the place where Home Assistant reports
all issues with your system.
Revamped Proximity integration
For this release, @mib1185 completely revamped our Proximity integration.
In case you are unfamiliar with it, it allows you to monitor the proximity of
persons to a particular zone. It provides information on how close one is
to a zone and if they are traveling towards or away from it.
It is an extremely powerful tool for automations. It allows you to create
automations based on the proximity of people. For example, if you are within
a certain range from your home and traveling towards it, you could use
Home Assistant to turn on the lights, open the garage door, turn up the heating,
and start your favorite playlist in the living room. Welcome home! 🤗
The best part? This integration is now available to set up from the UI!
Not just that, but it now uses normal sensor entities that we are all already
familiar with. This will make automating and displaying the data a breeze!
Thanks @mib1185! You did an outstanding job on this one!
If you are already using this integration, this change will come with the
deprecation of the old entities. See our backwards-incompatible changes
for more information.
Shipping on a new Python version
This release ships running on Python 3.12! In case you are wondering, what is
that? Well, Python is the programming language Home Assistant is written in.
Why it matters? It provides many improvements to the foundation we are building
Home Assistant on, most notably: It is faster! 🚀
Don’t worry! If you run the Home Assistant Operating System or are using the
Home Assistant Container installation type: You won’t have to do anything, as we
handle the upgrade to Python 3.12 for you. Just upgrade Home Assistant as
you normally would, and you are good to go! 😎
Other noteworthy changes
There are many more improvements in this release; here are some of the other
noteworthy changes this release:
-
@edenhaus improved how we handle errors in our form fields. We no longer
show the technical coding gibberish that often showed up in the past. Nice! - When you change the type of a switch entity to, for example, a garage door
entity, you will now have the option to invert its behavior.
Thanks, @emontnemery! - The Ecovacs integration received lots of love from @edenhaus and now
has support for many Deebot vacuum models with tons of entities to automate
with. Nice job! -
@mib1185 added automatic cleanups of old/unused refresh tokens 🧹. This
means you will be logged out on a device that hasn’t used Home Assistant for
90 days. Clean and tidy! - The Tuya integration can now be set up directly using the Tuya Smart
or Smart Life app. No more need for developer accounts or complicated
procedures! - Using the utility meter integration on, for example, your solar inverter,
which turns off at night? You can now set the sensor to always be available,
even when the source entity is unavailable. Thanks, @dougiteixeira! - The TP-Link Smart Home integration now supports newer devices,
including Tapo-branded devices! Awesome job @sdb9696, @bdraco,
and @rytilahti! -
@AngellusMortis added new sound event sensors introduced in
UniFi Protect version 2.11 to the UniFi Protect integration. Nice! - Are you a Jinja templating Ninja? @TNTLarsn added a new
bitwise_xor
filter for you to use. Awesome! - The Google Generative AI Conversation allows using the new Gemini Pro models,
including support for the Vision models. This allows you to use images in your
prompts too! See an example in the screenshot down below. Super impressive,
thanks @tronikos!
The Google Generative AI Conversation integration using the new Gemini Pro Vision models to describe what is seen on the doorbell camera.
New integrations
We welcome the following new integrations in this release:
-
AirTouch 5, added by @danzel
Control your AirTouch 5 ducted air conditioning systems. -
Bang & Olufsen, added by @mj23000
Control your Bang & Olufsen Beolab and Beosound devices. -
Bring, added by @miaucl
Use Bring to create shopping lists and share them with your family. -
Elvia, added by @ludeeus
Import your historic energy usage from an Elvia-operated grid. -
Epion, added by @lhgravendeel
Monitor your Epion air quality sensors. -
Govee lights local, added by @Galorhallen
Control your Govee lights locally. -
Home Assistant Analytics Insights, added by @joostlek
This integration allows you to monitor information from the public and open Home Assistant Analytics. -
Hong Kong Observatory, added by @MisterCommand
Get weather information from the Hong Kong Observatory. -
Huum, added by @frwickst
Control your Huum smart sauna heaters. -
La Marzocco, added by @zweckj
Control your La Marzocco espresso machines. -
LeaOne, added by @bdraco
Monitor your LeaOne health device under the Xiaogui and BAGAIL brands. -
myUplink, added by @pajzo
Monitor myUplink-supported devices in Home Assistant. -
Rabbit Air, added by @al-s
Locally control and monitor your Rabbit Air air purifiers. -
Rainforest RAVEn, added by @cottsay
Pull in energy data from your Rainforest RAVEn energy monitor. -
Romy, added by @xeniter
Control your Romy vacuum cleaners. -
Tedee, added by @zweckj
Use your Tedee smart locks in Home Assistant. -
Teslemetry, added by @Bre77
Pull in live telemetry data from your Tesla vehicle via the Tesla Fleet API. -
TechnoVE, added by @Moustachauve
Control of TechnoVE Smart Charging Station using a local API. -
Traccar server, added by @ludeeus
Track your GPS devices by pulling data from a Traccar server.
This release also has a new virtual integration. Virtual integrations are stubs
that are handled by other (existing) integrations to help with findability.
The following virtual integrations have been added:
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
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 changed the way refresh tokens are handled. Refresh tokens are part of what
keeps you logged in to Home Assistant.
Refresh tokens will be automatically deleted when unused. A refresh token
is considered unused if it has not been used for a login within 90 days.
If your logged-in session hasn’t been used for 90 days, you will be logged out.
You will need to log in again.
We recommend using Long-lived access tokens
if you need a permanent token.
(@mib1185 – #108428) (documentation)
The options flow that gave the option to set a custom scan interval has been
removed.
Adjustable scan interval is no longer allowed, but the option has
had no effect on the integration since 2023.11.
You can use an automation as an alternative to create a custom polling rate
(documentation).
Updating one entity in a blink configuration will update all entities in each
blink configuration.
(@mkmer – #106735) (documentation)
Update Wi-Fi diagnostic to match new API units – previously Blink reported RSSI
dBm, now they report generic 0-5 for signal strength.
(@mkmer – #107539) (documentation)
This integration has been disabled. The upstream libraries used by
Home Assistant are not compatible with Python 3.12.
This compatibility issue has been reported upstream.
(@frenck – #108163) (documentation)
The services ezviz.ptz
, ezviz.sound_alarm
, and alarm_sound
have been moved
to button and select entities in release 2023.8. Support for the deprecated
services has now been completely removed.
If you are using these services in automations or scripts, you will need to
update them to match this change.
(@jpbede – #107582) (documentation)
Any previous integration setups might have to be recreated or reconfigured with
the new models/gemini-pro
instead of the legacy models/chat-bison-001
.
(@tronikos – #105789) (documentation)
The Gas meter ID sensor is removed and the meter ID is now shown as a serial
number in the device info panel instead.
(@DCSBL – #100684) (documentation)
The preset mode was returning “unknown” rather than “none”.
Any references to preset_mode
may need to be updated.
(@mkmer – #108599) (documentation)
The services huawei_lte.clear_traffic_statistics
and huawei_lte.reboot
have
been moved to button entities in release 2023.8. Support for the deprecated
services has now been completely removed.
If you are using these services in automations or scripts, you will need to
update them to match this change.
(@jpbede – #107578) (documentation)
The following sensors have been removed from the JustNimbus integration
since they’re no longer available through JustNimbus’ API:
- Pump starts
- Pump hours
- Error code
- Total replenished
- Pump flow
- Drink flow
The following sensors have been renamed:
- Total saved (
total_saved
) -> Total saved (water_saved
) - Total use (
totver
) -> Total use (water_used
) - Maximum reservoir content (
reservoir_content_max
) -> Reservoir capacity (reservoir_capacity
)
Automations or scripts using any of the removed or renamed entities should be
updated. Once updated, the old entities can be safely removed.
(@kvanzuijlen – #99212) (documentation)
The services vacuum.turn_on
and vacuum.turn_off
were deprecated in 2023.11.
Support for the deprecated services has now been completely removed.
If you are still using them, please adjust your automations and scripts and
use vacuum.start
and vacuum.stop
instead.
(@jpbede – #107882) (documentation)
The Lutron integration previously created fans as light entities. This has been
changed to create actual fan entities instead.
If you have automations, scripts, scenes, or dashboards that used these light
entities, you will need to update them to use the new fan entities.
(@wilburCforce – #107402) (documentation)
The daily energy sensors have been removed to prevent being throttled by the
external API. This mostly affects ATW devices.
For ATA devices, this sensor is also removed. However, the total energy consumed
(if your device supports that) remains available. The latter supports long-term
statistics, providing insights into daily energy usage via the energy dashboard
or statistic card.
(@vilppuvuorinen – #109832) (documentation)
MQTT sensor
or binary_sensor
configuration with an entity_category
explicitly set to config
will fail to set up. Maintainers should set the
entity_category
attribute to diagnostic
or omit the config attribute.
Related developer blogpost
(@jbouwh – #107199) (documentation)
When an MQTT entity has a device name equal to the entity name or starts with
the device name, this will no longer be corrected.
When entities like these are created, they will have device and entity names in
the friendly name. Suppose the device name is omitted because it is the same
as the entity name. In that case, the entity name attribute should be null
in the JSON payload or YAML configuration.
Related developer blogpost
(@jbouwh – #107188) (documentation)
The support for MQTT vacuum entities with a legacy
schema is removed after 6
months of deprecation. Users can use the state
schema instead,
which is now the default.
(@jbouwh – #107274) (documentation)
The proximity entity (proximity.*
) is deprecated and will be removed in 2024.8.
It is superseded by sensor entities.
For each tracked person or device, one sensor for the distance and the
direction of travel to/from the monitored zone is created. Further, for each
Proximity configuration, one sensor that shows the nearest device or person
and its distance and direction of travel to the monitored zone is created.
(@mib1185 – #108730) (documentation)
The start time of day and start time of night sensors have been replaced by
time entities. If you used these sensors in automations or scripts, you will
need to update them to use the new time entities.
(@jimmyd-be – #105031) (documentation)
Call to RESTful command services will no longer silently fail and will raise an
exception on, for example, timeout or decoding errors.
You could consider using continue_on_error
for scripts and automations that use RESTful commands that are allowed to fail
occasionally.
(@RoboMagus – #97208) (documentation)
The service vacuum.start_pause
was deprecated in 2023.8. Support for the
deprecated service has now been completely removed.
If you are still using this service, please adjust your automations and scripts,
to use vacuum.pause
or vacuum.start
instead.
(@jpbede – #107895) (documentation)
Setting last_reset
for entities with a state_class
other than total
is
no longer supported. Please update your configuration if state_class
is manually configured (for example, in templates or when using customize to
override this attribute).
(@jpbede – #108391) (documentation)
The state value of the sensor is now a standardized timestamp.
Further, all timestamps
and durations
in the additional fields are now also
proper datetime/durations.
(@miaucl – [#12341064855]) (documentation)
To prevent overloading the power strips, the energy data is now polled every
60 seconds. If you need to poll the data faster, please use an automation that
calls the homeassistant.update_entity
service.
(@bdraco – #104208) (documentation)
The YAML configuration for the Traccar integration has been deprecated
and will be removed in Home Assistant 2024.8.0. Your YAML configuration will
be automatically imported to the new Traccar Server
integration.
If you previously used the scan_interval
option, this is not being imported.
If you are in need of a custom polling interval, you can use an automation
to define your own custom polling behavior.
Learn more about that here.
(@ludeeus – #109226) (documentation)
Tuya has provided an easier and improved login method for Home Assistant users.
Having a developer account with Tuya is no longer required; instead, you can
scan a QR code with your Tuya Smart or Smart Life app to authenticate it
with Home Assistant.
After updating to this release, Home Assistant will ask you to re-authenticate
your Tuya Smart or Smart Life account using this new method.
(@frenck – #109155) (documentation)
The services vacuum.turn_on
and vacuum.turn_off
were deprecated in 2023.8.
Support for the deprecated services has now been completely removed.
If still use them, please adjust your automations and scripts and
use vacuum.start
and vacuum.stop
instead.
(@jpbede – #107896) (documentation)
Previously, Tuya would fall back to using the metric system if the temperature
unit was not reported by a climate device. This behavior has been changed to
use the default unit configured on your system instead.
(@DellanX – #108050) (documentation)
Since version 2023.7 you have been informed that the “local only” option of
webhooks will become the default. With this release this change is now put
into effect. Please, if needed, adjust your automation triggers.
(@jpbede – #107670) (documentation)
In withings, the unit of measurement of all duration-related sensors
(for example, sleep, goal, and active time today) has been changed from
measuring in seconds to measuring in either hours or minutes.
If you want to measure in a different unit, please change the
preferred unit of measurement in the entity settings.
(@joostlek) (documentation)
The default rounding of numeric sensors to two decimals has been removed.
We now let the device and driver decide what precision should be reported. This
allows devices with greater precision to report accurately.
You can change the display precision in the UI for the sensor or use a template
sensor if you want to change the precision.
(@MartinHjelmare – #107100) (documentation)
Set suggested precision to 0 decimals for voltage sensors with a native unit in V.
This will uniform the display precision of voltage sensors where there otherwise
seems to be a variety of precision reported from different devices.
If you want to change the precision, you can do that in the sensor options in the
UI or with a template sensor.
(@MartinHjelmare – #107116) (documentation)
The Fan and Dry climate Preset modes have been removed after a period of
deprecation. If you haven’t done so, you should update your automations or
scripts to use the corresponding Dry and Fan HVAC modes instead.
(@jbouwh – #108124) (documentation)
If you are a custom integration developer and want to learn about breaking
changes and new features available for your integration: Be sure to follow our
developer blog. The following are the most notable for this release:
Farewell to the following
The following integrations are also no longer available as of this release:
-
Facebox has been removed. It is no longer possible to get API keys,
and thus, it is no longer possible to use this integration.
(@reedy – #107005) -
Legrand Home+ Control has been removed as their API shut down in December.
Use the Netatmo integration as an alternative to
integrate your Legrand Home+ Control devices.
(@jpbede – #107587) -
Life360 has been removed. They are now actively blocking third-party
access, including Home Assistant. The Home Assistant Companion app
is a good and (above all) privacy-friendly alternative.
(@pnbruckner – #107805)
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.2