2023.2: How can I Assist?

Home Assistant Core 2023.2! 🎉

This release covers the first month of development of 2023, and it is setting one heck of a high bar for the rest of the year! 😅

Undoubtedly, the most spectacular features are related to the first chapter of Year of the Voice. 🎙️ It is hard to sum up all of this in this release blog, so I’m not even going to try doing it in this introduction, but holy mother of smart homes: this is exciting stuff! 😮

My personal favorite this release: huge steps into an even tighter integration with our amazing sister project: ESPHome. Creating and maintaining your own secure DIY IoT devices just became a lot easier.

And since we are talking about awesomeness, have you noticed the large amount of logos in the release image above? So many new integrations! 🤩

Enjoy the release!

../Frenck

PS: Just a reminder that valentine’s day is coming up. Be sure to share the love! ❤️

Don’t forget to join our release party live stream on YouTube 1 February 2023, at 12:00 PST / 21:00 CET!

Meet: Assist!

It’s Home Assistant’s Year of the Voice, and it’s our goal to let users control Home Assistant in their own language. Together with the Home Assistant community, we have been hard at work building the foundation for this.

Today we like you to meet:

Screenshot showing the new assist feature being used to turn on lights

Assist icon Assist allows you to use natural language to control Home Assistant. It is powered by Hassil and the sentences (contributed by 112! people) from the Home Assistant Intents project.

We believe technology is meant to be played with, and projects should be usable as soon as possible. Together with the community, we can then iterate and refine. That’s why today, we’re delivering a basic experience supporting a stunning 22! languages that work with Assist.

Go ahead, it is enabled by default; just tap the new Assist icon Assist icon at the top right of your dashboard to start using it.

Oh, and we are also releasing some fun stuff we’ve cooked up along the way! Read more about Assist and other released voice features in the Chapter 1: Assist blogpost and a video presentation (including live demos) on YouTube.

Streaming history

History cards now update live! We now stream the state changes while they are happening and update the graphs in real-time 😲

Screenshot showing a history card presenting the power usage of a kitchen coffeemaker, updating live while brewing coffee These history cards now show live power usage, while I'm brewing a cup of coffee.

But this isn’t just limited to history cards, your history dashboard is now live too!

As a result of this all, we can now write less frequently to the database in our recorder. It took years of changes to get us to this point (thanks @bdraco 🙏). It greatly reduces resource usage and increases storage lifetimes significantly. The previously introduced live logbook and now the live history were the last pieces that made this possible.

As a side-effect, it should also resolve the authentication errors some people experienced re-opening the iOS companion app when using history cards.

Grouping sensors

The group helper now supports sensors too! Sensor groups can combine entities with a numeric state, like sensors, number, and number helpers entities.

Screenshot showing the process of adding a new sensor group

This feature is a revised, improved, and more logical version of the “Min/Max” integration / “Combine the state of several sensors” helper. It is likely we are going to replace those with this new sensor group in the future.

Compared to those previously mentioned methods, the sensor groups have the additional options to hide their member entities and the option to ignore sensors that currently are not in a numeric state (i.e., currently “unavailable” or “unknown”).

Now even tighter integrated with ESPHome

ESPHome already works really well with Home Assistant. Yet, this release makes it even better!

If you are using the ESPHome add-on, we have some great improvements for you. The add-on and Home Assistant will now communicate with each other, bringing in many new features.

When you set up a new device in ESPHome and next add it to Home Assistant, they will be able to exchange encryption keys. Removing the need for you to find, copy & paste those. Just a single click and the setup is done! 🚀

But that is not all. What is really mind-blowing, is that the ESPHome integration will now provide update entities when using the add-on!

Screenshots, left one showing pending updates for ESPHome devices. Right one: an ESPHome device installing an update straight from Home Assistant

Right now, the update entities will only indicate if a device needs updating. However, when the next major release of ESPHome (2023.2) becomes available, it will support updating them too! Yes, at that point, you can update your ESPHome devices directly from Home Assistant and even automate it!

Also, ESPHome is deprecating the old password-based authentication for its API in favor of the more secure encryption key. If one of your ESPHome devices is still using a plain password, Home Assistant will notify you by creating an issue in your Repairs dashboard.

Screenshot showing a raised repair issue for an ESPHome device still using the deprecated API password instead of an API encryption key

We’ve also prepared for the next release of ESPHome (2023.2), in which you can add a friendly, more human name to your ESPHome devices. Home Assistant will pick those up, making your ESPHome devices look better out-of-the-box!

