Upgrade Path

Home Assistant Core 2023.1.0 → 2023.2.0

8 versions, 26 breaking changes in 1 version, 0 required stops

Version by version, oldest first

2023.1.1 – 2023.1.7: no action items (7 versions)

2023.2.0 2023-02-01

Quoted from www.home-assistant.io/blog/2023/02/01/release-20232/#backward-incompatible-changes

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Breaking

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)

Note

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.

From www.home-assistant.io/blog/2023/02/01/release-20232/#farewell-to-the-following

Full release notes for 2023.2.0

Release notes from github.com/home-assistant/core/releases, and the official release blog, checked 17 hours ago. Only text the vendor marks as breaking, or puts in a warning/caution/important note, is shown; read the full notes for anything else. Home Assistant lists its breaking changes in the “Backward-incompatible changes” section of each monthly release post on home-assistant.io (2020.12 onward). Each entry of that section is quoted as “Breaking” on the x.y.0 release, under the integration name the post gives it. The post’s “Farewell to the following” section (integrations removed in that release, 2020.12–2024.5) is quoted whole as “Note”. The post's separate section for custom integration developers is not quoted. Patch releases are listed but their notes (lists of fixes) are not quoted. Versions come from PyPI (package homeassistant).