Other noteworthy changes

There is much more juice in this release; here are some of the other noteworthy changes this release:

  • You can now add aliases to your areas too! Our new Assist feature leverages this.
  • Got an energy sensor in Wh, but you’d like it to be kWh? You can now change the units of energy sensors in the entity settings.
  • Each entity in the frontend has its own color, which is based on the current entity state. We now have officially added support for themes to customize these.
  • The most awesome integration of all, got even better. @Lash-L added support for the battery state of your Oral-B toothbrush!
  • The automations & scripts UI now support selecting other entities for above/below in the numeric state conditions & triggers. Thanks, @karwosts!
  • The Reolink integration now supports FLV streams, cameras can be discovered on the network, but more importantly: binary sensors! For things like motion, person, vehicle detection, and… Doorbell presses! Thanks, @starkillerOG!
  • There is now a service that allows for the creation of calendar events. So, you can now automate events to be added to your calendars! Amazing, @allenporter!
  • When selecting multiple entities from a list in the UI, it will now exclude already added entities. No more accidentally added duplicates! Thanks, @piitaya!
  • @Kane610 added PoE power sensors to the UniFi Network integrations, nice!
  • The Tile card now has a vertical option! Great, @TheZoker!
  • Jellyfin now works with TV shows in the media browser. Thanks, @j-stienstra!
  • We have bumped the CHIP/Matter SDK version used by our Matter implementation to 1.0.0.2, which contains many fixes.
  • From the Month of “What the heck?”: Old-style groups can now remove entities from the group using the group.set service. Thanks, @gjohansson-ST!
  • You might have noticed a Thread and an Open Thread Border Router integration being added to this release. These are currently not for active use but for initial early development.
  • The experimental multi-pan feature has been enabled again. Allowing to run both Zigbee and Thread using the single radio found in both Home Assistant Yellow and Home Assistant SkyConnect.
  • The following integrations now reached a Platinum level on the integration quality scale:

New Integrations

We welcome the following new integrations in this release:

  • EnergyZero, added by @klaasnicolaas
    Retrieves dynamic (hourly) energy & gas prices from the Dutch utility company EnergyZero.

  • EufyLife, added by @bdr99
    Integrate Eufy smart scales over Bluetooth.

  • Everything but the Kitchen Sink, added by @emontnemery
    This is a test integration, which provides various odd and obscure entities. It can be helpful for development purposes, but generally no use otherwise.

  • Google Mail, added by @tkdrob
    Provides services to manage your Google Mail auto-response and provides a notification service to send (or draft) emails.

  • LD2410 BLE, added by @930913
    Integrates a $4 LD2410 Bluetooth mmWave sensor, which works with our Bluetooth proxies!

  • Mopeka, added by @bdraco
    Works with your Mopeka BLE propane tank monitors.

  • OpenAI Conversation, added by @balloob
    OpenAI integration that uses GPT-3 to showcase replacing the Home Assistant conversation agent. Note: It cannot control anything in your home.

  • Read Your Meter Pro, added by @OnFreund
    Pull in your water usage/meter readings from your Read Your Meter Pro account.

  • Ruuvi Gateway, added by @akx
    Integrates the Ruuvi Gateway that reads your Ruuvi sensors.

  • SFR Box, added by @epenet
    Offers integration with the SFR broadband routers.

  • Starlink, added by @boswelja
    Starlink is a satellite internet constellation operated by SpaceX. Integrate your Starlink dish with Home Assistant.

  • Stookwijzer, added by @fwestenberg
    Stookwijzer advises wether to burn pallets or wood, or to use the barbecue. This can prevent health problems for people in the area (NL only).

  • Zeversolar, added by @kvanzuijlen
    Get power and energy information from your Zeversolar solar inverter locally.

This release also has some new virtual integrations. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. These are new:

Integrations now available to set up from the UI

The following integrations are now available via the Home Assistant UI:

Release 2023.2.1 - February 2

Release 2023.2.2 - February 4

Release 2023.2.3 - February 7

Release 2023.2.4 - February 13

Release 2023.2.5 - February 15

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

Python 3.9 support has been removed

Python 3.9 support has previously been deprecated and has now been removed. Home Assistant now requires Python 3.10 to run.

If you are using Home Assistant OS, Home Assistant Container, or Home Assistant Supervised installation method, you don’t have to do anything. In those cases, we handle this all for you.

Your system has been using Python 3.10 for quite some time already.

(@frenck - #85456)

MariaDB

If you are using MariaDB with Home Assistant recorder, please make sure you run 10.5.17 , 10.6.9, 10.7.5, 10.8.4 (depending on which major release you are using). If you are using the MariaDB core add-on, make sure to update it to the latest version: 2.5.2.

Older versions of MariaDB suffer from a significant performance regression when retrieving history data or purging the database.

(@bdraco - #87040)

Automations & Scripts

A disabled condition, for example, in an automation or script, will no longer always be a pass/True within an OR condition. Instead, in those cases, the condition will now have no effect when disabled.

(@karliemeads - #79718) (documentation)

AccuWeather

For the precipitation entity, the unit was changed from mm to mm/h (in to in/h), resulting in the need to fix the unit for long-term statistics. You can do that in Developer Tools -> Stats.

(@bieniu - #86088) (documentation)

Airly

If the language in the Home Assistant settings is set to Polish, the language of the advice and description attributes of the CAQI entity will change from English to Polish.

If you are using these in your automations or scripts, you might need to adjust them to match this change.

(@bieniu - #85655) (documentation)

Fitbit

The state values of the Fitbit sensor entities will change to remove any thousands delimiters. For example, 1,500 will become 1500.

If you’re using the state of these entities in automations or scripts, you need to update them to handle the new state format.

(@sw-carlos-cristobal - #85251) (documentation)

Flume

The scan/update interval for water values has been restored to match the Flume app.

To stay under Flume’s API limits, the device connection is now checked hourly, and notifications are checked every 5 minutes.

(@bdraco - #86354) (documentation)

History

The use_include_order YAML configuration option has been removed.

This option was used to sort the history on the original history panel which, is no longer used. As it no longer has a function and only serves to slow down the response, it has been removed.

(@bdraco - #86365) (documentation)

IoTaWatt

The IoTAWatt integration no longer provides sensors with the “Accumulated” suffix. The accumulated sensors have been introduced to support net energy export/import metering.

Newer versions of IoTaWatt provide “Integrators”, which allow achieving the same more efficiently and with higher accuracy.

You should configure Integrators to calculate the net energy export and import.

(@agners - #86611) (documentation)

Matter

The Matter integration now requires running Matter Server version 2.0.0.

If you’re using the Matter Server add-on to run the Matter Server, you will need version 3.0.0 of the add-on.

We had to change our vendor ID in the add-on; as a result, all devices need to be recommissioned.

(@MartinHjelmare - #86470) (documentation)

Nettigo Air Monitor

The states of air quality sensors have been standardized to match Home Assistant core rules. This affects two states of the sensors that NAM can provide:

  • very low, which now became very_low
  • very high, which now became very_high

If you used those states directly in your automations, scripts, or templates; you would need to adjust those to match these changes.

(@frenck - #85245) (documentation)

Pentair ScreenLogic

The Pentair ScreenLogic integration now correctly categorizes all known lights. Removing any lights that were previously incorrectly created as switch entities may be necessary.

(@dieselrabbit - #86608) (documentation)

Pi-hole

The previously deprecated YAML configuration of the Pi-hole integration has been removed.

Pi-hole is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.

(@mib1185 - #84803) (documentation)


The extra state attribute “Domains blocked” has been removed from all sensors. It is already exposed as its own dedicated sensor.

If you used the state attribute in your automations or scripts, you would need to adjust them to use the dedicated sensor instead.

(@mib1185 - #85424) (documentation)

Rain Bird

Rainbird is now configured via the UI, and configuration from YAML has been imported automatically.

However, there are a few notable changes:

  • Custom per zone overrides for irrigation time are no longer supported.
  • The Rain delay binary_sensor that duplicates the Rain delay time sensor has been removed. You should move all uses to the sensor value and check for a non-zero value to get equivalent behavior.
  • The Rain sensor that duplicates the Rain binary_sensor has been removed. You may check the binary_sensor state to get equivalent behavior.

Also, the way the “Rain Delay” is managed has changed. The Rain Delay, which pauses irrigation for a specified number of days, is now managed with a number entity which can be controlled directly from the UI.

The existing service call rainbird.set_rain_delay and the Raindelay sensor have been deprecated. Any existing automations or scripts that make service calls to rainbird.set_rain_delay will need to be replaced with a call to number.set_value. Additionally, the existing service call was updated to require an integration entry configuration since it previously had undefined behavior, so it is recommended to move directly to the new number service call.

(@allenporter - #85271 #86208) (documentation)

Recorder

The recorder’s default commit interval has been increased to 5 seconds to reduce disk I/O and increase storage longevity.

As the history and logbook integrations both support live streaming, which avoids the need to read the database after the initial sync, there is no remaining core functionality that needs a lower commit interval.

The commit_interval can be adjusted to a lower value in the event an integration has not been updated to watch for events instead of reading the database and needs to read the database sooner.

(@bdraco - #86115) (documentation)

Renault

The previously deprecated renault.charge_start service has been removed. Please use the dedicated start charge button entity to start the charge instead.

(@epenet - #86070) (documentation)

Sony Bravia TV

Sony Bravia TV media players no longer have fake (assumed) playing or paused states, and those are replaced with the on state.

If you have automations or scripts that use the playing or paused state, please update them to be compatible with this change.

(@Drafteed - #84885) (documentation)


The source_list no longer contains a list of applications and TV channels. Apps and channels have been separated from the input list and moved to the Media Browser.

If you have automations or scripts that use media_player.select_source to switch apps or channels on the Bravia TV, the automations need to be updated to use media_player.play_media service instead.

The options flow has been removed from the integration, as the only configurable setting ignored_sources was no longer relevant and incompatible with this change.

(@Drafteed - #85288) (documentation)

Spain electricity hourly pricing (PVPC)

The previously deprecated YAML configuration of the Spain electricity hourly pricing (PVPC) integration has been removed.

Spain electricity hourly pricing (PVPC) is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.

(@azogue - #85614) (documentation)

Tado

The swing modes of Tado have changed. This is to standardize with other integrations, and so it can support translations.

  • ON became the lowercase on
  • OFF became the lowercase off

If you used these swing modes in your automations or scripts, you might need to adjust those to this change.

(@emontnemery - #84278) (documentation)

Twinkly

All extra state attributes from Twinkly light entities have been removed.

They mostly added information about the device, not the actual light state itself.

(@frenck - #84986) (documentation)

Universal Devices ISY/IoX

ISY/IoX Variables have been moved from sensor entities to number entities; the existing sensor entities are deprecated and will be removed in a future release.

The isy994.set_variable service has been deprecated in favor of using the number entities to directly set the variable values.

Please update any dashboards, scripts, and automations that may be using these entities or service.

(@shbatm - #85511) (documentation)


Entities for INSTEON Aux Properties and Device Communication Errors have been removed for nodes that are not the main (load) node.

On Level and Ramp Rate sensors have been removed for non-dimmable (non-light.) devices. Only load devices receive communication error updates and only dimmable devices support OL and RR commands.

The other entities were previously added but did not receive valid states from the ISY or end-devices. These sensors were disabled by default.

(@shbatm - #85744) (documentation)

Uptime

The previously deprecated YAML configuration of the Uptime integration has been removed.

Uptime is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.

(@frenck - #86292) (documentation)

Yamaha Network Receivers

When there is a connection error with the receiver, the device will now go into an unavailable state until the connection has been restored.

(@sredna - #85018) (documentation)

Yamaha MusicCast

The raw state/option values of the Yamaha MusicCast zone sleep select entities have been standardized to match Home Assistant core rules.

The following states/options have been changed

  • 120 min, which now became 120_min
  • 90 min, which now became 90_min
  • 60 min, which now became 60_min
  • 30 min, which now became 30_min

If you used those states/options directly in your automations, scripts, or templates; you will need to adjust those to match these changes.

(@frenck - #85292) (documentation)

Zentralanstalt für Meteorologie und Geodynamik (ZAMG)

The previously deprecated YAML configuration of the Zentralanstalt für Meteorologie und Geodynamik (ZAMG) integration has been removed.

Zentralanstalt für Meteorologie und Geodynamik (ZAMG) is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.

(@killer0071234 - #86113) (documentation)

Zigbee Home Automation

The AnalogInput sensor entities for certain Xiaomi plugs have been removed from ZHA.

Properly working “Active power” and “Summation delivered” sensors are available to replace the older entities. These newer sensor entities can also be used in Home Assistant Energy dashboard.

(@TheJulianJES - #86261) (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:

  • Almond has been removed. It is in a non-working state, and the services have been shut down.
  • OpenALPR Local was previously deprecated and has now been removed. It doesn’t work correctly and has no usage, according to our public analytics.

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 2023.2