Home Assistant Core 2021.5.0 → 2026.9.4
372 versions, 1081 breaking changes in 63 versions, 0 required stops
Version by version, oldest first
2021.5.1 – 2021.5.5: no action items (5 versions)
2021.6.0 2021-06-02
23 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2021/06/02/release-20216/#backward-incompatible-changes
Breaking
HTTP (using reverse proxies)
Home Assistant will now warn when a misconfigured reverse proxy, or misconfigured Home Assistant instance when using a reverse proxy, has been detected.
These warnings will become an error in Home Assistant 2021.7.
If you are using a reverse proxy, and see these warnings, please make sure you have configured use_x_forwarded_for and trusted_proxies in your HTTP integration configuration.
For more information, see the HTTP integration documentation.
Breaking
Custom cards
We upgraded our frontend to use Lit 2.0. During the beta we have noticed some custom cards or views are using LitElement and lit-html from our components.
This is not a recommended practice, and might now cause the custom card to break this release. If you encounter issues with a custom card, please report this issue with the custom card developer.
Additional information about this change and information for custom card developers on how to upgrade their card, can be found in our developer blog:
Breaking
Custom integrations (custom_components)
As mentioned in every release since 2021.3, custom integrations will require a version key in their manifest file.
As of this release, if that version key is missing in the manifest, the custom integration will no longer be loaded.
For more details see our developer blog about it
Breaking
1-Wire
Support for OWFS has been dropped (obsolete since 0.117).
This part of the implementation did not conform to policy regarding 3rd-party libraries of Home Assistant.
(@epenet - #50121) (onewire docs)
Breaking
Denon AVR
Alexa EqualizerController has been disabled for Denon AVR since it caused Alexa to be unable to discover any devices.
(@starkillerOG - #49628) (Alexa docs)
Breaking
AVM FRITZ!Box Tools
Since in most cases, the amount of really wanted to be tracked devices is quite lower than the overall count of devices, device_tracker entities will be disabled by default. You need to specifically enable wanted device_tracker, even newly detected devices.
(@mib1185 - #50791) (fritz docs)
Breaking
Blebox
Blebox light no longer supports the deprecated white_value, use rgbw_color instead.
(@emontnemery - #49562) (blebox docs)
Breaking
Buienradar
Buienradar is now configurable via the UI and has deprecated support for the YAML configuration. Your existing YAML configuration will be imported once.
When you have a weather and sensor setup for same coordinates, they will be merged into one integration instance. Only one camera configuration will be imported.
Following things are changed:
- The
forecastkey of the weather platform is deprecated, forecast data is fetched in the same API call and to be in line with ADR-0003, all available data is exposed. - Weather, sensor and camera domain are setup in one integration. For new entries, sensor and camera entities are disabled by default.
- Dimension for camera images is fixed to 700 pixels.
(@RobBie1221 - #37796) (buienradar docs)
Breaking
EE Bright Box
The integration library requirement has requirements that are conflicting with requirements of other integrations. The library maintainer hasn't responded to our issues for 10 months.
The integration is therefore disabled until the library has been fixed and Home Assistant updated with a new library version.
Breaking
Epson
Epson integration doesn't allow port set anymore. It uses port 80 and 3629 for communication.
(@pszafer - #45434) (epson docs)
Breaking
Goal Zero Yeti
The 12V, AC, and USB binary sensors are now switches. You should update any automations and scripts that depend on these moved entities.
Before: binary_sensor.yeti_ac_port_status After: switch.yeti_ac_port_status
(@tkdrob - #48612) (goalzero docs)
Breaking
HomeKit Controller
HomeKit Controller climate devices will change the reported temperature precision for their current_temperature attribute from whole degrees to 0.1 degree increments when the system is in Fahrenheit mode.
Automations which assume whole-number reporting precision may need adjustments.
Breaking
KNX
The create_temperature_sensors option for climate devices is now deprecated. Please use a template sensor instead.
This option created sensor entities out of climate configuration. This will not work anymore when sensor entities are also only generated from configuration.
The create_sensors option for weather entities is now deprecated. Please use template sensors instead.
This option created sensor entities out of weather configuration. This will not work anymore when sensor entities are also only generated from configuration.
Breaking
Luftdaten
The unit of measurement for the Luftdaten pressure sensors has been adjusted from pascal (Pa) to hectopascal (hPa). The value is still the same, the unit displayed in Home Assistant was wrong and now corrected.
If you have automation or record data from this integration (externally), you might need to adjust to this change.
Breaking
Modbus
The old configuration style for switches is no longer supported
# old configuration.yaml:
modbus:
- name: "mymodbus"
....
switches:
- name: "switch12"
hub: "mymodbus"
# new configuration.yaml:
modbus:
- name: "mymodbus"
....
switches:
- name: "switch1"
The new configuration style have changed, to secure against illegal configurations:
# before configuration.yaml:
modbus:
- name: "mymodbus"
....
switches:
- name: "switch1"
input_type: "holding"
verify_state: false
# new configuration.yaml without verify:
modbus:
- name "mymodbus"
....
switches:
- name switch1
write_type: "holding"
# new configuration.yaml with verify:
modbus:
- name: "mymodbus"
....
switches:
- name: "switch1"
write_type: "holding"
verify:
(@janiversen - #49386) (modbus docs)
scan_interval, if used, in any Modbus platform cannot be lower than 5 seconds. Adjustment is done automatically with a warning if needed.
Modbus timeout, if used, is automatically adjusted (with a warning) to not be higher than lowest scan interval - 1 second.
(@janiversen - #50363) (modbus docs)
Breaking
MQTT
Peviously deprecated features of MQTT cover have been removed:
- Using
value_templateto use for extracting position is no longer allowed an error will be raised if this configuration is used, Instead of usingvalue_template,position_templateshould be used. tilt_invert_stateis removed, insteadtilt_minandtilt_maxshould be used, error will be raised if this is found in configuration.
(@thecode - #50263) (MQTT docs)
If you use MQTT with the CloudMQTT broker service and have not configured a certificate for MQTT, you now need to adjust to the following:
mqtt:
certificate: auto
host: ... # all other info
Breaking
Network / Zeroconf
Network adapter configuration has moved to the UI. Users that previously used a custom zeroconf interface configuration may need to adjust the settings in the UI.
(@bdraco - #50874) (network docs)
Breaking
Sonos
The device associated with Sonos speakers will report a different firmware version, switching to the more common formatted version number from now on.
(@jjlawren - #50861) (Sonos docs)
Breaking
TensorFlow
Support for the TensorFlow integration is now deprecated on the Home Assistant OS, Supervised & Container installation types.
Support for it will be removed in Home Assistant 2021.7.
The use of the TensorFlow integration on the Home Assistant Core installation type, will remain available.
Breaking
Tibber
Attributes for the Tibber Pulse sensor are removed and replaced by separate sensors.
Additionally the unique ID are changed, which might have caused changes to the entity IDs.
You need to to check you entities and automations and adjust them to these changes.
(@Danielhiversen - #50418) (tibber docs)
Breaking
TP-Link Kasa Smart
This changes the behavior of turning a bulb when no parameters are defined. Turning on a bulb without additional parameters will now result in a "Last On" state rather than any sort of preset that may have been set in Kasa.
Breaking
Utility Meter
The last_reset state attribute of utility_meter sensors are now in UTC and stored as a string.
Automations and scripts accessing the last_reset state attribute may need to be updated.
Breaking
Z-Wave JS
Z-Wave JS lights no longer support the deprecated white_value, use rgbw_color instead.
(@emontnemery - #49588) (zwave_js docs)
Users should update zwave-js-server to 1.7.0 or higher. If the official Home Assistant Z-Wave JS add-on is used, add-on version 0.1.23 and higher will include zwave-js-server 1.7.0.
Note
Farewell to the following
The following integrations are no longer available as of this release:
From www.home-assistant.io/blog/2021/06/02/release-20216/#farewell-to-the-following
2021.6.1 – 2021.6.6: no action items (6 versions)
2021.7.0 2021-07-07
25 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2021/07/07/release-20217/#backward-incompatible-changes
Breaking
Using a reverse proxy with Home Assistant
Home Assistant will now block HTTP requests when a misconfigured reverse proxy, or misconfigured Home Assistant instance when using a reverse proxy, has been detected.
If you are using a reverse proxy, please make sure you have configured use_x_forwarded_for and trusted_proxies in your HTTP integration configuration.
For more information, see the HTTP integration documentation.
Additionally, access to Home Assistant from the same IP address as a trusted proxy will be rejected if the request is marked as forwarded.
Breaking
Python 3.9 / Alpine 3.13
Our Docker images are now based on Alpine 3.13 and run Python 3.9.
This is mainly interesting if you running custom Docker containers based on our container.
If you are using Home Assistant Container, Home Assistant OS or the Home Assistant Supervised installation method, you will automatically get this update on upgrade and no additional interaction is needed.
Please note, that Alpine 3.13 on ARM devices running a 32-bits operating system (armhf/armv7), requires your Docker version to be at least 19.03.9 (although, we recommend updating to an even higher version). Additionally, you need to have libseccomp 2.42 or newer.
Breaking
Airly
The AirQuality platform has been marked as deprecated. The air_quality entity is removed and replaced with sensor entities. You will need to update their automations and dashboards if you have been using the air_quality entity of Airly.
(@bieniu - #52225) (airly docs)
Breaking
Azure Event Hub
When using this integration with IoTHub, the event_hub_name is now a required field can be filled by the DeviceID when using IoTHub.
Breaking
Breaking
Coinbase
The Coinbase integration migrated to configuration via the UI. Configuring Coinbase via YAML configuration has been deprecated and will be removed in a future Home Assistant release. Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@TomBrien - #45354) (coinbase docs)
Only accounts explicitly included in account_balance_currencies will be loaded. Excluding the option will no longer load all provided accounts as Coinbase's API now provides at least 29 accounts even if they are not configured in your API settings on Coinbase.
(@TomBrien - #51981) (coinbase docs)
Breaking
Database (statistics table)
The statistics table is a Home Assistant data table that is not exposed or used by Home Assistant yet and is part of an alpha / feature that is in development. However, it does exist and you might already want to check it out or find a use for it.
In this release, the content of this table is reset. This does not impact any state history and this data isn't used by Home Assistant as of yet.
If you have no idea what this message is about, you can safely ignore it. We have merely listed this to be complete in our backward-incompatible changes report.
(@emontnemery - #52331) (history docs)
Breaking
DSMR Slimme Meter
Configuring the DSMR integration via YAML has been deprecated and will be removed in Home Assistant 2021.9. If you have an existing YAML configuration for the DSMR platform is will be imported into the UI automatically on upgrade. You can safely remove the DSMR YAML configuration after upgrading Home Assistant.
(@frenck - #52179) (dsmr docs)
The Hourly Gas Consumption sensor has been removed from the DSMR integration. This sensor was calculated and it is not an actual datapoint from the energy meter.
If you are looking for a replacement, you can use the Derivative integration to re-create the hourly (or any other timeframe) sensor based on the total Gas consumption sensor.
Breaking
Google Play Music Desktop Player (GPMDP)
- The integration has been disabled since it requires an old version of the
websocket-clientlibrary which is incompatible with the requirements of other integrations that are actively maintained.
- It's not clear if this integration still works with the gpmdp app that now only supports YouTube Music. If there's someone that uses the integration successfully and wants to take on the maintenance task that is required to get the integration in a compatible state, please create an issue to discuss the future of this integration.
(@MartinHjelmare - #51509) (gpmdp docs)
Breaking
Growatt
The Growatt API has changed individual PV array units from Watts to Kilowatts. This change is to update the units used for these values in Home Assistant, therefore the units for these values will change.
Breaking
Kuler Sky
Kuler Sky lights no longer supports the deprecated white_value attribute for its lights. Use the rgbw_color attribute instead.
(@emontnemery - #52080) (kulersky docs)
Breaking
MeteoAlarm
You can no longer use the 2 letters of your country code, but must now use the complete country name in your configuration. To find out which country names you can use, please look at meteoalarm.org.
Breaking
Modbus
As announced in 2021.4, the “old style” YAML was deprecated and now removed:
Example “old style” configuration, that is now invalid:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
binary_sensor:
platform: modbus
registers:
- name: Sensor1
hub: hub1
slave: 1
register: 100
Same configuration in valid new style:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
binary_sensors:
- name: Sensor1
slave: 1
address: 100
(@janiversen - #51117) (modbus docs)
The coil and register configuration options are changed to address and (if not default) input_type.
Previous configuration example:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
coil: 117
- name: Door2
register: 131
state_open: 1
state_closed: 0
The new configuration looks like this:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
input_type: coil
address: 117
- name: Door2
address: 131
state_open: 1
state_closed: 0
(@janiversen - #51154) (modbus docs)
The configuration attributes curent_temp_register and current_temp_register_type are changed to address and input_type in order for all platforms to have a common configurations.
Before this PR, this was legal:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: "Watlow F4T"
current_temp_register: 27586
current_temp_register_type: holding
This changes to:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: "Watlow F4T"
address: 27586
input_type: holding
(@janiversen - #51202) (modbus docs)
Modbus sensor ‘reverse_order’ is no longer supported, please use ‘swap’ instead.
Old configuration:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
sensors:
- name: Sensor1
address: 100
reverse_order: true
New configuration:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
sensors:
- name: Sensor1
address: 100
swap: word
(@janiversen - #51665) (modbus docs)
data_count is no longer supported, please use count.
No longer supported:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: "Watlow F4T"
address: 27586
input_type: holding
data_count: 1
...
Please change it to:
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: "Watlow F4T"
address: 27586
input_type: holding
count: 1
...
(@janiversen - #51668) (modbus docs)
Breaking
MQTT
It's no longer possible to set attributes defined in the base component via a configured json_attributes_topic.
For example, a light no longer accepts brightness via the json_attribute_topic. This was unintended and an undocumented functionality that lead to unexpected behavior.
This change applies to all supported MQTT platforms.
(@emontnemery - #52242 #52278 #52280 #52285 #52286 #52283 #52289 #52291 #52290 #52288 #52282 #52279) (mqtt docs)
Breaking
Breaking
Open Z-Wave
Open Z-Wave lights no longer support the deprecated white_value attribute, use rgbw_color instead.
(@emontnemery - #52063) (ozw docs)
Breaking
Prometheus
Prometheus is now converting temperatures in °F to °C. If you are relying on temperature_c being in Fahrenheit, you will need to make adjustments, for example by doing a unit conversion in a PromQL query.
(@masto - #52212) (prometheus docs)
Breaking
Recorder
The underlying library that is used for the database connections, has been updated. This fixes a bug, that might be a breaking change for you.
If you use an @ in your database username or password, you will have to adjust your database connection string to use %40 instead.
Database connection strings are considered URLs, thus special characters need to be encoded. %40 is the URL encoded version of @.
Breaking
Rituals Perfume Genie
The switch extra state attributes fan_speed and room_size will be removed in the next release. As of this release, both attributes are available as entities, making it possible to change the value with Home Assistant.
Breaking
Sony Bravia TV
From April 2020, the Sony Bravia TV integration has been automatically importing your import of existing YAML configurations. Now we have removed this option for migration. Your existing configuration has been imported to the UI already and can now be safely removed from your YAML configuration files.
(@bieniu - #52141) (braviatv docs)
Breaking
Spain electricity hourly pricing (PVPC)
With the change to the new, and unique, electric tariff 2.0TD, if you previously had configured multiple PVPC sensors monitoring prices for more than one of the old tariffs, only the first one will survive. This means if you have any automation or script that depends on these removed sensors, you might need to adjust them.
Breaking
Tasmota
Tasmota doesn't support independent control of all four channels of an RGBW light, so rgbw_color was a very poor fit for it and gave counter-intuitive results. Tasmota lights supporting color and white will now be added as a light supporting color modes hs and white, not as a light supporting color_mode rgbw. now supports setting white instead.
Scenes setting a Tasmota light can be updated by using the scene UI editor.
Automations setting a Tasmota light need to be updated manually, to set a light to white mode do:
- service: light.turn_on
target:
entity_id: light.genbbc05
data:
white: 242
(@emontnemery - #51608) (tasmota docs)
Breaking
Switcher
In preparation for multi-device support, configuration via the UI and support for discovery; this integration is migrating entity attributes into sensors to be later added as device entities. The following switch entity attributes migrated to sensors:
| Attribute | Sensor Name |
|---|---|
power_consumption | Power Consumption |
electric_current | Electric Current |
remaining_time | Remaining Time |
auto_off_set | Auto Shutdown |
(@thecode - #51964) (switcher_kis docs)
Breaking
Yamaha MusicCast
The integration has been rewritten from the ground up and is now configurable via the user interface only. Existing platform YAML config will automatically be imported into the user interface on upgrade and can be safely removed from the YAML configuration after the upgrade has been completed.
Breaking
Zero-configuration networking (zeroconf)
The IPv6 configuration option has been deprecated in favor of the settings provided by the network integration.
(@bdraco - #51173) (zeroconf docs)
2021.7.1 – 2021.7.4: no action items (4 versions)
2021.8.0 2021-08-04
34 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2021/08/04/release-20218/#backward-incompatible-changes
Breaking
Abode
The previously deprecated YAML configuration of the Abode integration has been removed.
Abode 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 - #52357) (abode docs)
Breaking
AirVisual
The Air Quality platform has been marked as deprecated, therefore the air_quality entity has been removed and replaced with sensor entities.
If you used the air_quality entity in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
(@bachya - #52349) (airvisual docs)
States for the "Pollutant Level" and "Main Pollutant" entities have changed; automations that depended on the old states will need to be updated.
Pollutant Level:
Good -> goodModerate -> moderateUnhealthy -> unhealthyUnhealthy for sensitive groups -> unhealthy_sensitiveVery unhealthy -> very_unhealthyHazardous -> hazardous
Pollutant Label:
Carbon Monoxide -> coNitrogen Dioxide -> n2Ozone -> o3PM10 -> p1PM2.5 -> p2Sulfur Dioxide -> s2
(@bachya - #53133) (airvisual docs)
Breaking
Ambient Weather Station
The previously deprecated YAML configuration of the Ambient Weather Station integration has been removed.
Ambient Weather Station 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.
Breaking
AVM FRITZ!Box Net Monitor / AVM FRITZ!Box Tools
In order to optimize device load and avoid exhausting available connections, fritz_netmonitor has been merged into fritz.
Please remove your YAML existing configuration and configure the new integration.
(@chemelli74 - #52264) (fritz docs)
The profile switches introduced in the previous release have been removed as they where incompatible with the Home Assistant architectural design rules.
Instead, you can now block every device connected individually.
Breaking
AVM FRITZ!SmartHome
The power and energy attributes from switch entities have been removed and replaced by sensors.
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
(@mib1185 - #52562) (fritzbox docs)
Breaking
Bosch BME280
The YAML configuration for this integration has changed. Instead of a sensor config with platform section, an integration configuration section under the integration domain key should be used.
Before:
sensor:
- platform: bme280
name: "Stary_Oskol"
After:
bme280:
- name: "Stary_Oskol"
(@Kuzj - #48775) (bme280 docs)
Breaking
Broadlink
The power and energy attributes from switch entities have been removed and replaced by sensors.
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
Breaking
Buienradar
The previously deprecated YAML configuration of the Buienradar integration has been removed.
Buienradar 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 - #52939) (buienradar docs)
Breaking
CO2 Signal
The CO2 Signal integration migrated to configuration via the UI. Configuring CO2 Signal via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
Breaking
devolo Home Control
The consumptions attributes from the switch entities have been removed and replaced by sensors.
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
Breaking
GIOŚ
The Air Quality platform has been marked as deprecated, therefore the air_quality entity has been removed and replaced with sensor entities.
If you used the air_quality entity in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
Breaking
Google Assistant
Home Assistant will no longer expose the legacy fan speeds to Google Assistant.
If you use fans with with Google Assistant, you'll need to resync your device. Ask you Google device to Sync my device or trigger an update via the google_assistant.request_sync service.
Breaking
HomeKit
Previously the on/off switches provided to HomeKit by scripts, would enable or disable a script. This likely was not what is expected as Hey Siri turn on "script" would appear to do nothing.
Pressing a script switch in HomeKit now runs the script instead.
(@bdraco - #53106) (homekit docs)
Breaking
HomeKit Controller
HomeKit Controller was using the wrong ID to track some sensors. The following are affected:
- Koogeek or Eve power sensors (added in Jan 2021)
- The temperature sensor added alongside homekit climate devices (added in Jul 2021, the climate entity itself is not affected)
If you have one of these you may need to remove a stale entity registry entry and you may need to fix the names of these entities as customizations may be lost.
(@Jc2k - #53848) (homekit_controller docs)
If you have a power sensor for a Eve Energy or Koogeek P1EU/SW2, the units for that sensor has changed from watts to W to properly follow Home Assistant standards.
Breaking
Honeywell Total Connect Comfort (US)
The Honeywell integration migrated to configuration via the UI. Configuring Honeywell via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@rdfurman - #50731) (honeywell docs)
Breaking
Huawei LTE
Routers currently in unauthenticated mode need to be provided credentials for duration of one successful startup in order to retrieve a unique id from the API. Unauthenticated mode can then be enabled for subsequent starts in integration options.
(@scop - #49878) (huawei_lte docs)
Breaking
Itho Daalderop Spider
The power and energy attributes from switch entities have been removed and replaced by sensors.
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
(@peternijssen - #53397) (spider docs)
Breaking
Jewish Calendar
The Jewish Calendar integration returned a datetime format that wasn't properly formatted according to ISO standards. This has been adjusted.
If you rely on manually parsing of dates that are returned from this integration, you might need to adjust your templates to incorporate this change.
Breaking
Breaking
Mill
The consumption_today and consumption_total from the climate entity have been removed and replace by sensors.
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
(@Danielhiversen - #52311) (mill docs)
Breaking
Modbus
All entities are set to unavailable during loading of modbus integration and remain so until data is received. Entities with scan_interval = 0 (entities without polling) are always available, to allow service calls.
The old configuration style with setting scan_interval: 9999 will cause the entity to be unavailable for 9999 seconds.
(@janiversen - #53155) (modbus docs)
Breaking
MySensors
The power and energy attributes from switch entities have been removed.
If you relied on these switch attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
This measurement (S_POWER, V_WATT) will still be reported as previously by the power sensor entity.
Breaking
Prometheus
This includes a few changes to the names of the exported Prometheus metrics, which now better align with Prometheus naming guidelines:
- Default value for the
namespaceconfiguration variable is nowhomeassistant, and all metric names now have a defaulthomeassistant_prefix. - Some metrics have been renamed:
light_staterenamed tolight_brightness_percent.temperature_crenamed toclimate_target_temperature_celsius.current_temperature_crenamed toclimate_current_temperature_celsius.- Sensor metrics now have a
sensor_name prefix. - Temperature sensor metrics now have a
_celsiusunit suffix (as opposed to just_c).
Note, that users that don't currently explicitly set the namespace variable will see names changed for all exported metrics. If keeping existing metric names is important to you, you can adjust your Home Assistant and Prometheus configuration as described below.
To keep metrics exported without the homeassistant_ prefix, explicitly set an empty namespace in Home Assistant configuration:
prometheus:
namespace: ""
To revert the other metric name changes, you can use metric_relabel_configs in your Prometheus configuration file to rename the metrics after scraping. This set of relabeling rules is a good starting point, but please note that if you set a non-empty namespace in Home Assistant you will need to adjust these rules accordingly.
(@knyar - #50156) (prometheus docs)
Breaking
Rituals Perfume Genie
The previously deprecated fan speed and room size attributes have been removed. They have now have got their own entities.
Breaking
Synology DSM
The previously deprecated YAML configuration of the Synology DSM integration has been removed.
Synology DSM 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 - #53197) (synology_dsm docs)
Breaking
Tibber
The previously deprecated YAML configuration of the Tibber integration has been removed.
Tibber 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.
(@Danielhiversen - #53235) (tibber docs)
Breaking
TP-Link Kasa Smart
The power and energy attributes from switch entities have been removed and replaced by sensors. This applies to all five extra attributes about energy (current_power_w, total_energy_kwh, today_energy_kwh, voltage, current_a).
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
(@mib1185 - #53596) (tplink docs)
Breaking
VeSync
The previously deprecated YAML configuration of the VeSync integration has been removed.
VeSync 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 - #52358) (vesync docs)
Breaking
Viessmann ViCare
Viessmann introduced a new API to control their devices. The original (inofficial API) was shut down which rendered the Home Assistant integration useless. This breaking change restores the integrations functionality
This involves adding a new client_id parameter. It must be set with an API key from the Viessmann developer portal.
Please register and create your private API key. Follow these steps to create your API key:
- Register and login in the Viessmann Developer Portal.
- In the menu navigate to API Keys.
- Create a new OAuth client using following data:
Name: PyViCare
Google reCAPTCHA: Disabled
Redirect URIs: vicare://oauth-callback/everest
- Copy the Client ID to the configuration, e.g.
client_id="XXXXXXXXXXXXXX"
vicare:
username: VICARE_EMAIL
password: VICARE_PASSWORD
client_id: VICARE_CLIENT_ID
Please not that not all previous properties are available in the new API. Missing properties were removed and might be added later if they are available again.
(@oischinger - #53281) (vicare docs)
Breaking
WLED
The wled.preset service has been deprecated. In the previous Home Assistant release, support for an select entity that provides access to presets has been added, use that entity in your automations and scripts instead.
(@frenck - #53383) (wled docs)
The playlist attribute from the WLED light entities has been removed and replaced by a playlist select entity instead of the attribute.
If you relied on the attribute in your automation or scripts, you need to adjust those to use the new entity instead.
Breaking
Xiaomi Miio
Existing Xiaomi Mi automations using the platform specific services for humidifiers will have a breaking change. You need to change their automation to use new services. Existing fan entities will be automatically replaced with new humidity entities.
The entity name is migrated from the fan entity name. The fan entity_id will change because the platform will change.
For the related entities the old fan entity name will be prepended to the new entities.
Example:
Entity with entity_id "fan.my_device" and name "My humidifier" will migrate to an entity with entity_id "humidifier.my_humidifier" and name "My humidifier".
A sensor for humidity will have a name like "My humidifier Humidity".
(@jbouwh - #52366) (xiaomi_miio docs)
Breaking
Yale Smart Living
The CYale Smart Living integration migrated to configuration via the UI. Configuring Yale Smart Living via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
Z-Wave JS
Z-Wave JS entities will now be in an unavailable state when the parent node is considered dead by Z-Wave JS. This may impact existing automations because Home Assistant will block service calls to unavailable entities.
A node can potentially be revived by sending a ping to it, therefore you can use the new node status sensor (disabled by default) to track node status and use the zwave_js.ping_node service to try to revive the node.
The node status sensor will always be available even when the node is dead.
(@raman325 - #48017) (zwave_js docs)
Note
Farewell to the following
The following integrations are no longer available as of this release:
- Weather Underground has been unavailable and in a non-working state and has therefore been removed. (@frenck - #52999)
- Garmin Connect has been removed. Due to API changes, it stopped working and cannot function without violating Home Assistant design rules. Garmin will not allow open source projects to their official APIs. (@cyberjunky - #52808) (garmin_connect docs)
From www.home-assistant.io/blog/2021/08/04/release-20218/#farewell-to-the-following
2021.8.1 – 2021.8.8: no action items (8 versions)
2021.9.0 2021-09-01
28 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2021/09/01/release-20219/#backward-incompatible-changes
Breaking
1-Wire
The previously deprecated YAML configuration of the 1-Wire integration has been removed.
1-Wire 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.
(@epenet - #53728) (onewire docs)
Breaking
AVM FRITZ!Box Tools
The attributes of the switches provided by AVM FRITZ!Box Tools have been adjusted to match the naming rules and schema of Home Assistant.
If you relied on one of these attributes in your automation or scripts, you'll need to adopt to this change.
Breaking
DSMR
The unit of measurement of gas sensors for DSMR has changed from m3 to m³.
(@bramkragten - #54110) (dsmr docs)
Breaking
Epson
The previously deprecated YAML configuration of the Epson integration has been removed.
Epson 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.
(@pszafer - #55045) (epson docs)
Breaking
Growatt
The previously deprecated YAML configuration of the Growatt integration has been removed.
Growatt 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 - #54325) (growatt_server docs)
Breaking
HomeKit
The underlying HomeKit protocol version has changed from version 1.0 to version 1.1.
Cameras with motion sensors and some other accessories may need to be reset using the homekit.reset_accessory service or unpaired and paired again.
If after unpairing with your iOS the QR code does not show, the pairings can manually be removed with the homekit.unpair service using the Developer Tools.
(@bdraco - #53780) (homekit docs)
Breaking
HomeKit Controller
A future release (currently scheduled for 2021.12.0) will remove the (deprecated) air quality platform from the HomeKit Controller integration.
Starting from this release the air quality values have been broken out as their own sensors, making them easier to incorporate in your dashboard widgets, graphs and automations.
If you relied on an air quality entity (provided by the HomeKit Controller integration) in your automation or scripts, you'll need to adopt to this change.
Breaking
IKEA TRÅDFRI
The legacy code, which imported hosts from a JSON file have been removed. If you relied on that, please follow the instructions to setup the hosts (can be detected automatically).
To avoid this, upgrade to 2021.8.x first (which will automatically import the hosts from the JSON file) and then upgrade to latest release.
(@janiversen - #54452) (tradfri docs)
Breaking
Lutron
If (and only if) you currently attempt to make use of the (previously ambiguous) Lutron button events in an automation, then you will need to switch to the new, unambiguous name. That said, since the current events are ambiguous they are not very useful.
(@nickovs - #53666) (lutron docs)
Breaking
MQTT
MQTT fan no longer supports the legacy speeds (OFF, LOW, MEDIUM, HIGH). With release 2021.3 the support for legacy speeds was announced to be removed after a quarter (2021.7).
With removing the legacy speeds support, integrations that rely on MQTT fan platform that still use legacy speeds would break because they can not be setup if deprecated attributes are used. This includes the MQTT auto discovery.
To prevent that these integrations will fail to setup, the deprecated attributes listed here are still allowed in the config:
payload_high_speedpayload_low_speedpayload_medium_speedspeed_command_topicspeedsspeed_state_topicspeed_value_template
(@jbouwh - #54768) (mqtt docs)
The last_reset_topic configuration variable for MQTT sensor is deprecated, last_reset_value_template is still supported but will use the state_topic if no last_reset_topic is configured.
In Home Assistant core 2021.10, it will no longer be possible to configure a last_reset_topic.
(@emontnemery - #55463) (mqtt docs)
Breaking
MySensors
MySensors lights no longer supports deprecated white_value, use rgbw_color instead.
(@emontnemery - #52068) (mysensors docs)
Breaking
Nanoleaf
The Nanoleaf integration migrated to configuration via the UI. Configuring Nanoleaf via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
If you have configured Nanoleaf with the discovery integration: You can remove discovery: from your YAML configuration if you only used it for Nanoleaf. The .nanoleaf.conf file in your configuration folder is no longer used, you can delete it after upgrading.
(@milanmeu - #52199) (nanoleaf docs)
Breaking
Nmap Tracker
The Nmap Tracker integration migrated to configuration via the UI. Configuring Nmap Tracker via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
To disable creation of new entities, use the the system option to disable new entities for the config entry, and manually enable entities as needed.
(@bdraco - #54715) (nmap_tracker docs)
Breaking
OVO Energy
These attributes have been removed and replaced with full sensors for both gas and electricity:
start_timeend_time
If you relied on one of these attributes in your automation or scripts, you'll need to adopt to this change.
(@timmo001 - #54952) (ovo_energy docs)
Breaking
Rainforest Eagle-200
The Rainforest Eagle-200 integration migrated to configuration via the UI. Configuring Rainforest Eagle-200 via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
SimpliSafe
SimpliSafe locks no longer have a jammed attribute; instead, when jammed, they will show a jammed state.
If you are currently using the jammed attribute in your automation or scripts, you'll need to adapt them to this change.
(@bachya - #54006) (simplisafe docs)
Breaking
Smappee
The power and energy attributes from switch entities have been removed and replaced by sensors.
If you relied on these attributes in your automations, scripts or Lovelace dashboards, you'll need to update your configuration to match this change.
(@bsmappee - #54329) (smappee docs)
Breaking
Breaking
Supervisor
The usage of "snapshot" is deprecated, from now "backup" is used instead.
- The service
snapshot_fullis now namedbackup_full, the servicesnapshot_fullwill be removed in Home Assistant 2021.11. - The service
snapshot_partialis now namedbackup_partial, the servicesnapshot_partialwill be removed in Home Assistant 2021.11. - Using
snapshotin the data for therestore_fullandrestore_partialservices is deprecated and will be removed in Home Assistant 2021.11, usesluginstead.
Old examples:
service: hassio.snapshot_full
data:
name: "Awesome full snapshot"
...
service: hassio.snapshot_partial
data:
name: "Awesome partial snapshot"
addons:
- awesome_addon
...
service: hassio.restore_full
data:
snapshot: sn2321
...
service: hassio.restore_partial
data:
snapshot: sn2321
addons:
- awesome_addon
New examples:
service: hassio.backup_full
data:
name: "Awesome full snapshot"
...
service: hassio.backup_partial
data:
name: "Awesome partial snapshot"
addons:
- awesome_addon
...
service: hassio.restore_full
data:
slug: sn2321
...
service: hassio.restore_partial
data:
slug: sn2321
addons:
- awesome_addon
(@ludeeus - #53851) (hassio docs) (zwave_js docs)
Breaking
Tesla Powerwall
The Tesla Powerwall attributes for energy_exported_(in_kW) and energy_imported_(in_kW) have been converted to their own energy sensors.
If you relied on those attributes in your automation or scripts, you'll need to adapt them to this change.
(@bdraco - #54018) (powerwall docs)
Breaking
Toon
The unit of measurement of gas and water sensors for Toon has changed from m3 to m³.
(@bramkragten - #54110) (toon docs)
Breaking
UpCloud
The previously deprecated YAML configuration of the UpCloud integration has been removed.
UpCloud 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.
(@scop - #54516) (upcloud docs)
Breaking
Uptime Robot
The Uptime Robot integration migrated to configuration via the UI. Configuring Uptime Robot via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@ludeeus - #53938) (uptimerobot docs)
Breaking
Wink
The Wink integration has been deprecated and is pending removal in Home Assistant 2021.11.
Their developer portal, needed for obtaining an API token, has been taken offline and their customer support has confirmed no new token or client/secret can be obtained. This makes it impossible to use this integration.
Breaking
Xiaomi Miio
The following fan entity attributes temperature, humidity, aqi, purify volume, filter life remaining, filter hours used, co2, illuminance, motor speed and motor2 speed have been migrated to their own sensor entities.
If you relied on those attributes in your automation or scripts, you'll need to adapt them to this change.
The filter_rfid_product_id and filter_rfid_tag fan entity attributes have been removed as they are of little use to keep around.
(@bieniu - #54564) (xiaomi_miio docs)
The service fan_set_led_brightness is removed and the Led Brightness select entity has been created instead.
If you relied on this service in your automation or scripts, you'll need to adapt them to this change.
(@bieniu - #54702) (xiaomi_miio docs)
The previously (deprecated and old style) speeds, speed list and speed services have been removed.
(@SmaginPV - #54182) (xiaomi_miio docs)
The services fan_set_buzzer_on, fan_set_buzzer_off, fan_set_led_on, fan_set_led_off, fan_set_child_lock_on, fan_set_child_lock_off, fan_set_auto_detect_on, fan_set_auto_detect_off, fan_set_learn_mode_on and fan_set_learn_mode_off have been removed.
Switch entities have been created to replace those.
If you relied on one of these services in your automation or scripts, you'll need to adapt them to this change.
(@bieniu - #54834) (xiaomi_miio docs)
The previously deprecated YAML configuration of the Xiaomi Miio integration has been removed (with the exception of the remote platform).
Xiaomi Miio 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.
(@rytilahti - #54930) (xiaomi_miio docs)
The services fan_set_favorite_level, fan_set_fan_level, and fan_set_volume have been removed and number entities have been created instead.
If you relied on one of these services in your automation or scripts, you'll need to adapt them to this change.
(@bieniu - #54977) (xiaomi_miio docs)
Breaking
Z-Wave JS
The Basic CC always comes with two values, currentValue and targetValue.
We currently only have a discovery schema for currentValue which creates a sensor, making these Basic CC values noninteractive. As of this release we will create a number platform entity for Basic CC values instead of sensors.
(@raman325 - #54512) (zwave_js docs)
If you have created an automation with the zwave_js device condition Current value of a Z-Wave Value for the CONFIGURATION Command Class, your automation will no longer work.
Instead, you should use the Config parameter device condition for the value you were trying to use for your condition.
(@raman325 - #54962) (zwave_js docs)
Breaking
Custom integrations: Cameras
This breaking change is only relevant to custom integration authors!
The function signature for async_camera_image and camera_image has changed to include a width and height.
async def async_camera_image(
self, width: int | None = None, height: int | None = None
) -> bytes | None:
The goal of the change is to reduce the overhead of sending large images that will only be displayed as small images as this can quickly consume hundred of megabytes of bandwidth / mobile data allocation. Scaling should be done on a best effort basis and is not a strict requirement as the existing behavior of falling back to scaling at the display layer is preserved.
- Integrations should pass on the width and height if the underlying camera is capable of scaling the image.
- Integrations may choose to ignore the height parameter in order to preserve aspect ratio
- If the integration cannot scale the image and returns a jpeg image, it will automatically be scaled by the camera integration when requested.
Breaking
Custom integrations: Sensors
This breaking change is only relevant to custom integration authors!
Although not a breaking change from a user's perspective, this is a significant change from a developer's perspective.
Temperature conversions are moving from the Entity base class to the SensorEntity base class.
Additionally, we have two new properties, native_value (which replaces state) and native_unit_of_measurement which replaces unit_of_measurement.
Read all about it in the developer blog:
https://developers.home-assistant.io/blog/2021/08/12/sensor_temperature_conversion/
(@emontnemery - #48261) (abode docs) (sensor docs)
Additionally, a new sensor state class has been introduced: total_increasing.
This changes the measurement state class that was used in conjunction with the last_reset attribute. For more information about his can be found in the developer blog about it:
https://developers.home-assistant.io/blog/2021/08/16/state_class_total/
2021.9.1 – 2021.9.7: no action items (7 versions)
2021.10.0 2021-10-06
27 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2021/10/06/release-202110/#backward-incompatible-changes
Breaking
Templates
The following template filters and functions will now log a warning instead of silently returning the input if the input is invalid and no default value is specified:
acosas_timestampasinatanatan2cosfloatlogmultiplyroundsinsqrtstrptimetantimestamp_customtimestamp_localtimestamp_utc
The float filter will now log a warning instead of silently returning 0 if the input is invalid and no default value is specified.
In Home Assistant Core 2021.12 the template will fail to render if no default value is specified. You can specify a default value by passing to the filter like this: {{ "abc" | float(default=0) }}.
(@emontnemery - #56453)
Breaking
Material Design Icons (MDI)
The Material Design Icons have been upgraded to v6, which brings in around 400 new icons and removes and renames some others.
The removed and renamed icons will keep working for this and the next release, Home Assistant will write a warning to the logs in case you are using one of the removed or renamed icons.
The following icons have been removed:
adobe-acrobatadobeamazon-alexaamazonandroid-autoandroid-debug-bridgebandcampbattlenetbloggerbuffercash-usd-outlinecash-usdcellphone-android(alternative:cellphone)cellphone-iphone(alternative:cellphone)concourse-cicurrency-usd-circlecurrency-usd-circle-outlinedo-not-disturb-off(alternative:minus-circle-off)do-not-disturb(alternative:minus-circle)doubanfile-pdf(alternative:file-pdf-box)file-pdf-outline(alternative:file-pdf-box)file-pdf-box-outline(alternative:file-pdf-box)google-photoshome-currency-usdlaptop-chromebook(alternative:laptop)laptop-mac(alternative:laptop)laptop-windows(alternative:laptop)microsoft-edge-legacymicrosoft-yammerpdf-box(alternative:file-pdf-box)plus-one(alternative:numeric-positive-1)poll-box(alternative:chart-box)poll-box-outline(alternative:chart-box-outline)tablet-ipad(alternative:tablet)telegramuntappdvkxamarian-outlinexingy-combinator
The following icons have been renamed:
apple-airplaytocast-variantapplicationtoapplication-outlineapplication-cogtoapplication-cog-outlineapplication-settingstoapplication-settings-outlinebolnisi-crosstocross-bolnisiboom-gate-uptoboom-gate-arrow-upboom-gate-up-outlinetoboom-gate-arrow-up-outlineboom-gate-downtoboom-gate-arrow-downboom-gate-down-outlinetoboom-gate-arrow-down-outlinebuddhismtodharmachakracellphone-erasetocellphone-removeceltic-crosstocross-celticchristianitytocrosschristianity-outlinetocross-outlinefacetoface-manface-outlinetoface-man-outlineface-profile-womantoface-woman-profileface-shimmertoface-man-shimmerface-shimmer-outlinetoface-man-shimmer-outlineflash-circletolightning-bolt-circlefloor-lamp-varianttofloor-lamp-torchiere-variantgiftofile-gif-boxgradienttogradient-verticalhandtohand-front-righthand-lefttohand-back-lefthand-righttohand-back-righthinduismtoomhuman-greetingtohuman-greeting-variantiframetoapplication-bracketsiframe-outlinetoapplication-brackets-outlineiframe-arraytoapplication-arrayiframe-array-outlinetoapplication-array-outlineiframe-bracestoapplication-bracesiframe-braces-outlinetoapplication-braces-outlineiframe-parenthesestoapplication-parenthesesiframe-parentheses-outlinetoapplication-parentheses-outlineiframe-variabletoapplication-variableiframe-variable-outlinetoapplication-variable-outlineislamtostar-crescentjudaismtostar-davidmonitor-cleantomonitor-shimmerpharmacytomortar-pestle-plussparklestoshimmerteachtohuman-male-boardtelevision-cleantotelevision-shimmertext-subjecttotext-longtwitter-retweettorepeat-variantvoice-offtoaccount-voice-off
Breaking
Alexa
Removes the support for legacy fan speeds.
Using speeds ('off', 'low', 'medium' or 'high') for the fan platform became deprecated with Home Assistant Core 2021.07, while preset modes and percentage support was added.
(@jbouwh - #55174) (alexa docs)
Breaking
AVM FRITZ!Box Tools
In order to introduce the new link status binary sensor, the previous connectivity sensor has been renamed to connection.
Please check both your Lovelace configuration and your automations to reflect this change.
(@chemelli74 - #55446) (fritz docs)
Breaking
Breaking
DLNA Digital Media Renderer
The DLNA Digital Media Renderer integration migrated to configuration via the UI. Configuring DLNA Digital Media Renderer via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@chishm - #55267) (dlna_dmr docs)
Breaking
HomeKit
When an iOS device wakes up it has to refresh all the A records for each paired accessory. When there are many paired accessories this can result in HomeKit timing out before it can refresh all the records and declaring some accessories unavailable.
We now use the same server name for all HomeKit bridges and accessories on a single Home Assistant instance. This allows the system to avoid doing multiple lookups since it only needs to find one A record when waking from sleep.
iOS devices and Home Hubs (Apple TVs / HomePods / iPads) may cache the server name even if it expires and may require a reboot to see the new name. If this is the case, accessories may show unavailable when outside the home until ALL home hubs are rebooted.
Breaking
Honeywell Lyric
The polling interval of the Honeywell Lyric integration has been decreased to 300 seconds to reduce chances of hitting API limit.
(@timmo001 - #56393) (lyric docs)
Breaking
Breaking
Modem Caller ID
The Modem Caller ID integration migrated to configuration via the UI. Configuring Modem Caller ID via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@tkdrob - #46677) (modem_callerid docs)
Breaking
Moon
The Moon entity would never have a primary moon phase state. So the state of the moon would go from Waxing gibbous directly to Waning gibbous, without being Full Moon in between.
Now the Moon entity will correctly have the primary moon phases: New Moon, First Quarter, Full Moon and Third Quarter.
If you have automations relying on the state of the moon, please review them to check if they still behave as intended.
(@stefanroelofs - #55518) (moon docs)
Breaking
NETGEAR
The NETGEAR integration migrated to configuration via the UI. Configuring NETGEAR via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@starkillerOG - #54479) (netgear docs)
Breaking
Breaking
OpenGarage
The OpenGarage integration has previously been migrated to configuration via the UI. Configuring OpenGarage via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
Pi-hole
The extra attribute domains_blocked is removed from all sensors, since it is already exposed as an own sensor.
If you relied on this attribute in your automations or script, you need to adjust those to match this change.
(@mib1185 - #56076) (pi_hole docs)
Breaking
ReCollect Waste
The previously deprecated YAML configuration of the ReCollect Waste integration has been removed.
ReCollect Waste 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.
Breaking
Renault
The extra state attribute last_update has been normalized to the UTC timezone.
If you have any automation or scripts that relied on this, you might need to adjust those to take this into account.
(@epenet - #54745) (renault docs)
sensor.charge_mode has been moved to select.charge_mode (note: unique_id is unchanged).
(@epenet - #55494) (renault docs)
Breaking
RFXCOM RFXtrx
The previously deprecated YAML configuration of the RFXCOM RFXtrx integration has been removed.
RFXCOM RFXtrx 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.
(@elupus - #54173) (rfxtrx docs)
Breaking
Speedtest.net
The previously deprecated YAML configuration of the Speedtest.net integration has been removed.
Speedtest.net 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.
Breaking
Sure Petcare
The Sure Petcare integration has previously been migrated to configuration via the UI. Configuring Sure Petcare via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
System Bridge
The following additional state attributes have been removed from the existing sensors:
availablefilesystemload_averageload_idleload_systemload_usermountsizetypeused
You should update any automations and scripts that depend on these state attribute to use the separate sensors available for these states.
Breaking
TP-Link Kasa Smart
The TP-Link Kasa Smart integration migrated to configuration via the UI. Configuring TP-Link Kasa Smart via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@rytilahti - #56701) (tplink docs)
Breaking
Tuya
The previous Tuya API is no longer maintained by Tuya officially and the new integration will be officially maintained by the Tuya Developer Team.
If you used the integration before this release, you'd need to set it up again from scratch. To do that, remove any existing instances from the integration dashboard. After that, use our documentation for guidance on setting up the new integration.
The cover platform is not ready for this release but will be included later. If you have cover devices, they will not available for control at the moment.
(@zlinoliver - #56820) (tuya docs)
Breaking
UPnP/IGD
UPnP/IGD integration no longer supports the local_ip configuration option. If you still have this configured in your YAML configuration, please remove it.
(@StevenLooman - #55540) (upnp docs)
Breaking
Velbus
The Velbus integration migrated to configuration via the UI. Configuring Velbus via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
The Velbus services calls will now need an interface parameter, this is to allow support for multiple Velbus connections. If you are using Velbus services in your automations or scripts, you may been to adjust those to this change.
(@Cereal2nd - #54032) (velbus docs)
Breaking
Xiaomi Miio
The model and mode attributes have been removed. The preset_mode attribute is available in place of the mode attribute.
The device model is available in the Device info window.
(@bieniu - #55846) (xiaomi_miio docs)
Breaking
Note
Farewell to the following
The following integrations are no longer available as of this release:
- Trackr has been removed. The API is no longer available and has therefore been removed. (@FuzzyMistborn - #55917)
- Tesla has been removed due to increased Tesla login security preventing third-parties to log in. (@alandtse - #55988)
From www.home-assistant.io/blog/2021/10/06/release-202110/#farewell-to-the-following
2021.10.1 – 2021.10.7: no action items (7 versions)
2021.11.0 2021-11-03
35 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2021/11/03/release-202111/#backward-incompatible-changes
Breaking
All Service Calls
Entities that are now shown on the device page on the configuration or diagnostic section, will no longer be targeted and called by service calls that target the specific device or area the device or entity is in.
If you need to make a service call to these entities, you will need to call them by their entity ID explicitly.
Please note: This does not apply to entity groups, as groups are explicitly based on entities (unlike areas) and thus still work as before.
(@emontnemery - #57671)
Breaking
Amazon Alexa / Google Assistant
Entities that are now shown on the device page on the configuration or diagnostic section, will no longer be exposed by default to Amazon Alexa or Google Assistant.
If you want to expose these entities, you'll need to expose them explicitly.
Breaking
Recorder / Databases
The Home Assistant project has now explicitly defined a set of databases that are supported by the recorder.
We now support the following databases:
- MariaDB ≥ 10.3
- MySQL ≥ 8.0
- PostgreSQL ≥ 12
- SQLite ≥ 3.32.1
All other databases and database versions are now deprecated.
If your used or configured database doesn't match any of the above requirements, a warning will be logged. As of Home Assistant 2022.1, the recorder will no longer connect to an unsupported database.
(@emontnemery - #58161) (recorder docs)
It is no longer possible to filter out state_changed events from the recorder's event_types exclude filter.
A warning will be logged in Home Assistant Core 2021.11 and the configuration will be rejected in Home Assistant Core 2022.2.
Breaking
Python 3.8: Deprecation warning
Python 3.8 has been deprecated because Python 3.10 has been released. Support will be dropped in Home Assistant 2022.1.
Support for Python 3.10 hasn't completed yet, however we aim to complete that before the 3.8 deprecation period has ended. It is advised to upgrade to Python 3.9 at this point.
If you run Home Assistant OS, Supervised or the Container installation type: No action is required from your end, we will take care of this for you.
Breaking
Aurora ABB Solar PV
The Aurora ABB Solar PV integration migrated to configuration via the UI. Configuring Aurora ABB Solar PV via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
AVM FRITZ!Box Tools
AVM FRITZ!Box Tools services now ask for a device_id and no longer for an entity_id. Please review your automation and scripts accordingly.
(@chemelli74 - #58005) (fritz docs)
Breaking
DLNA Digital Media Renderer
The DLNA Digital Media Renderer integration migrated to configuration via the UI. Configuring DLNA Digital Media Renderer via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; Please check the integrations configuration page for imported DLNA-DMR configuration. Once it has been migrated, it can be safely removed from your YAML configuration.
(@chishm - #56886) (dlna_dmr docs)
Breaking
Efergy
The Efergy integration has been migrated to configuration via the UI. Configuring Efergy via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Additionally, the following sensor names have changed:
- Energy Usage is now Power Usage.
- Any configured energy period, for example, monthly was Energy Consumed is now Monthly Consumption.
- Any configured cost period, for example, monthly was Energy Cost is now Monthly Energy Cost.
- Per-Device Usage is now Power Usage with the sensor id trailing.
(@tkdrob - #56890) (efergy docs)
Breaking
Environment Canada
The Environment Canada integration has been migrated to configuration via the UI. Configuring Environment Canada via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Additionally, non-loop radar images are no longer supported; Sensor entities now have the location of the station as a part of the sensor's entity name.
Breaking
Flux LED/MagicLight
The Flux LED integration has been migrated to configuration via the UI. Configuring Flux LED via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@icemanch - #56354) (flux_led docs)
Breaking
Breaking
Input Select / Dropdown Helper
When the option list of a Dropdown helper / input_select is updated, it will try to maintain the currently selected option, if the selected option also is present in the new options provided; otherwise it will reset to the first option from the newly provided list.
Previously, when a new list of options was provided, it would always reset to the first item of the list.
(@frenck - #53334) (input_select docs)
Breaking
IQVIA
Previously, IQVIA supported long-term statistics for the Asthma Index: Tomorrow sensor. This is incorrect: long-term statistics are meant for actual, current measurements (not future forecasts). Therefore, long-term statistics support has been removed for this sensor.
(@bachya - #57687) (iqvia docs)
Breaking
Itho Daalderop Spider
The Itho Daalderop Spider integration previously migrated to configuration via the UI. Configuring Itho Daalderop Spider via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration has been automatically imported; and thus can be safely removed from your YAML configuration after upgrading.
(@peternijssen - #57974) (spider docs)
Breaking
Microsoft text-to-speech (TTS)
The default voice is changed to JennyNeural; The previous default ZiraRUS (Standard Voice) is no longer supported in eastus or any other region that has rolled out GA neural voices as Standard voices become deprecated.
(@tylergibson - #58499) (microsoft docs)
Breaking
OctoPrint
The OctoPrint integration migrated to configuration via the UI. Configuring OctoPrint via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
The following sensors have been removed:
sensor.<printer>_time_remainingsensor.<printer>_time_elapsed
The following sensors have been added:
sensor.octoprint_start_timesensor.octoprint_estimated_finish_time
(@rfleming71 - #58040) (octoprint docs)
Breaking
OpenGarage
The attributes (wifi_signal and distance_sensor) for OpenGarage covers are removed and replaced by individual sensors.
Also, door_state is removed as an attribute, but you can use the state directly instead.
Please update any automations or scripts that depend on the removed attributes.
Breaking
OpenZWave
The OpenZWave (ozw) integration is being marked as deprecated. The upstream project is not currently being maintained, and has not reached stable status.
We recommend transitioning to the Z-Wave JS integration.
While the integration is not currently slated for removal, it will no longer be receiving updates and may be removed at a later date.
See the Z-Wave JS migration documentation for more information.
Breaking
Pentair ScreenLogic
Screenlogic lights have moved to the light platform. The switches that previously represented these lights will need to manually be deleted in Configuration >> Entities. If you are using these switch entities in your automation or scripts, you will need to update those to use the new light entities instead.
The state is now refreshed with a short delay to ensure the toggles do not flip/flop between states as the controller takes ~600ms to make the change.
(@bdraco - #55467) (screenlogic docs)
Breaking
Phone Modem
The sensor state attributes of modem_callerid integration are now only populated when the values are known.
If you use these attributes in your automations or scripts, you'll need to adjust those to be able to handle missing attributes.
(@tkdrob - #57774) (modem_callerid docs)
Breaking
Rainforest Eagle
The previously deprecated YAML configuration of the Rainforest Eagle integration has been removed.
Rainforest Eagle 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.
Breaking
RainMachine
RainMachine services have been reorganized and now utilize a Home Assistant target (entity ID) or selector (device ID) instead of using an internal RainMachine identifier.
Additionally, services are restricted to only the targets that apply:
Device Services (i.e., must be provided a device ID)
pause_wateringstop_allunpause_watering
Entity Services (i.e., must be provided an associated switch entity ID [either a program or a zone])
disable_programdisable_zoneenable_programenable_zonestart_programstart_zonestop_programstop_zone
(@bachya - #57145) (rainmachine docs)
Breaking
Renault
The last_update state attribute has been moved to a stand-alone entity (and dropped from battery and location entities). If you used this attribute in your scripts or automations; you'll need to adjust those to this change.
(@epenet - #57750) (renault docs)
Breaking
SimpliSafe
SimpliSafe requires a new web-based authentication method. When starting up, Home Assistant will automatically prompt you to re-authorize your instance.
(@bachya - #57212) (simplisafe docs)
Breaking
SolarEdge
The SolarEdge integration now provides unique IDs for its entities, so the entities are now visible and customizable in the Home Assistant frontend.
Some names have been corrected as they had incorrect descriptions. This may cause some of your entity IDs provided by SolarEdge to have changed this release.
In case you have been using these entities in your automations, scripts, or dashboards, you can either rename those entity IDs to the old entity ID or adjust the places you've used them accordingly.
Additionally, if a sensor you used disappeared, it might have been disabled by default during upgrade. Please be sure to check if the entity is enabled in that case.
(@terminet85 - #55902) - (@purcell-lab - #58773)
Breaking
Sonos
The sonos.set_option service has been removed and replaced with individual switch entities which both control the features and display if currently enabled.
The night_sound and speech_enhance attributes on the Sonos media_player entities are also removed.
If you are using those in your automations or scripts, you'll need to replace these with the new switch entities.
(@jjlawren - #54502) (sonos docs)
Breaking
Stookalert
The Stookalert integration has been migrated to configuration via the UI. Configuring Stookalert via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@frenck - #57119) (stookalert docs)
Breaking
Supervisor
The 2021.09 release deprecated the usage of "snapshot" in the Supervisor (hassio) integration and was scheduled to be removed in 2021.11, that is now.
Old services and service data that contained "snapshot" has now been removed, and you need to update your configuration if you use any of these to continue to use it.
| Old service name | New service name |
|---|---|
hassio.snapshot_partial | hassio.backup_partial |
hassio.snapshot_full | hassio.backup_full |
If you used the snapshot argument for the restore services you now have to replace that with slug
Example:
# Old name
service: hassio.restore_full
data:
snapshot: sn2321
# New name
service: hassio.restore_full
data:
slug: sn2321
(@ludeeus - #57652) (hassio docs)
Breaking
UptimeRobot
The previously deprecated YAML configuration of the UptimeRobot integration has been removed.
UptimeRobot 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.
(@ludeeus - #57761) (uptimerobot docs)
Breaking
Utility Meter
The offset parameter for utility_meter sensors is now limited to at most 27 days. If you used more then 27 days you must now migrate to cron.
(@dgomes - #55625) (utility_meter docs)
Breaking
Venstar
The Venstar integration migrated to configuration via the UI. Configuring Venstar via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
The humidifer and timeout options have been removed, and thus ignored when importing your YAML configuration into the UI.
(@garbled1 - #58152) (venstar docs)
Breaking
Viessmann ViCare
Due to upstream library updates, a breaking change was introduced that required changes to sensor and binary_sensor entities.
Circuit, Burner and Compressor have been separated out from the "main" device. Multiple circuits and burners now allow "duplicate sensors", we've added the circuit or burner number as suffix.
Most of you should not see a difference, but complex installations (with more than one circuit and/or burner), will have multiple entities, suffixed with their burner or entity IDs.
For example, if you have two circuits instead of a single climate.vicare entity you will now instead have two entities:
climate.vicare_1climate.vicare_2
This will provide you more control, but requires you to adapt your existing scripts and automations to use the new entity IDs.
The same has been done for sensor, binary_sensor and water_heater entities.
Also, note that binary sensors might be created twice since the unique IDs for those entities have changed. Please remove the old disabled binary_sensor entities, in case you encounter this.
(@oischinger - #57700) (vicare docs)
Breaking
VLC media player Telnet
The VLC media player Telnet integration migrated to configuration via the UI. Configuring VLC media player Telnet via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
Xiaomi Miio
Attributes from the vacuum entities have been replaced with sensors.
This means that all your references to these attributes must be replaced with its sensor in your automations, scripts and dashboards.
Some sensors have been disabled by default and need manual enablement, once the integration has been set up. For example, the attribute mop_attached: true has now been replaced with binary_sensor.<NAME>_mop_attached.
(@OGKevin - #54990) (xiaomi_miio docs)
Breaking
Yeelight
The option to override the Yeelight model will only appear if the detected model is not in the database. Otherwise, it will be hidden.
(@bdraco - #56967) (yeelight docs)
Note
Farewell to the following
The following integrations are no longer available as of this release:
- Essent has been removed. The API is no longer usable for this integration and has therefore been removed. (@TheLastProject - #56991)
- Lyft has been previously deprecated and now removed. API keys are no longer being provided. (@frenck - #57638)
- Nello has been removed. The services are no longer available, and have been offline for over 6 months. (@pattyland - #57926)
- Huawei Router has been removed. It relies on web scraping, which is no longer allowed. (@yuvalabou - #57136)
- Wink has been previously deprecated and now removed. (@frenck - #57634)
From www.home-assistant.io/blog/2021/11/03/release-202111/#farewell-to-the-following
2021.11.1 – 2021.11.5: no action items (5 versions)
2021.12.0 2021-12-11
32 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2021/12/11/release-202112/#backward-incompatible-changes
Breaking
customize.yaml UI (customization)
The customize.yaml UI (customization) has been removed. The YAML configuration for this is recommended and remains available. To customize entities, use the entity settings available via the icon in the top right of the entity "more info" dialog (when clicking on an entity). Entity settings now also allows customizing device_class for certain binary_sensor and cover cases.
A small explanation why it has been removed:
With customize, one is changing the state machine directly, without any checks. This comes at a risk. Additionally, for many use cases (like: name, icon, device class) one should edit the entity via the UI instead, which is possible for the greater part of the entities nowadays.
The old customize UI is confusing in many ways and has a level of power that, if wielded incorrectly, can have unforeseen consequences. Someone found and used the customize UI first, and then things are out of sync throughout the UI, as the internal entity registry would show the old values.
The customize UI also relied on setting up an include and YAML configuration to begin with; which already made it an advanced feature.
Therefore, the customize UI was removed and remains available as an advanced YAML feature, additionally we have added the capability, to adjust the common device_class changes using the "Show as" feature while editing the entity from UI.
Breaking
Add-ons, Backups & Supervisor
The Supervisor panel has been merged into the configuration panel. The separate menu item from the sidebar has been removed.
The binary_sensor with "running" device_class that was provided for the Home Assistant Operating System device did not work and has now been removed; If you have added this to templates or automations, remove it from your configuration.
(@ludeeus - #60597) (hassio docs)
Breaking
Companion App
The Companion App configuration has been merged into the configuration panel. The separate menu item from the sidebar has been removed.
Breaking
Advantage Air
The HVAC mode for zone climate entities was set to FAN or OFF, because the actual HVAC mode is set for the entire ducted AC system. However, using FAN means the Google Home app won't let you set a target temperature, so it has been changed to AUTO instead.
(@Bre77 - #52816) (advantage_air docs)
Breaking
BMW ConnectedDrive
The following services/sensors have been removed due to not being available using the My BMW API:
alltrips_*lasttrips_*chargingconnectiontypecharginginductivepositioninglastchargingendreasonlastchargingendresultmaxelectricrange
Attributes of binary_sensor.doors and binary_sensor.windows do not start with door/window anymore.
notify requires a location attribute at data.location, as the MyBMW API only supports sending POI and not messages.
The find_vehicle service will always send the location of your Home Assistant instance to BMW.
Breaking
Brunt Blind Engine
The Brunt integration migrated the connection settings to configuration via the UI. Configuring the connection to the Brunt API via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing connection YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Additionally, the Brunt integration can now be reloaded via the Integrations screen in the frontend and will also reload if a Brunt device is removed from your account.
(@eavanvalkenburg - #49714) (brunt docs)
Breaking
Fronius
The Fronius integration migrated to configuration via the UI. Configuring Fronius via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
This change will remove manual configuration of Fronius device IDs. Connected SolarNet devices will be detected automatically on startup.
(@farmio - #59686) (fronius docs)
Breaking
Guardian
Guardian services have been reorganized and now utilize a Home Assistant selector (device ID) instead of using a Guardian entity.
(@bachya - #58632) (guardian docs)
Breaking
HomeKit Controller
This release removes the air quality from HomeKit Controller as the platform has been previously deprecated.
The air quality values have been broken out as their own sensors starting from September, making them easier to incorporate in your dashboard widgets, graphs, and automations. These should be used instead.
Breaking
Hue
Events for Hue remotes/switches
Philips/Signify streamlined the events that are emitted for remotes/switches; these are now no longer device specific but more generic. This means that if you're relying on the hue_event to trigger events emitted by these devices, the event_data will now be slightly different. To easily identify what events get emitted by your Hue remotes, Open Developer Tools and subscribe to the hue_event.
Light entities for Hue rooms/zones
Entities for Hue groups (zones/rooms) will be imported but in a disabled state by default. The Integration option to enable Hue groups has been phased out in favor of the default Home Assistant functionality to enable/disable entities.
To enable any (new) light entities for Hue groups: Open settings --> integrations --> Hue --> Entities --> Click one of the disabled entities and enable it.
Existing Hue group lights for rooms/zones will be migrated as enabled entities.
Legacy Hue groups of type LightGroup (which are not visible in the official Hue app) will no longer be supported!
Entities for Hue scenes
If you create any scenes for your Hue zones/rooms, these will now be automatically imported to Home Assistant as scene entity, including support for the new Hue Dynamic Scenes. You can disable any scene entities you don't like to use in Home Assistant (or delete them in the Hue app).
(@marcelveldt - #58996) (hue docs)
Breaking
KNX
The KNX integration migrated the connection settings to configuration via the UI. Configuring the connection to the KNX bus via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing connection YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Additionally, the KNX integration can now be reloaded via the Integrations screen in the frontend, and thus the knx.reload service has been removed.
(@marvin-w - #59377) (knx docs)
The last_knx_update attribute has been removed from the KNX sensors and binary sensors. The last_update attribute can be used alternatively.
If you are relying on this attribute in your automations or script, you will need to adjust them to this change.
The configuration key event_filter is now deprecated and will be removed in a future version of Home Assistant. Please use the new event config key instead.
Breaking
Kostal Plenticore
The "Battery Strategy" sensor has been removed from the Kostal Plenticore integration. It is replaced by a switch and a select entity to allow setting the battery charging settings from Home Assistant.
Breaking
Litter-Robot
The litterrobot.reset_waste_drawer and litterrobot.set_wait_time services are deprecated and replaced by dedicated button entities; please use those instead.
Breaking
Material Design Icons (MDI)
The previously deprecated MDI icons, now have been removed.
The following icons have been removed:
adobe-acrobatadobeamazon-alexaamazonandroid-autoandroid-debug-bridgebandcampbattlenetbloggerbuffercash-usd-outlinecash-usdcellphone-android(alternative:cellphone)cellphone-iphone(alternative:cellphone)concourse-cicurrency-usd-circlecurrency-usd-circle-outlinedo-not-disturb-off(alternative:minus-circle-off)do-not-disturb(alternative:minus-circle)doubanfile-pdf(alternative:file-pdf-box)file-pdf-outline(alternative:file-pdf-box)file-pdf-box-outline(alternative:file-pdf-box)google-photoshome-currency-usdlaptop-chromebook(alternative:laptop)laptop-mac(alternative:laptop)laptop-windows(alternative:laptop)microsoft-edge-legacymicrosoft-yammerpdf-box(alternative:file-pdf-box)plus-one(alternative:numeric-positive-1)poll-box(alternative:chart-box)poll-box-outline(alternative:chart-box-outline)tablet-ipad(alternative:tablet)telegramuntappdvkxamarian-outlinexingy-combinator
The following icons have been renamed:
apple-airplaytocast-variantapplicationtoapplication-outlineapplication-cogtoapplication-cog-outlineapplication-settingstoapplication-settings-outlinebolnisi-crosstocross-bolnisiboom-gate-uptoboom-gate-arrow-upboom-gate-up-outlinetoboom-gate-arrow-up-outlineboom-gate-downtoboom-gate-arrow-downboom-gate-down-outlinetoboom-gate-arrow-down-outlinebuddhismtodharmachakracellphone-erasetocellphone-removeceltic-crosstocross-celticchristianitytocrosschristianity-outlinetocross-outlinefacetoface-manface-outlinetoface-man-outlineface-profile-womantoface-woman-profileface-shimmertoface-man-shimmerface-shimmer-outlinetoface-man-shimmer-outlineflash-circletolightning-bolt-circlefloor-lamp-varianttofloor-lamp-torchiere-variantgiftofile-gif-boxgradienttogradient-verticalhandtohand-front-righthand-lefttohand-back-lefthand-righttohand-back-righthinduismtoomhuman-greetingtohuman-greeting-variantiframetoapplication-bracketsiframe-outlinetoapplication-brackets-outlineiframe-arraytoapplication-arrayiframe-array-outlinetoapplication-array-outlineiframe-bracestoapplication-bracesiframe-braces-outlinetoapplication-braces-outlineiframe-parenthesestoapplication-parenthesesiframe-parentheses-outlinetoapplication-parentheses-outlineiframe-variabletoapplication-variableiframe-variable-outlinetoapplication-variable-outlineislamtostar-crescentjudaismtostar-davidmonitor-cleantomonitor-shimmerpharmacytomortar-pestle-plussparklestoshimmerteachtohuman-male-boardtelevision-cleantotelevision-shimmertext-subjecttotext-longtwitter-retweettorepeat-variantvoice-offtoaccount-voice-off
Breaking
Breaking
Notifications for Android TV
The Notifications for Android TV integration allows you to send custom notifications to Android TV devices. Sending a file along with the notification, allows you to send image files that will show up above the notification.
Now that support for icons has been added in the same way as images, the file option has been renamed to image to properly identify what you're sending with the notification.
As such, code and automations that use the file option for an image have to refer to image from now on.
(@redahb - #60159) (nfandroidtv docs)
Breaking
Pentair ScreenLogic
Screenlogic SCG levels have moved to the number platform to support setting of these values. The sensor entities that previously represented these values will need to be manually deleted in Configuration -> Entities.
Breaking
Phone Modem
The previously deprecated YAML configuration of the Phone Modem integration has been removed. Phone Modem 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.
(@tkdrob - #59526) (modem_callerid docs)
Breaking
RainMachine
The rainmachine.disable_program, rainmachine.enable_program, rainmachine.disable_zone, and rainmachine.enable_zone services have been removed.
Instead, new configuration switches related to each entity can be used to enable/disable the program/zone.
(@bachya - #59617) (rainmachine docs)
Breaking
Renault
The renault.charge_start service is deprecated and replaced by a dedicated start charge button entity; please use that entity to start the charge instead.
(@epenet - #59383) (renault docs)
Breaking
SimpliSafe
SimpliSafe services have been reorganized and now utilize a Home Assistant selector (device ID) instead of using a SimpliSafe system ID.
(@bachya - #58722) (simplisafe docs)
Breaking
Breaking
Sonos
The sonos.set_option service has been removed along with the bass_level and treble_level attributes on media_player entities.
Controls for bass and treble adjustments have been moved to dedicated number entities.
(@jjlawren - #60498) (sonos docs)
Breaking
Statistics
All statistical characteristics were removed from sensor attributes and are now selectable through state_characteristic as the state of the sensor. The parameter state_characteristic will become mandatory in a future release.
Please adapt the configuration of your statistics sensor(s) and expose the characteristic you are interested in directly through state_characteristic. Existing template sensors to access individual characteristics can be removed. In case you are interested in multiple characteristics, you need to define multiple statistics sensors.
Many characteristics were renamed and additional ones were added, including a few for binary source sensors. Consider opening a feature request if your use case is not directly covered.
Breaking
Templates: timestamp_local and timestamp_utc
The timestamp_local and timestamp_utc template functions/filters have changed their output format. The timestamp is now formatted to iso standards and contains timezone information.
Previously a timestamp from these would look like: 2016-07-21 16:39:04. Now it is formatted as: 2016-07-21T16:39:04+01:00.
This change may break templates that need a specific format, in those cases, you can use the timestamp_custom template filter instead.
Breaking
Trafikverket Weather Station
The Trafikverket Weather Station integration migrated to configuration via the UI. Configuring Trafikverket Weather Station via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@gjohansson-ST - #60078) (trafikverket_weatherstation docs)
Breaking
Twente Milieu
Due to the modernization of the Twente Milieu integration; the twentemilieu.update service has been removed.
You can now use the homeassistant.update_entity service with the Twente Milieu integration as a replacement for the removed service.
(@frenck - #59632) (twentemilieu docs)
Breaking
Velbus
The previously deprecated YAML configuration of the RVelbus integration has been removed.
Velbus 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.
(@Cereal2nd - #60411) (velbus docs)
Breaking
Viessmann ViCare
The Viessmann ViCare integration migrated to configuration via the UI. Configuring Viessmann ViCare via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@oischinger - #56691) (vicare docs)
Breaking
WLED
The led_count and max_power attributes have been removed from the sensor entity that provides the estimated current of the WLED device. These have been replaced by their own sensor entities.
If you have been using the attributes in your automation or scripts, you'll need to adjust those to reflect these changes.
(@frenck - #58839) (wled docs)
The speed, palette name, intensity, and reverse effect indicator attributes have been removed from the WLED light entities. They all have been replaced by their own, dedicated, number and switch entities.
If you rely on these attributes in your automations or scripts, you'll need to adjust those to this change.
(@frenck - #60535) (wled docs)
The wled.effect and wled.preset services have been removed. For both services, full replacements are available as normal entities in Home Assistant.
If you are still using these services in your automation or script, please replace them with service calls to their native entities instead.
Breaking
Yamaha MusicCast
Only one Home Assistant device was created for a Yamaha MusicCast device, and the media player entities of all zones were part of this device.
As of this release, every zone media player will be located in its own Home Assistant device. For single zone devices, nothing will change and all your automations, scripts, scenes, etc., should work in the same way as before.
A new device will be created for multi-zone devices for every non-main zone (e.g., zone2 or zone3). The media_player of the main-zone will remain in the original device with all its properties, scripts, automations and scenes, configured for it.
For other zones, you will have to set the area of the newly generated devices for the various zones manually. If you created scripts, automations, or scenes with the device as a target and want them to work for non-main zones, you will have to add the newly added devices as a target to your script/automation/scene.
If you used the media player entity as a target, everything should still work like before.
Breaking
Z-Wave JS
Some entities have been marked as configuration entities, e.g., default tone of siren devices and protection mode of smart plugs.
Configuration entities:
- Are not included in a service call targeting a whole device or area.
- Are, by default, not exposed to Google Assistant or Alexa.
- Are shown on a separate card on the device configuration page.
- Do not show up on the automatically generated Lovelace Dashboards.
Note
Farewell to the following
The following integrations are no longer available as of this release:
- Dyson has been removed. The integration has been broken for a long time now, so its time for it to go, (@epenet - #59401)
- IOTA has been removed. The protocol is no longer compatible/usable with this integration. (@lambtho12 - #59380
- Loop Energy has been removed. Loop has shutdown their API in November 2020. (@cgarwood- #61175)
- myChevrolet has been removed. It has been broken for 6 months and GM keeps actively hardening their authentication; preventing the integration to work. (@sdague - #59629)
From www.home-assistant.io/blog/2021/12/11/release-202112/#farewell-to-the-following
2021.12.1 – 2021.12.10: no action items (10 versions)
2022.2.0 2022-02-02
79 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/02/02/release-20222/#backward-incompatible-changes
Breaking
Breaking
Python 3.8 support dropped
Python 3.8 support has previously been deprecated and now has been removed. Home Assistant now requires Python 3.9 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.9 for quite some time already.
Breaking
GPIO Integrations
As of this release, all integrations interfacing with GPIO directly, have been deprecated.
There are multiple reasons for this, which includes a general low usage of these integrations. For most Home Assistant installations, GPIO isn't easily usable and more often the integrations are unmaintained.
More information can be found in Architectural Decision Record 0019.
Additionally, there are many projects around that handle these purposes of GPIO better than Home Assistant. For example, our sister project ESPHome, or the MQTT IO project, and many more.
We do not forbid the use of GPIO, but we are merely deprecating and removing built-in integrations, providing GPIO functionality from Core. We welcome custom integrations (existing or new ones) to provide alternatives. However, for most cases we recommend on using dedicated hardware, like an ESP device, instead.
The following integrations have been deprecated and will be removed in Home Assistant Core 2022.4:
- BeagleBone Black GPIO
- BH1750
- Blinkt!
- Bosch BME280 Environmental Sensor
- Bosch BME680 Environmental Sensor
- Bosch BMP280 Environmental Sensor
- DHT Sensor
- Enviro pHAT
- HTU21D(F) Sensor
- mcp23017
- MH-Z19 CO2 Sensor
- Orange Pi GPIO
- pcal9535a
- pi4ioe5v9xxxx
- PiFace Digital I/O (PFIO)
- Piglow
- pigpio Daemon PWM LED
- Raspberry Pi RF
- Rasphihats
- Sense HAT
- Sensirion SHT31
- Time of Flight
The following integration have been deprecated and will be removed in Home Assistant Core 2022.6:
- 1-Wire (SysBus only!)
- Raspberry Pi GPIO
Note: 1-Wire is a special case, as it supports both the SysBus and connecting to a remote owfs server. The use of the SysBus is deprecated, however, connecting to a remote owfs server is not.
Update: We've been notified by a developer that the Raspberry Pi GPIO integration will be made available via HACS.
Breaking
Binary Sensors
Previously, binary_sensor entities could have the state on, off, and in case the device was unreachable: unavailable.
However, compared to other entities, it wasn't able to have the unknown state, which has been added this release.
So, a binary_sensor entity can now have the on, off, unavailable, or unknown state.
You might need to adapt your automations or scripts to take this new unknown state into account.
(@frenck - #60193) (binary_sensor docs)
Breaking
Groups: Locks
The behavior of grouped locks has been reversed such that "unlocked" is mapped to on and "locked" to off.
This means that:
- A group with mixed domains will be considered
onif any lock included in the group is unlocked. - A group of locks will be considered "unlocked" if any lock included in the
- group is unlocked.
(@emontnemery - #62580) (lock docs) (group docs)
Breaking
Fan/Humidifer/Light/Remote/Siren/Switch/Vacuum
Previously, toggle-based entities (like fan, light, switch, remote, siren, vacuum, humidifier) could have the state on or off, and in case the device was unreachable: unavailable. However, compared to other entities, toggle entities weren't able to have an unknown state, this now has changed.
As of now, toggle-based entities can have the on, off, unavailable, or unknown state.
You might need to adapt your automations or scripts to take this new unknown state into account.
Breaking
Command-line arguments and OS check
Home Assistant no longer supports managing a PID file or creation of a daemon process. Users who use a customized core or container installation may need to update their startup scripts.
The --runner option is no longer supported by the hass command. Requesting a restart from the UI will now always exit with exit code 100. You will need to update your startup scripts to handle the restart, like our Systemd service example.
Home Assistant will exit immediately if not started from a supported operating system according to ADR-0016: Linux (including WSL) or OSX. A new command line parameter --ignore-os-check has been added to allow overriding this check.
(@emontnemery - #64345) #64347) #64352)
Breaking
Advantage Air
The advantage_air.set_myzone service has been deprecated and will be removed in a future version of Home Assistant.
Please use the select.select_option service on the MyZone select entity to change this value on supported systems instead.
(@Bre77 - #58777) (advantage_air docs)
Breaking
Android TV
The Android TV integration migrated to configuration via the UI. Configuring Android TV via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
- Add config_flow to AndroidTV integration (@ollo69 - #54444) (androidtv docs) (breaking-change)
Breaking
Breaking
Apple iCloud
The Apple iCloud integration migrated to configuration via the UI in a previous release already. Configuring Apple iCloud via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is already automatically imported; and thus can be safely removed from your YAML configuration.
(@epenet - #63875) (icloud docs)
Breaking
Apple Push Notification Service (APNS)
The Apple Push Notification Service (APNS) integration has been deprecated and will be removed in Home Assistant 2022.4. Please note, this does not affect our mobile companion apps; as they do not use this integration for their notifications.
Breaking
Aurora ABB PowerOne Solar PV
The previously deprecated YAML configuration of the Aurora ABB PowerOne Solar PV integration has been removed.
Aurora ABB PowerOne Solar PV 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.
Breaking
AVM FRITZ!Box Tools
The previously deprecated YAML configuration of the AVM FRITZ!Box Tools integration has been removed.
AVM FRITZ!Box Tools 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.
@epenet - #63857) (fritz docs)
The reboot and reconnect services are deprecated and will be removed in future release. Please use the newly provided button entities instead.
(@chemelli74 - #61483) (fritz docs)
Breaking
AVM FRITZ!SmartHome
The lock and devicelock attributes are removed from all entities and now exposed as own sensors.
(@mib1185 - #60426) (fritzbox docs)
Breaking
Azure Event Hub
The Azure Event Hub integration migrated to configuration via the UI. Configuring Azure Event Hub via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
BMW Connected Drive
The charging_time_remaining (in hours) has been replaced with charging_end_time (timestamp) to not clutter the Home Assistant state machine.
You might need to adapt your automations or scripts for this change.
(@rikroe - #60942) (bmw_connected_drive docs)
All ``bmw_connected_drive.*services are deprecated. Please use the new button entities with thebutton.press` service instead.
Breaking
Breaking
Broadlink
The previously deprecated YAML configuration of the Broadlink integration has been removed.
Broadlink 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.
(@tkdrob - #62341) (broadlink docs)
Breaking
CO2 Signal
The previously deprecated YAML configuration of the CO2 Signal integration has been removed.
CO2 Signal 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.
(@tkdrob - #62343) (co2signal docs)
Breaking
CPU Speed
The CPU Speed integration migrated to configuration via the UI. Configuring CPU Speed via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@frenck - #62929) (cpuspeed docs)
Breaking
DLNA Digital Media Renderer
The previously deprecated YAML configuration of the DLNA Digital Media Renderer integration has been removed.
DLNA Digital Media Renderer 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.
(@tkdrob - #62344) (dlna_dmr docs)
Breaking
DNS IP
The DNS IP integration migrated to configuration via the UI. Configuring DNS IP via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@gjohansson-ST - #62843) (dnsip docs)
Breaking
DoorBird
The relays and IR light switches are removed and replaced with corresponding buttons entities. Any scripts or automations which reference these switches to turn them on should change to instead press the button instead.
(@flacjacket - #63995) (doorbird docs)
Breaking
DSMR
The sensor.energy_consumption_total sensor for DSMR versions 2.2 and 4 has been removed. Meters with these versions do not provide this data, so this sensor can be safely removed. You might need to clean up the orphaned entity in your setup.
(@rhpijnacker - #63436) (dsmr docs)
Breaking
Efergy
The previously deprecated YAML configuration of the Efergy integration has been removed.
Efergy 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.
(@tkdrob - #61520) (efergy docs)
Breaking
Enphase Envoy
The previously deprecated YAML configuration of the Enphase Envoy integration has been removed.
Enphase Envoy 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.
(@tkdrob - #61840) (enphase_envoy docs)
Breaking
Environment Canada
The previously deprecated YAML configuration of the Environment Canada integration has been removed.
Environment Canada 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.
(@tkdrob - #61839) (environment_canada docs)
The sensors no longer have Timestamp as an extra state attribute, instead, use the new timestamp sensor that can be used in automations that track state changes.
The alert sensors (advisories, endings, statements, warnings, and watches) state is now a count of the number of active alerts for the sensor type and the extra state attributes contain the alert text and alert timestamp.
The attributes are named alert_<x> and alert_time_<x> where <x> is 1 for alert 1, 2 for alert 2, etc.
Breaking
Fan
This is more a breaking change for custom integration developers.
Now that all core fans are using the new fan entity model, the compatibility shim has been removed. Custom integrations that have not yet switched to the new fan model may be affected. For more information see:
https://developers.home-assistant.io/docs/core/entity/fan/#deprecated-properties
Preset modes and percentages will continue to be translated back to legacy speeds until 2022.3 in order to give users a bit more time to update automations.
Breaking
Fibaro
The energy values are exposed now as separate sensor entities and therefore the state attribute current_energy_kwh was removed from all other entities.
If you use the state attribute current_energy_kwh you need to change that to use the new energy sensors instead.
(@rappenze - #63697) (fibaro docs)
Breaking
Flume
The previously deprecated YAML configuration of the Flume integration has been removed.
Flume 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.
(@tkdrob - #61517) (flume docs)
Breaking
FortiOS
The integration now requires FortiOS 6.4.3 and newer.
(@kimfrellsen - #61970) (fortios docs)
Breaking
Foscam
The previously deprecated YAML configuration of the Foscam integration has been removed.
Foscam 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.
(@tkdrob - #61761) (foscam docs)
Breaking
Foursquare
The data associated with foursquare.checkin event is now available as a dictionary item with key "text".
If you use this event in your automation or scripts, you'd need to adjust to match this change.
(@epenet - #63982) (foursquare docs)
Breaking
GitHub
The YAML configuration for the github sensor platform has been removed.
There was no viable automatic migration of the configuration, so you need to manually remove the configuration from your configuration file and set it up again in the integration panel.
Previously this integration created 1 sensor for each repository, now this is split out to multiple entities which are mostly disabled by default (you can enable the entities you want this integration to provide).
Support for GitHub enterprise has been removed.
(@ludeeus - #64190) (github docs)
Breaking
Google Maps Travel Time
The previously deprecated YAML configuration of the Google Maps Travel Time integration has been removed.
Google Maps Travel Time 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.
Breaking
HomeKit
HomeKit will now automatically exclude entities with an entity category such as a configuration or diagnostic entity unless they have been explicitly included.
To explicitly include an entity:
- YAML: Add the entity to the filter in either the
include_entitiesorinclude_entity_globsfields. - UI: Select the entity in the UI in include mode. If you are using exclude mode, a second bridge can be created in include mode.
(@bdraco - #64492) (homekit docs)
Breaking
Honeywell Total Connect Comfort (US)
The previously deprecated YAML configuration of the Honeywell Total Connect Comfort integration has been removed.
Honeywell Total Connect Comfort 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.
(@tkdrob - #62469) (honeywell docs)
Breaking
iOS
The Home Assistant iOS/macOS app supports notification actions defined in the notification itself; the old method of defining push categories in the iOS integration is now deprecated and will be removed in 2022.4.
Breaking
Keenetic NDMS2 Router
The previously deprecated YAML configuration of the Keenetic NDMS2 Router integration has been removed.
Keenetic NDMS2 Router 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.
(@epenet - #63860) (keenetic_ndms2 docs)
Breaking
Launch Library
The Launch Library integration migrated to configuration via the UI. Configuring Launch Library via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@DurgNomis-drol - #62416) (launch_library docs)
Attributes on the current sensor is changed. Names of these attributes are changed to better describe what information they provide. (Ex. agency changed name to provider as this is the more correct terminology.) New attributes are added to give more information about where it takes place.
The stream attribute ios moved to the new sensor, and changed its name to stream_live as it represents if the stream is live and not if a stream is available.
And finally, the attribute launch_time moved into its own sensor. This made it possible to add some information about the launch window start and end as attributes for the new sensor. This sensor will also contain the stream_live attribute.
Breaking
LG webOS Smart TV
The LG webOS Smart TV integration migrated to configuration via the UI. Configuring LG webOS Smart TV via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
The turn on action for turning on the TV via WakeOnLan or HDMI-CEC was using a service call via YAML, and the turn on action is changed to use a custom automation trigger webostv.turn_on or a device trigger automation that can be setup from the UI.
Example trigger automation:
automation:
trigger:
- platform: webostv.turn_on
entity_id: media_player.lg_webos_smart_tv
action:
- service: wake_on_lan.send_magic_packet
data:
mac: AA-BB-CC-DD-EE-FF
(@thecode - #64117) (webostv docs)
Breaking
Logitech Squeezebox
The previously deprecated YAML configuration of the Logitech Squeezebox integration has been removed.
Logitech Squeezebox 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.
(@tkdrob - #62537) (squeezebox docs)
Breaking
Magic Home
The previously deprecated YAML configuration of the Magic Home integration has been removed.
Magic Home 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.
(@tkdrob - #61844) (flux_led docs)
Breaking
Media Player Classic Home Cinema (MPC-HC)
The Media Player Classic Home Cinema (MPC-HC) integration has been deprecated and will be removed in Home Assistant Core 2022.4.
This integration is removed under Architectural Decision Record 0004.
(@frenck - #63598) (mpchc docs)
Breaking
MQTT
The MQTT lights no longer support, the previously deprecated, value_template;state_value_template should be used instead.
(@emontnemery - #62682) (mqtt docs)
Previouysly MQTT climate would only publish to hold_command_topic or away_mode_command_topic if the new mode is not the same as the current state.
As of this release MQTT always publishes on both command topics (hold_command_topic and away_mode_command_topic) (if defined) which makes it more predictable what update the MQTT device will receive.
(@jbouwh - #63463) (mqtt docs)
The send_if_off config parameter of the climate platform, which limits publishing if the current operation mode is HVAC_MODE_OFF, is now deprecated.
This will break applications that depend on this feature.
Breaking
Nanoleaf
The Nanoleaf integration migrated to configuration via the UI in a previous release already. Configuring Nanoleaf via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is already automatically imported; and thus can be safely removed from your YAML configuration.
(@milanmeu - #63404) (nanoleaf docs)
Breaking
Nest
The Legacy "Works With Nest API" is deprecated and support will be removed in Home Assistant Core 2022.5; See our documentation for using the Smart Device Management API instead.
Read why and about potential alternatives.
(@allenporter - #63027) (nest docs)
Breaking
NETGEAR
The previously deprecated YAML configuration of the NETGEAR integration has been removed.
NETGEAR 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.
(@epenet - #63862) (netgear docs)
Breaking
Nissan Leaf
The service to start a charge has been deprecated; it is replaced with a button.
Replace the nissan_leaf.start_charge service in any existing automations with button.press for the new button.start_NICKNAME_charging entity.
The nissan_leaf.start_charge service is now deprecated and will be removed in a future release.
(@filcole - #62948) (nissan_leaf docs)
Breaking
Nmap Tracker
The previously deprecated YAML configuration of the Nmap Tracker integration has been removed.
Nmap Tracker 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.
(@epenet - #63863) (nmap_tracker docs)
Breaking
Breaking
OpenGarage
The previously deprecated YAML configuration of the OpenGarage integration has been removed.
OpenGarage 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.
- Remove deprecated yaml config from opengarage (@tkdrob - #61961) (opengarage docs) (breaking-change)
Breaking
Philips TV
The previously deprecated YAML configuration of the Philips TV integration has been removed.
Philips TV 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.
(@tkdrob - #62471) (philips_js docs)
Breaking
PVOutput
The PVOutput integration migrated to configuration via the UI. Configuring PVOutput via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Additionally, all sensor attributes of the PVOutput sensor, have been extracted in their own dedicated sensors.
This applies to the following PVOutput attributes:
energy_generationpower_generationenergy_consumptionpower_consumptionefficiencytemperaturevoltage
If you relied on these in your automation or scripts, you need to adapt those to use the new separate sensors instead. The attributes are currently available, however, deprecated and will be removed in Home Assistant Core 2022.4.
(@frenck - #62667 #62894) (pvoutput docs)
Breaking
ReCollect Waste
ReCollect Waste no longer stories "next pickup" information as attributes of the "current pickup" sensor; instead, both pickups are now their own sensors.
Breaking
RIVM Stookalert
The previously deprecated YAML configuration of the Stookalert integration has been removed.
Stookalert 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 - #61007) (stookalert docs)
Breaking
Samsung SyncThru Printer
The previously deprecated YAML configuration of the Samsung SyncThru Printer integration has been removed.
Samsung SyncThru Printer 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.
(@tkdrob - #62541) (syncthru docs)
Breaking
Sensibo
The Sensibo integration migrated to configuration via the UI. Configuring Sensibo via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@gjohansson-ST - #60900) (sensibo docs)
Breaking
Sensor.Community (previously: Luftdaten)
The Luftdaten integration has been renamed to Sensor.Community; which is the new name of the Luftdaten project.
The previously deprecated YAML configuration of this integration has been removed.
Sensor.Community 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 - #61748 #62865) (luftdaten docs)
Breaking
SMA Solar
The previously deprecated YAML configuration of the SMA Solar integration has been removed.
SMA Solar 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.
Breaking
SolaX Power
The SolaX Power integration migrated to configuration via the UI. Configuring SolaX Power via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@tokenize47 - #56620) (solax docs)
Breaking
SwitchBot
The SwitchBot integration migrated to configuration via the UI in a previous release already. Configuring SwitchBot via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is already automatically imported; and thus can be safely removed from your YAML configuration.
(@tkdrob - #62583) (switchbot docs)
Breaking
Synology DSM
The reboot and shutdown services are deprecated and will be removed in a future release. Please use the new button entities instead.
(@mib1185 - #57352) (synology_dsm docs) (breaking-change)
Breaking
Templates: Binary Sensors
Template trigger binary sensor should start with unknown value rather than always starting with false/off. This matches the template binary sensor behavior with other sensors.
(@amosyuen - #62769) (template docs)
Breaking
TP-Link Kasa Smart
The previously deprecated YAML configuration of the TP-Link Kasa Smart integration has been removed.
TP-Link Kasa Smart 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.
(@bdraco - #62457) (tplink docs)
Breaking
Trafikverket Train
The planned time, estimated time and actual time sensor attributes have been corrected to be UTC isoformatted strings which is standard in Home Assistant.
Previously displayed as 2021-12-23T09:07:00 and now correctly set as 2021-12-23T09:07:00+00:00.
This may affect templates or automations based on these attributes.
Breaking
Twinkly
Key host is removed from the (extra) state attribute of the light entity.
(@RobBie1221 - #64139) (twinkly docs)
Breaking
Vallox
The Vallox integration migrated to configuration via the UI. Configuring Vallox via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@slovdahl - #62780) (vallox docs)
Breaking
Version
The Version integration migrated to configuration via the UI. Configuring Version via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Additionally, the source and channel attributes have been removed from the Version sensor for the local source.
(@ludeeus - #54642 #64827) (version docs)
Breaking
VeSync
Previous versions of this integration exposed power and energy usage from VeSync outlets as state attributes on the switch entity itself. This used the deprecated properties: current_power_w and today_energy_kwh.
In this version, these two attributes have been removed from the switch entity and split into two new diagnostic sensor entities that are attached to the same Device.
Automations and template entities based on the state attribute mechanism should be updated accordingly.
(@decompil3d - #61837) (vesync docs)
Breaking
Viessmann ViCare
The scan interval option has been removed, since the default should be fine in almost all cases.
If you really need more fine-grained control you can disable automatic updates in the system settings for the Viessmann ViCare integration and automate the polling of the entities with the homeassistant.update_entity service.
(@oischinger - #63343) (vicare docs)
Breaking
VIZIO SmartCast
If an integrated vizio TV supports apps and the source is currently a non-app input (e.g. HDMI-1), the app_id and app_name attributes will no longer be in the media player entity's state.
When the TV is using an app, the app_name will still always be visible and the app_id will continue to only be shown if the app is not recognized.
(@raman325 - #64025) (vizio docs)
Breaking
VLC media player Telnet
The previously deprecated YAML configuration of the VLC media player Telnet integration has been removed.
VLC media player Telnet 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.
(@tkdrob - #62542) (vlc_telnet docs)
Breaking
Waze Travel Time
The previously deprecated YAML configuration of the Waze Travel Time integration has been removed.
Waze Travel Time 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.
Breaking
Breaking
Whois
The Whois integration migrated to configuration via the UI. Configuring Whois via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@frenck - #63069) (whois docs)
Breaking
Z-Wave JS
Due to a schema change, zwave-js-server version 1.14.0 or greater is required. Ensure you are using the latest version of zwave-js-server (or the add-ons that provide those).
(@raman325 - #64407) (zwave_js docs)
Breaking
Zero-configuration networking (zeroconf)
This change is only a concern for custom integration developers.
Currently zeroconf matching only allows matching the macaddress, model, and manufacturer properties along with the name from the ZeroconfServiceInfo.
Since properties are arbitrarily defined by the zeroconf service, the list of named properties has grown over time.
Matching now allows for any arbitrarily defined property. All property matches must be lowercase, wildcards are supported
The top level keys model, manufacturer, and macaddress are now deprecated from the manifest.json file and should be moved into a properties dict.
For example:
- {"type":"_airplay._tcp.local.","model":"appletv*"}
+ {"type":"_airplay._tcp.local.","properties":{"model":"appletv*"}}
(@bdraco - #62133) (zeroconf docs)
Note
Farewell to the following
The following integrations are no longer available as of this release:
- TaHoma has been removed. The integration has been broken and now been superseded by the Overkiz integration. (@iMicknl - #62607)
- Arduino the now long time deprecated integration has been removed. (@frenck - #63406)
- EE Bright Box has been broken and disabled for over a year now. It has now been removed. (@epenet - #63839)
From www.home-assistant.io/blog/2022/02/02/release-20222/#farewell-to-the-following
2022.2.1 – 2022.2.9: no action items (9 versions)
2022.3.0 2022-03-02
28 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/03/02/release-20223/#backward-incompatible-changes
Breaking
Z-Wave / OpenZWave
This breaking change does NOT apply to users of the Z-Wave JS integration.
This is a breaking change notice regarding the older Z-Wave and OpenZWave integrations, which both have been previously deprecated.
This release of Home Assistant Core 2022.3 will be the final release that provides these integrations. Both the old zwave and ozw integrations are pending removal for Home Assistant Core 2022.4.
The ozw integration has been deprecated before as the upstream projects we depends on, for e.g., libraries and add-on containers, are no longer maintained.
As Home Assistant is moving towards support for Python 3.10, it became clear that the old zwave integration isn't compatible and thus is going to be removed for that reason.
If you are still running your Z-Wave network on either of those deprecated integrations, we highly recommend migrating to the newer Z-Wave JS integration after upgrading to this release.
The new Z-Wave JS will provide you with a modern, more feature-rich, maintained, and stable Z-Wave stack for the future.
See our documentation for a guide on Migrating from previous Z-Wave implementations.
Breaking
ASUSWRT
The previously deprecated YAML configuration of the ASUSWRT integration has been removed.
ASUSWRT 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.
(@ollo69 - #65904) (documentation)
Breaking
AVM FRITZ!Box Call Monitor
The AVM FRITZ!Box Call Monitor integration previously migrated to configuration via the UI. Therefore, configuring the AVM FRITZ!Box Call Monitor integration via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration has been automatically imported and can be safely removed from your YAML configuration.
(@tkdrob - #61762) (documentation)
Breaking
ebusd
A typo was fixed in the ebusd integration for monitored condition WaterPressure. It is incorrectly named "WaterPreasure" in the code.
The documentation represents the correct value.
(@nklebedev - #66355) (documentation)
Breaking
Elexa Guardian
Elexa Guardian no longer accepts the previously deprecated entity_id parameter in service calls; automations and scripts calling those services now require a device_id parameter.
(@bachya - #65484) (documentation)
Breaking
Freebox
The freebox.reboot service is now deprecated and replaced by a dedicated reboot button entity; please use that entity to reboot the Freebox instead.
(@epenet - #65501) (documentation)
Breaking
IKEA TRÅDFRI
The native IKEA Tradfri groups are now deprecated, and this feature will be removed from the integration in a future release.
Tradfri groups rely on sending frequent requests (polling) to the gateway to check the states of the groups. Continuously polling the gateway causes stability issues of the gateway, sometimes causing it to crash and requiring a restart. We propose using light groups instead.
Configuring IKEA Tradfri via YAML configuration has been deprecated and will be removed in a future Home Assistant release. Any remaining YAML configuration has been automatically imported for a long time and thus can be safely removed from your YAML configuration.
(@ggravlingen - #65226) (documentation)
Breaking
International Space Station (ISS)
The International Space Station (ISS) integration migrated to configuration via the UI. Configuring International Space Station (ISS) via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
MQTT
MQTT binary sensors, lights, fans, humidifiers, and switches can now have an unknown state in case the state is unknown.
This change was made to make the MQTT entities more consistent with how these entities behave in other parts of Home Assistant. You may need to adapt your script and automations to this change.
(@jbouwh - #65183 #65308 #65301 #65302 #65294) (documentation)
An MQTT configuration in configuration.yaml no longer results in an imported integration entry, MQTT must now be set up from the frontend.
Please note that:
- Any previously imported configuration is still valid, this PR does not remove or modify imported configurations.
- It's still possible to configure MQTT entities and advanced broker configurations, such as SSL certificates, via YAML.
(@emontnemery - #66160) (documentation)
The MQTT climate hold and away mode configuration settings are now deprecated and removed in Home Assistant Core 2022.9.0.
Please use the new preset_mode configuration options instead.
(@jbouwh - #66062) (documentation)
Configuring basic MQTT broker options with YAML is now deprecated, this affects the following configuration variables:
birth_messagebrokerdiscoverypasswordportusernamewill_message
Configuring those options can instead be done via the UI.
(@emontnemery - #66247) (documentation)
Breaking
Nest
Older Nest cameras no longer use thumbnail images from events, and instead always use the live stream.
You should use the newer Nest Media Source APIs to fetch media for events.
(@allenporter - #66427) (documentation)
Breaking
NINA
Districts of Hamburg and Berlin have been removed. Alternatively, Hamburg, Freie und Hansestadt and Berlin, Stadt can be used.
(@DeerMaximum - #65914) (documentation)
Breaking
Overkiz (by Somfy)
Previously, a Myfox Camera Shutter was mapped to a (non-functional) cover entity. This is now changed to be a functional switch entity instead.
(@iMicknl - #66088) (documentation)
Breaking
Phone Modem
The modem_callerid.reject_call has been deprecated and will be removed in Home Assistant 2022.4.
The integration now provides a button entity that can be used instead.
If you have been using the reject_call service in your automation or scripts, you will need to adopt those to this change.
(@tkdrob - #66742) (documentation)
Breaking
Picnic
The sensors for the "last order ETA start/end" have been renamed to "next delivery ETA start/end" and will now contain the ETA of the first upcoming delivery.
If multiple deliveries are planned, the next_delivery_* sensors contain information about the first upcoming delivery, while the last_order_* sensors contain information about the last-placed order.
(@corneyl - #66474) (documentation)
Breaking
Plugwise
Changing the scan interval option of Plugwise devices in the integration configuration has been removed. Home Assistant will, by default, use a sane and safe interval.
If you, however, still need to customize the interval, you can do so by disabling automatic updates for the integration and using an automation to trigger on your preferred interval and call homeassistant.update_entity service.
(@frenck - #65808) (documentation)
The Plugwise Auxiliary sensor entities for heating and cooling have been removed and replaced by equivalent binary_sensor entities.
(@frenck - #66259) (documentation)
Breaking
Radarr
The "Wanted" option for the Radarr integration has been removed, as this was an invalid endpoint.
If you have this option configured in your YAML configuration, you will need to remove it.
(@tkdrob - #63818) (documentation)
Breaking
Renault
Previously, Renault binary_sensor entities could have the state on or off, and in case the endpoint was unreachable: unavailable.
However, it wasn't able to have the unknown state, which has been added.
So, a binary_sensor entity can now have the on, off, unavailable, or unknown state.
You might need to adapt your automations or scripts to account this new unknown state.
(@epenet - #65997) (documentation)
Breaking
Sensibo
The optional battery voltage attribute has been removed from the climate entity. If you used this attribute in your automations or scripts, you'll need to adjust them to handle this change.
Breaking
SimpliSafe
SimpliSafe no longer accepts the, previously deprecated, system_id parameter in service calls; automations and scripts calling those services now require a device_id parameter instead.
(@bachya - #65483) (documentation)
Breaking
Sonarr
Sonarr v2 is no longer supported and has been deemed End of Life by its developers since early 2021. Please upgrade to Sonarr v3 to continue using the Sonarr integration.
The attribute date format of the Wanted sensor is now isoformated with a time of airing.
(@ctalkington - #65349) (documentation)
Breaking
Synology DSM
The Home-Mode switch of the Surveillance Station is no longer categorized to be a configuration entity since it is part of the primary functionality.
(@mib1185 - #65949) (documentation)
Breaking
Twitch
The old Twitch API, this integration previously relied on, is shutting down soon.
Therefore, this release updated the Twitch integration to support the new API, and now requires a client_secret as well as a client_id, and new OAuth tokens need to be issued with the user:read:subscriptions scope.
(@Doridian - #67153) (documentation)
Breaking
Updater
The Updater integration has been deprecated; other integrations have replaced all its functionality. It is no longer a part of default_config, and if you have the updater integration defined directly in your YAML configuration, please remove it.
- For the
binary_sensor.updaterentity, you can set up the Version integration with the "Home Assistant Website" source to get the same functionality back. - The configuration options
reportingandinclude_used_componentsfor theupdater:configuration entry was deprecated in 2021.4. If you still want to share that, please use the new Analytics integration.
(@ludeeus - #67038) (documentation)
Breaking
Vallox
The previously deprecated vallox.set_profile service has now been removed. Please use the standard fan.set_preset_mode service as a replacement.
Breaking
Viessmann ViCare
The sensor solar power production has been removed. This sensor was a collection of multiple values.
Instead, we now provide four new sensors that each provides the data as single value:
solar power production todaysolar power production this weeksolar power production this monthsolar power production this year
You might need to adapt your automations or scripts to this change. The stale restored sensor can be safely removed.
(@tschnilo - #63339) (documentation)
Breaking
Workday
Workday now requires a 2-character ISO 3166-1 country code instead of the country's name. States, provinces and constituent countries must now be listed using the province setting. Please see the documentation for examples.
Breaking
XBee
The Xbee integration has been disabled due to the third-party library we depend on not being compatible with Python 3.10.
Home Assistant is working towards adding support for Python 3.10, and we had to disable this integration now to be able to get our development and testing environments upgraded.
Breaking
Z-Wave JS
The zwave_js.ping service is now deprecated in favor of a new ping button entity. You can replace any zwave_js.ping service calls in your automation with a button.press call against the new entity with no change in functionality.
The zwave_js.ping service will be removed in a future release of Home Assistant.
(@raman325 - #66129) (documentation)
With this release, you will need to update your zwave-js-server instance.
- If you use the zwave_js add-on, you need to have at least version
0.1.54.. - If you use the Z-Wave JS 2 MQTT add-on, you need to have at least version
0.35.2. - If you use the zwavejs2mqtt Docker container, you need to have at least version
6.5.2. - 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.15.0.
(@raman325 - #66785) (documentation)
Your Z-Wave controllers will no longer get a node status sensor. While this is technically a breaking change, in practice it should not be because the controller is always alive.
(@raman325 - #67209) (documentation)
Note
Farewell to the following
The following integration is no longer available as of this release:
- Growl (GnGNTP) has been removed. The Growl project has retired. (@frenck - #65741)
From www.home-assistant.io/blog/2022/03/02/release-20223/#farewell-to-the-following
2022.3.1 – 2022.3.8: no action items (8 versions)
2022.4.0 2022-04-06
58 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/04/06/release-20224/#backward-incompatible-changes
Breaking
Breaking
Switches - Energy attributes
In the August 2021 release, we deprecated all energy-related attributes from switches. The attributes are: current_power_w and today_energy_kwh. Those attributes should have been separate power and energy sensors instead.
All integrations affected were notified on July 22, 2021, of requiring a change.
As of this release, the attributes have been removed from the switch core entity platform, meaning the current_power_w and today_energy_kwh attributes are no longer available for the following:
- ATEN Rack PDU
- Belkin WeMo
- D-Link Wi-Fi Smart Plugs
- Edimax
- ELV PCA
- Emulated Kasa
- Fibaro
- Hive
- HomematicIP Cloud
- MQTT
- myStrom
- Netio
- Ubiquiti mFi mPort
- Vera
Breaking
Android TV
The previously deprecated YAML configuration of the Android TV integration has been removed.
Android TV 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.
(@tkdrob - #68339) (documentation)
Breaking
Apple iCloud
The previously deprecated YAML configuration of the Apple iCloud integration has been removed.
Apple iCloud 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.
(@balloob - #69006) (documentation)
Breaking
Awair
The previously deprecated YAML configuration of the Awair integration has been removed.
Awair 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.
(@tkdrob - #68572) (documentation)
Breaking
BMW Connected Drive
The previously deprecated YAML configuration of the BMW Connected Drive integration has been removed.
BMW Connected Drive 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.
(@rikroe - #66965) (documentation)
Breaking
Brunt
The previously deprecated YAML configuration of the Brunt integration has been removed.
Brunt 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.
(@balloob - #69024) (documentation)
Breaking
Climacell / Tomorrow.io
ClimaCell as a company rebranded to Tomorrow.io and as such we will be deprecating the climacell integration in favor of the new tomorrowio integration.
For any climacell users using a v4 API key, the migration from the old integration to the new one will happen automatically. If you are a climacell user using a v3 API key, you will need to sign up for a v4 API key to complete the migration, but once you have provided the new key, your configuration (or configurations) will be migrated over automatically.
For now, v3 users will still have access to their existing ClimaCell configurations before they submit the new API key so that your automations and dashboards still work.
In a future release, we will be removing most of the code from the climacell integration so that the migrations will still happen, but the original integration will no longer work.
(@raman325 - #68156) (documentation)
Breaking
CPU Speed
The previously deprecated YAML configuration of the CPU Speed integration has been removed.
CPU Speed 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 - #67166) (documentation)
Breaking
Deluge
The Deluge integration migrated to configuration via the UI. Configuring Deluge via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@tkdrob - [#58789]) (documentation)
Breaking
Discord
The Discord integration migrated to configuration via the UI. Configuring Discord via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@tkdrob - #61069) (documentation)
Breaking
DNS IP
The previously deprecated YAML configuration of the DNS IP integration has been removed.
DNS IP 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.
(@balloob - #69007) (documentation)
Breaking
Dune HD
The Dune HD integration has previously migrated to configuration via the UI. Configuring Dune HD via YAML configuration has now been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration has been automatically imported; and thus can be safely removed from your YAML configuration.
(@tkdrob - #68381) (documentation)
Breaking
Eight Sleep
The partner parameter was deprecated in 2021, but it was still accepted in your configuration. The partner option has now been removed; please remove the partner parameter from your YAML configuration before updating.
(@raman325 - #68381) (documentation)
Breaking
Enphase Envoy
The last_reported attribute for Enphase Envoy inverters is now a separate timestamp sensor.
Each last reported sensor is disabled by default since it generates a significant amount of state changes and database rows. Each last reported sensor can be enabled in the UI.
(@bdraco - #68360) (documentation)
Breaking
EZVIZ
The previously deprecated YAML configuration of the EZVIZ integration has been removed.
EZVIZ 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 - #69031) (documentation)
Breaking
Fibaro
The Fibaro integration migrated to configuration via the UI. Configuring Fibaro via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@rappenze - #65203) (documentation)
Breaking
File Size
The File Size integration migrated to configuration via the UI. Configuring File Size via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@gjohansson-ST - #67668) (documentation)
Additional attributes for the File Size sensors has been extracted into their own sensors which are disabled by default.
If you were previously using any of these attributes your automations, scripts etc. need to be updated to use the new sensors.
Breaking
Fronius
The previously deprecated YAML configuration of the Fronius integration has been removed.
Fronius 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 - #69032) (documentation)
Breaking
Generic Camera
The Generic Camera integration migrated to configuration via the UI. Configuring Generic Camera via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@davet2001 - #52360) (documentation)
Breaking
Huawei LTE
The previously deprecated YAML configuration of the Huawei LTE integration has been removed.
Huawei LTE 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.
(@scop - #68728) (documentation)
Breaking
Launch Library
The previously deprecated YAML configuration of the Launch Library integration has been removed.
Launch Library 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.
(@balloob - #69008) (documentation)
Breaking
LG webOS Smart TV
The previously deprecated YAML configuration of the LG webOS Smart TV integration has been removed.
LG webOS Smart TV 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.
(@thecode - #69043) (documentation)
Breaking
Mazda
The Mazda services start_engine, stop_engine, turn_on_hazard_lights, and turn_off_hazard_lights are deprecated and have been replaced by button entities. Please use the button entities instead.
(@bdr99 - #67597) (documentation)
The Mazda services start_charging and stop_charging are deprecated and replaced by a charging switch entity. Please use the switch entity instead.
(@bdr99 - #68025) (documentation)
Breaking
Met.no
The previously deprecated YAML configuration of the Met.no integration has been removed.
Met.no 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 - #69027) (documentation)
Breaking
Modbus
Setting reverse_order has not been allowed (or worked) for a long time and is removed.
The previously deprecated data_count has been removed.
(@janiversen - #67236) (documentation)
The previously deprecated data types int, uint, and float have been removed.
For the devices that use non-standard register size, "count" can be used to overwrite the default count of registers.
(@janiversen - #67268) (documentation)
There is now an automatic distinction between calling write_register and write_registers, depending on the configured datatype (more than 16bits uses write_registers).
The special situation, where write_registers, count=1 is no longer supported.
(@janiversen - #67268) (documentation)
Breaking
MySensors
The MySensors integration migrated to configuration via the UI a year ago. Configuring MySensors via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration has been automatically imported since a long time; and thus can be safely removed from your YAML configuration.
Breaking
Nanoleaf
The previously deprecated YAML configuration of the Nanoleaf integration has been removed.
Nanoleaf 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.
(@balloob - #69004) (documentation)
Breaking
Nest
Legacy Works with Nest API deprecation is put on hold until issues with SDM API OAuth signups are resolved (so this is an un-breaking change).
(@allenporter - #68715) (documentation)
Breaking
Pi-hole
The binary sensor entities that would show if an update is available for the Core, Web, or FTL component has been deprecated and will be removed in Home Assistant Core 2022.6.
The PI-Hole integration now provides update entities to replace the deprecated entities.
(@mib1185 - #68749) (documentation)
Breaking
Plex Media Server
Support for multiple Plex Media Servers in the media browser has been added.
Automations and scripts which used the media picker to add Plex media items may need to be updated if more than one Plex integration/server is configured.
(@jjlawren - #68321) (documentation)
Breaking
Plugwise
The climate entity attributes selected_schema and available_schemas will be removed in a future release.
This release introduces the select platform featuring these attribute values as well as the ability to switch a schedule.
(@CoMPaTech - #68303) (documentation)
The naming of the locally present outdoor temperature sensor connected to OpenTherm devices has been improved: outdoor_air_temperature.
E.g. former sensor.opentherm_outdoor_temperature is now visible as sensor.opentherm_outdoor_air_temperature.
The use of the zipcode-based outdoor_temperature for other devices has not changed.
(@CoMPaTech - #68303) (documentation)
Breaking
PVOutput
The previously deprecated YAML configuration of the PVOutput integration has been removed.
PVOutput 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 - #67162) (documentation)
All, previously deprecated, additional sensor attributes of the PVOutput sensor, have now been removed. All of these attributes now have their own dedicated sensor.
This applies to the following PVOutput attributes:
energy_generationpower_generationenergy_consumptionpower_consumptionefficiencytemperaturevoltage
If you relied on these in your automations or scripts, you need to adopt those to use the new separate sensors instead.
(@bdraco - #68481) (documentation)
Breaking
Recorder
The following breaking changes are only breaking if you consume the Home Assistant Core database manually or in custom integrations; For example, when using custom queries or doing data analytics on your database.
Attributes are now stored in a state_attributes table, storing the same set of attributes once (many to one relationship).
Attributes represent roughly 21% of the database size. (28% if you exclude statistics). On a few of the analyzed production instances, attributes ranged from 82-88% duplicates of another set of attributes. Expected is that this change will reduce the database size by roughly between 13-16% on average.
(@bdraco - #68224) (documentation)
The domain column has been removed from the states table. The domain can be derived from the entity_id.
(@bdraco - #68404) (documentation)
The attributes for the sun.sun entity are no longer recorded in the database.
As historical data can be derived from the astral library without the need to fetch it from the database, it was decided to remove the sun attributes from the database since it frequently generates new attribute rows in the database.
(@bdraco - #68404) (documentation)
Integrations and platforms can now provide hints to the recorder to exclude specific entity state attributes from being recorded.
This excludes attributes that hold little to no historical value or are a static value. This significantly reduces the amount of data stored.
The following attributes are no longer recorded:
- For all entities:
attributionandsupported_features. - Camera:
tokenandentity_picture. - Climate:
hvac_modes,fan_modes,swing_modes,min_temp,max_temp,min_humidity,max_humidity,target_temp_step, andpreset_modes. - Fan:
preset_modes. - Light:
color_modes,min_mireds,max_mireds, andeffect_list. - Media Player:
entity_picture_local,source_list,media_postition, andmedia_postition_updated_at. - Water Heater:
operation_list,min_temp, andmax_temp. - Humidifier:
min_humidity,max_humidity, andavailable_modes. - Number:
min,max,step, andmode. - Select:
options. - Siren:
available_tones. - Vacuum:
fan_speed_list. - Weather:
forecast.
(@bdraco - #68404 #69155 #69156 #69158 #69159 #69165 #69192 #69193 #69194 #69195 #69196 #69199)
Breaking
RFXCOM RFXtrx
Support for signal repetition for devices has been removed. RFXCOM internally repeats packets as needed per protocol.
(@elupus - #67675) (documentation)
Breaking
Sensibo
Sensibo Air devices with an active room sensor (as the main measurement sensor) will now retrieve the temperature and humidity from the room sensor.
(@gjohansson-ST - #66949) (documentation)
The previously deprecated YAML configuration of the Sensibo integration has been removed.
Sensibo 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 - #69028) (documentation)
Breaking
SiteSage Emonitor
The avg_power and max_power extra attributes for Emonitor have been removed and now have their own sensors.
(@bdraco - #68479) (documentation)
Breaking
SleepIQ
The sleep number firmness sensor entity in the SleepIQ integration is deprecated and will be removed in a future release. A number entity is available, providing the same information and can be used instead.
(@mfugate1 - #65841) (documentation)
Breaking
SoChain
The SoChain integration has been disabled, its functionality relies on older Python packages we can not provide.
(@emontnemery - #68856) (documentation)
Breaking
Solax
The previously deprecated YAML configuration of the Solax integration has been removed.
Solax 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.
(@balloob - #69003) (documentation)
Breaking
Sonos
Favorites are no longer included in the "Source" dropdown on Sonos devices. These have been moved to the Media Browser and are also available using the media selector (a.k.a. "Play Media") in automation/script builders.
The selectable "Source" dropdown is now limited to static inputs, such as TV and line-in sources.
The media_player.select_source service call will continue to accept favorite names. This compatibility feature may be removed in a future release, but there are no current plans to do so.
This change was done to minimize writes to the database. Each modification to the favorites would rewrite the complete list of favorites in the database for each Sonos device.
(@jjlawren - #67931) (documentation)
Breaking
Supervisor
The binary sensor entities for the Supervisor integration that would show if there was an update available for Home Assistant OS and add-ons have been deprecated and will be removed in Home Assistant 2022.6.
The Supervisor integration now provides update entities to replace the deprecated entities.
(@ludeeus - #68475) (documentation)
Breaking
SwitchBot
The previously deprecated YAML configuration of the SwitchBot integration has been removed.
SwitchBot 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.
(@balloob - #69002) (documentation)
Breaking
Synology DSM
The binary sensor entity that would show if there was an update available for the Synology DSM firmware has been deprecated and will be removed in Home Assistant Core 2022.6.
The Synology DSM integration now provides an update entity to replace the deprecated entity.
(@mib1185 - #68664) (documentation)
Breaking
Tankerkoenig
The Tankerkoenig integration migrated to configuration via the UI. Configuring Tankerkoenig via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@mib1185 - #68386) (documentation)
The is_open attribute is removed from all entities and now exposed as its own sensor.
If you have automations or scripts relying on this attribute, you will need to adjust them for this change.
(@mib1185 - #68925) (documentation)
Breaking
Template
Template binary sensors with on or off delay, or trigger-based binary sensors are now initialized to the last state on Home Assistant Core startup, instead of to unknown.
Breaking
Tesla Powerwall
The frequency, current, and voltage attributes on powerwall instant meter sensors are now their own entities.
The is_active attribute has been removed as it can already be derived from the reading. As these sensors generated significant state changes, the new sensors are not enabled by default. They can be enabled in the UI.
(@bdraco - #68345) (documentation)
Breaking
Trafikverket Train
The Trafikverket Train integration migrated to configuration via the UI. Configuring Trafikverket Train via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
Trafikverket Weather Station
The previously deprecated YAML configuration of the Trafikverket Weather Station integration has been removed.
Trafikverket Weather Station 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.
(@tkdrob - #68336) (documentation)
- The attribute for measure time is now a proper iso formatted string.
- The attribute for available has been removed and the entity instead sets its state to unavailable when not available.
Any automation or script depending on these attributes has to be updated to reflect these changes.
Breaking
UniFi Protect
The Unifi Protect last tripped attributes are now their own timestamp sensors. The sensors are not enabled by default to minimize the amount of data stored in the state machine and database. The new sensors can be enabled in the UI.
(@bdraco - #68347) (documentation)
The UniFi Protect Privacy Mode switch is now marked as a configuration entity. This means that these switches are no longer automatically exposed or shown on autogenerated Lovelace dashboards, Google Assistant, Alexa, or HomeKit.
(@balloob - #68954) (documentation)
Breaking
UptimeRobot
This integration now provides a switch entity that will let you pause/resume monitoring of a monitor.
Because of that, you need to use the 'main' UptimeRobot API key; if you previously used that, you will not have to do anything, but if you used the read-only API or a monitor-specific API key, the integration will ask you to reauthorize on the first startup.
To get your API key, go to My Settings on the UptimeRobot website, at the bottom, you will find your key.
(@chemelli74 - #68224) (documentation)
Breaking
Utility Meter
The utility_meter tariff selector entities are now standard select entities with entity_id select.X instead of custom entities with entity_id utility_meter.X.
In addition:
- The service call
utility_meter.select_tariffwith argumenttariffis deprecated in favor of service callselect.select_optionwith argumentoption. - The service call
utility_meter.next_tariffis deprecated with no replacement.
Backwards compatibility until the Home Assistant Core release 2022.7:
- The deprecated
utility_meter.Xentities are still available. - The service call
utility_meter.select_tariffstill works onutility_meter.Xenties, but a warning is logged when it's called. - The service call
utility_meter.next_tariffstill works onutility_meter.Xenties, but a warning is logged when it's called.
In Home Assistant Core release 2022.7:
- The deprecated
utility_meter.Xentities will no longer be available. - The service call
utility_meter.select_tariffwill be removed. - The service call
utility_meter.next_tariffwill be removed.
(@dgomes - #55690) (documentation)
Breaking
Version
The previously deprecated YAML configuration of the Version integration has been removed.
Version 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.
(@balloob - #69010) (documentation)
Breaking
Whois
The previously deprecated YAML configuration of the Whois integration has been removed.
Whois 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 - #67163) (documentation)
Breaking
WLED
The firmware update binary_sensor and button entities are deprecated and will be removed in Home Assistant 2022.6.
Instead, the WLED integration now provides a brand new update entity that replaces the functionality provided by those entities (and offers more functionality).
(@frenck - #68454) (documentation)
Breaking
Yale Smart Alarm
The previously deprecated YAML configuration of the Yale Smart Alarm integration has been removed.
Yale Smart Alarm 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 - #69025) (documentation)
Breaking
Yamaha Music Cast
The previously deprecated YAML configuration of the Yamaha Music Cast integration has been removed.
Yamaha Music Cast 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 - #69033) (documentation)
Breaking
Z-Wave JS
The Z-Wave JS siren entities will now return unknown as a state if the corresponding driver value is missing.
Previously the state defaulted to off in these cases. You might need to consider this in automations and scripts that rely on a Z-Wave JS siren entity state.
(@MartinHjelmare - #67172) (documentation)
The selected fan speed has changed at specific percentages for Inovelli LZW36 fan controllers. Setting the percentage to 1% will no longer enable the 'breeze' mode; that functionality is instead accessed through a preset.
(@mkowalchuk - #60947) (documentation)
Note
Farewell to the following
The following GPIO Integrations have been previously deprecated and have now been removed.
- BeagleBone Black GPIO
- BH1750
- Blinkt!
- BMP280 Environmental Sensor
- Bosch BME280 Environmental Sensor
- Bosch BME680 Environmental Sensor
- DHT Sensor
- Enviro pHAT
- HTU21D(F) Sensor
- MCP23017 I/O Expander
- MH-Z19 CO2 Sensor
- Orange Pi GPIO
- PCAL9535A I/O Expander
- pi4ioe5v9xxxx IO Expander
- PiFace Digital I/O (PFIO)
- Piglow
- pigpio Daemon PWM LED
- Raspberry Pi RF
- Raspihats
- Sense HAT
- Sensirion SHT31
- Time of Flight
More information about the removal of GPIO integrations can be found in Architectural Decision Record 0019.
The following integrations are also no longer available as of this release:
- Apple Push Notification Service (APNS) has been removed. This does not affect our mobile apps! (@frenck - #67158)
- Media Player Classic Home Cinema (MPC-HC), the integration is using web scraping, which is no longer allowed. (@frenck - #67189)
- OpenZWave, was previously deprecated and is now removed. Please use Z-Wave JS instead. (@frenck - #68054)
- SmartHab has been removed. The company behind it has been shut down. (@outadoc - #67874)
- Z-Wave (the old
zwaveintegration), was previously deprecated and is now removed. Please use Z-Wave JS instead. (@frenck - #67221)
From www.home-assistant.io/blog/2022/04/06/release-20224/#farewell-to-the-following
2022.4.1 – 2022.4.7: no action items (7 versions)
2022.5.0 2022-05-04
37 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/05/04/release-20225/#backward-incompatible-changes
Breaking
Configuration Menu
This release contains several changes to the configuration menu. These are the most important changes.
- The
Configurationmenu has been renamed toSettings. Helpersmoved toDevices & services.Blueprintsmoved toAutomations & Scenes.Areasis now grouped with `Zones.- Dashboard
Resourcesmoved to overflow menu*. - A brand new
Systemmenu housing all system-related settings:
- The
Restartbutton is available in theSystemmenu. - New
Updatesmenu, which also now provides the ability to join or leave the beta channel from the overflow menu*. - All logs moved to
Logs(Supervisor, audio, etc). Backupsmoved from the Supervisor/Main menu to here.Networknow has all network related settings previously in the General settings and Supervisor.Storageprovides information about used space, eMMC Lifetime, and also provides theMove datadiskfeature in the overflow menu*.Hardwarenow has theRebootandRestart Hostcontrols,Available Hardwareis available in the overflow menu*.System Healthmoved to its own menu item in the system menu.- Processor and memory usage was moved into the new
System Healthmenu. - The integration list with timings, previously shown in the
Aboutmenu, is moved into the newSystem Healthmenu.
Additionally, the developers tools has a brand new YAML tab, which contains the buttons and tools to reload and check your YAML configuration. This was previously known as "Server Controls", but now moved to the developer tools.
* The overflow menu is the menu you see when you click on the three vertical dots in the top right of your screen.
Breaking
Temperature conversion
Sensors reporting a temperature but not setting device class to temperature will no longer have their values automatically converted. For sensors that are manually configured, users need to set the device class. If the integration providing the sensor does not support setting device class, the sensor's state can be filtered through a template sensor.
(@emontnemery - #69069)
Breaking
AVM FRITZ!Box Call Monitor
The previously deprecated YAML configuration of the AVM FRITZ!Box Call Monitor integration has been removed.
AVM FRITZ!Box Call Monitor 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.
(@cdce8p - #70829) (documentation)
Breaking
AVM FRITZ!Box Tools
The binary sensor entity showing that an update is available for the FRITZ!Box firmware has been deprecated and will be removed in Home Assistant 2022.7.
The AVM FRITZ!Box Tools integration now provides an update entity as a replacement.
(@Mask3007 - #70096) (documentation)
Breaking
BMW Connected Drive
All bmw_connected_drive.* services are removed (deprecated since 2022.2). Please use the new button entities with the button.press service instead.
(@rikroe - #69808) (documentation)
The button.<your_vehicle_refresh entity is deprecated and will be removed in a future version. Please use the homeassistant.update_entity service with any BMW entity to force-refresh all platforms from the BMW API.
(@rikroe - #67003) (documentation)
Breaking
deCONZ
Migrating deCONZ Siren entities from switch platform to siren platform has been removed. This only affects users upgrading from before 2021.10 to 2022.5 or later. At most, this causes lingering unavailable switch entities; which can be manually removed.
(@Kane610 - #70600) (documentation)
Migrated deCONZ light entities of type "On/Off Output" to switch from light platform as they are binary devices (only on/off).
(@Kane610 - #70598) (documentation)
Breaking
Energy
The internal cost and compensation sensor entities, used by the energy dashboard of Home Assistant, are now hidden by default.
(@frenck - #70378) (documentation)
Breaking
Fibaro
Fibaro lights no longer support deprecated white_value, use rgbw_color instead.
(@rappenze - #69189) (documentation)
Breaking
Flick Electric
Units changed from cents to ¢/kWh. This more accurately represents the type of value, and makes the sensor work when used in the Energy dashboards.
If you relied on this unit of measurement format in your automations, scripts, or have been recording it in an external time metrics database, you may need to adapt to this change.
(@ZephireNZ - #69396) (documentation)
Breaking
History Stats
The pretty formatted value attribute has been removed in favor of using the new duration state class, which is formatted by the frontend.
This change significantly reduces the number of rows stored in the database.
(@bdraco - #70720) (documentation)
Breaking
HomeKit
The device class carbon_dioxide is no longer admitted as a binary_sensor device class; as it is not a valid device class for a binary sensor. If you have overridden the device class with customize you need to adjust your configuration.
(@epenet - #69239) (documentation)
Breaking
IKEA TRÅDFRI
The native IKEA TRÅDFRI groups are now removed. We propose using light groups instead.
Additionally, the previously deprecated YAML configuration of the IKEA TRÅDFRI integration has been removed.
IKEA TRÅDFRI 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.
(@ggravlingen - #68033) (documentation)
Breaking
Integration - Riemann sum integral
The Integration sensor unit configuration parameter was deprecated in Home Assistant Core release 2021.10 and is now removed as it did not take unit_prefix and unit_time into account.
Example:
sensor:
- platform: integration
source: sensor.current_power
name: energy_spent
unit_prefix: k
unit_time: h
unit: MWs
round: 2
The configuration in the example would cause the source sensor's unit (e.g., W) to be overruled and the integration sensor's unit_of_measurement would be set to MWs (MegaWatt-Second) even though the integral calculation was performed with k (kilo) and h (hour), i.e., the value of the integration sensor is in kWh, not MWs.
(@dgomes - #69157) (documentation)
Breaking
LIFX
The LIFX integration changed the network adapters used to discover LIFX devices. Instead of enabling all adapters on which LIFX devices appear, it now only uses the adapter(s) enabled in Home Assistant.
This makes the discovery of LIFX faster and more reliable.
(@Djelibeybi - #70458) (documentation)
Breaking
Media Player
Media Player now supports a new state, buffering. Integrations supporting this state previously reported playing but may now report buffering. This may also introduce new state transitions between the two states during playback.
In order to maintain previous behavior, replace usage of playing with both the buffering and playing states, and consider how to handle transitions between the two.
(@emontnemery - #70863) (documentation)
Breaking
Media Source
Filenames and directories starting with a . will no longer appear in the Media Browser.
If the file or directory name starts with a ., it means they are marked hidden; thus, the media browser will now respect that.
(@DDanii - #69820) (documentation)
Breaking
Min/Max
min_max sensors generated a significant amount of database rows because they included all attributes regardless of the configured type. For active sensors, these attributes added up to multiple megabytes per day for each sensor. Reference issue report.
min_max sensors now only set attributes based on the configured type of sensor as below:
min:min_entity_idmax:max_entity_idlast:last_entity_id
The following attributes are no longer present: min, max, mean, median, last, count_sensors
If access to the data previously provided by the attributes is needed, create a separate min_max sensor for that required type instead.
(@bdraco - #70142) (documentation)
Breaking
MJPEG IP Camera
The previously deprecated YAML configuration of the MJPEG IP Camera integration has been removed.
MJPEG IP Camera 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 - #68033) (documentation)
Breaking
ONVIF
The previously deprecated YAML configuration of the ONVIF integration has been removed.
ONVIF 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.
(@hunterjm - #70395) (documentation)
Breaking
Pentair ScreenLogic
The original orp_supply_level and ph_supply_level sensors will become unavailable. Two new sensors will be automatically created, but the originals will have to be removed and the new ones manually renamed to match the originals.
This should only affect those with IntelliChem.
(@dieselrabbit - #69937) (documentation)
Breaking
Phone Modem
The previously deprecated modem_callerid.reject_call service has now been removed. A button entity has previously been made available as a replacement.
(@frenck - #69019) (documentation)
Breaking
Radarr
The previously deprecated "Wanted" sensor in the Radarr integration has been removed. If you have this sensor still configured in your YAML configuration, you should remove it before updating.
(@tkdrob - #69500) (documentation)
Breaking
RainMachine
RainMachine zone switches no longer have the time_remaining attribute; instead, each zone now has a separate sensor entity (device class of timestamp, entity category of diagnostic) that shows the datetime at which the zone will finish (or last finished if the zone isn't running).
(@bachya - #69206) (documentation)
RainMachine switch attributes that are floats are now rounded to two decimals of precision.
(@bachya - #70006) (documentation)
Breaking
Recorder
Home Assistant will now automatically repack your database once a month, on the second Sunday of the month.
Repacking allows shrinking the database in file size, resulting in smaller backups. It also frees up the space that has been freed up by the database optimizations made in 2022.4.
Some notes:
- It is only done once a month to minimize I/O.
- The second Sunday was chosen as it would be out of sync with Home Assistant releases.
- This automatic repacking can be disabled by setting
auto_repacktofalsein the recorder configuration.
(@bdraco - #69314) (documentation)
It's no longer possible to configure the recorder to use an in-memory database.
(@emontnemery - #69616) (documentation)
Integrations and platforms can provide hints to the recorder to exclude specific entity state attributes from being recorded.
This excludes attributes that hold little to no historical value or are a static value. This significantly reduces the amount of data stored.
The following attributes are no longer recorded:
- Automation:
current,id,last_action,last_triggered,maxandmode. - Input Boolean:
editable. - Input Button:
editable. - Input Datetime:
editable,has_date, andhas_datetime. - Input Number:
editable,max,min,mode, andstep. - Input Text:
editable,max,min,mode, andpattern. - Input Select:
editable.
Breaking
SABnzbd
The SABnzbd integration migrated to configuration via the UI. Configuring SABnzbd via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@shaiu - #68138) (documentation)
Breaking
Sensibo
The binary sensor for the update available has been removed. Use the new update entities to monitor available updates instead.
Breaking
Sonos
The sonos_group attribute on Sonos media players has been renamed to group_members to align with other integrations.
(@jjlawren - #70924) (documentation)
Breaking
SQL
The SQL integration migrated to configuration via the UI. Configuring SQL via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
Breaking
Steam
The Steam integration migrated to configuration via the UI. Configuring Steam via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
The first account listed in the YAML configuration will be considered as your Steam ID as there is no way to identify your Steam ID from your API key. You can put your Steam ID as the first entry in accounts before updating, or set up the integration from scratch.
(@tkdrob - #67261) (documentation)
Breaking
Synology DSM
The naming of entities and devices has been aligned, so that the device name is now part of the entity name.
(@mib1185 - #69754) (documentation)
Breaking
Tautulli
The Tautulli integration migrated to configuration via the UI. Configuring Tautulli via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@tkdrob - #57450) (documentation)
Breaking
Templates
Trigger-based template sensors are now initialized to the last known state at Home Assistant startup, instead of to "unknown".
(@emontnemery - #69344) (documentation)
Breaking
text-to-speech (TTS)
The TTS base_url option is deprecated. Please, configure internal/external URL instead.
(@balloob - #70382) (documentation)
Breaking
UPnP/IGD
The UPnP/IGD integration options have been removed. This includes the ability to configure a custom update/scan interval.
As an alternative, the more generic and more flexible homeassistant.update_entity service can be used to create an automation that updates the entities on your desired intervals or schedule.
(@StevenLooman - #69134) (documentation)
Breaking
Vera
Vera power meter sensor is now using the (correct) symbol W for watt instead of watts.
If you relied on this unit of measurement format in your automations, scripts, or have been recording it in an external time metrics database, you may need to adapt to this change.
(@emontnemery - #69285) (documentation)
Breaking
Z-Wave JS
With this release, you will need to update your zwave-js-server instance.
- If you use the zwave_js add-on, you need to have at least version
0.1.56. - If you use the Z-Wave JS 2 MQTT add-on, you need to have at least version
0.38.0. - If you use the zwavejs2mqtt Docker container, you need to have at least version
6.7.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.16.0.
(@raman325 - #70464) (documentation)
Breaking
Zengge
Zengge lights no longer support white_value, please use white instead.
(@emontnemery - #55260) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Arlo has been removed. It was in a broken state for a long time caused by authentication changes upstream. (@anaisbetts - #70330)
- Digital Loggers has been removed. It relied on web scraping, which is not allowed for a Home Assistant Core integration. (@tkdrob - #69939)
- Updater was previously deprecated and has been removed. Use the Version and Analytics integrations as a replacement. (@frenck - #68981)
From www.home-assistant.io/blog/2022/05/04/release-20225/#farewell-to-the-following
2022.5.1 – 2022.5.5: no action items (5 versions)
2022.6.0 2022-06-01
42 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/06/01/release-20226/#backward-incompatible-changes
Breaking
MQTT
Defining manually configured MQTT entities directly under the respective platform keys (e.g., fan, light, sensor, etc.) is deprecated, and support will be removed in Home Assistant Core 2022.9.
Manually configured MQTT entities should now be defined under the mqtt configuration key in configuration.yaml instead of under the platform key.
As an example, this is now deprecated:
sensor:
- platform: "mqtt"
name: "My sensor"
state_topic: "some-state-topic"
The configuration needs to be updated to this format:
mqtt:
sensor:
- name: "My sensor"
state_topic: "some-state-topic"
(@jbouwh - #71676 #72183 #72281 #72249 #72271 #72167 #72165 #72251 #72279 #72268 #72272 #72273 #72274 #72278 #72270) (documentation)
Breaking
Template filter/function defaults
The following template filters and functions will now error instead of returning the input if the input is invalid and no default value is specified:
acosas_timestampasinatanatan2cosfloatintlogmultiplyroundsinsqrtstrptimetantimestamp_customtimestamp_localtimestamp_utc
Examples:
{{ "abc" | float }}: Will fail to render{{ "abc" | float(default=5) }}: Will render as 5, no warning will be logged{{ float("abc") }}: Will fail to render{{ float("abc", default=5) }}: Will render as 5, no warning will be logged
(@emontnemery - #71687) (documentation)
Breaking
OAuth2 (re-)authentications
Home Assistant will now use My Home Assistant to redirect the OAuth2 callback over.
If you need to re-authenticate with an existing OAuth2 application in the future, you might need to adjust the external application configuration. Please check the documentation of the specific integration on how to configure this.
(@frenck - #72449) (documentation)
Breaking
Home Assistant Container
If you run Home Assistant Container in Docker (e.g., using Portainer, Docker (Compose), QNAP, and others), please make sure you are not specifying an init process.
This can be an init configuration option in your Docker management tools or Docker Compose, or the --init command line flag on the raw Docker command. These should NOT be set, as Home Assistant ships with the S6 init system.
While you are at it, make sure you also do not set a cmd or entrypoint. Setting these are not breaking, however, you should not set them.
(@pvizeli - #72425) (documentation)
Breaking
1-Wire
Using the 1-Wire via SysBus, previously deprecated, has been removed; this integration is being adjusted to comply with Architectural Decision Record 0019; more information can be found here:
https://github.com/home-assistant/architecture/blob/master/adr/0019-GPIO.md
ℹ️ Using the 1-Wire via OWServer is still supported!
(@epenet - #71232) (documentation)
Breaking
Aladdin Connect
The Aladdin Connect integration migrated to configuration via the UI. Configuring Aladdin Connect via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@mkmer - #68304) (documentation)
Breaking
BMW Connected Drive
The binary_sensor.<your_vehicle>_lights_parking has been removed. It is not provided by API anymore.
The following sensors have been renamed. Existing sensors with historical data and automations should be migrated automatically:
sensor.<your_vehicle>_charging_level_hvtosensor.<your_vehicle>_remaining_battery_percentsensor.<your_vehicle>_fuel_percenttosensor.<your_vehicle>_remaining_fuel_percent
(@rikroe - #71827) (documentation)
Breaking
Deluge
The previously deprecated YAML configuration of the Deluge integration has been removed.
Deluge 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.
(@tkdrob - #71487) (documentation)
Breaking
Discord
The previously deprecated YAML configuration of the Discord integration has been removed.
Discord 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 - #71696) (documentation)
Breaking
DuneHD
The previously deprecated YAML configuration of the DuneHD integration has been removed.
DuneHD 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 - #71694) (documentation)
Breaking
File Size
The previously deprecated YAML configuration of the File Size integration has been removed.
File Size 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 - #71692) (documentation)
Breaking
Google Calendars
The configuration of the OAuth application credentials for the Google Calendars integration has migrated to configuration via the UI. Configuring Google Calendars OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
All entity tracking state has been migrated to use the standard Home Assistant entity enable/disable features in the user interface and system options.
(@allenporter - #72288) (documentation)
The found_calendar service has been removed from Google Calendars. This service is an internal implementation detail of the integration used for creating calendars found from the API, which is now no longer exposed as a service.
(@allenporter - #72260) (documentation)
Breaking
HERE Travel Time
The HERE Travel Time integration migrated to configuration via the UI. Configuring HERE Travel Time via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@eifinger - #69212) (documentation)
Breaking
Home Connect
The configuration of the OAuth application credentials for the Home Connect integration has migrated to configuration via the UI. Configuring Home Connect OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #71988) (documentation)
Breaking
Honeywell Lyric
The configuration of the OAuth application credentials for the Honeywell Lyric integration has migrated to configuration via the UI. Configuring Honeywell Lyric OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #72335) (documentation)
Breaking
International Space Station (ISS)
The previously deprecated YAML configuration of the International Space Station (ISS) integration has been removed.
International Space Station (ISS) 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 - #71693) (documentation)
Breaking
Jandy iAqualink
The previously deprecated YAML configuration of the Jandy iAqualink integration has been removed.
Jandy iAqualink 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.
(@epenet - #72404) (documentation)
Breaking
KNX
A new configuration key for KNX covers invert_updown can be set to invert the up-down payload (binary) of covers independently of the position percentage.
Previously up-down (move_long_address) payloads were inverted when invert_position: true was configured. This now only inverts the position_address and position_state_address payloads (%).
If you have used invert_position: true for covers, you would need to add the new key to your YAML config to have the same behaviour as before.
knx:
cover:
- name: "Example cover"
move_long_address: "3/0/0"
move_short_address: "3/0/1"
position_address: "3/0/3"
position_state_address: "3/0/2"
invert_updown: true # <- add this line to keep inversion of up/down payload
invert_position: true
(@farmio - #72012) (documentation)
Breaking
Litter-Robot
The Litter-Robot vacuum entity will now enter an unavailable state when the robot hasn't sent an update recently.
(@natekspencer - #70810) (documentation)
The clean_cycle_wait_time_minutes, status_code, and last_seen attributes have been removed from the vacuum entity as they are now available as individual entities.
(@natekspencer - #71760) (documentation)
Breaking
Logbook
If the stop and start event were fired within the exact same minute, we would previously show it as restarted in the logbook. When events crossed the minute boundary (i.e., we fired stop at 11:30:59 and start at 11:31:04), it would show separately as stopped and then start.
This change eliminates the inconstancy by always showing them as stopped and started, which allows us to simplify how we generate logbook rows.
(@bdraco - #71600) (documentation)
The entity name in the logbook is now always shown with the current name instead of the old name if it was renamed. If the entity no longer exists, we now show the original entity_id instead, which aligns with the warning icon we already display in the frontend when a state is missing or removed.
(@bdraco - #71895) (documentation)
Breaking
Neato Botvac
The configuration of the OAuth application credentials for the Neato Botvac integration has migrated to configuration via the UI. Configuring Neato Botvac OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #72175) (documentation)
Breaking
Netatmo
The configuration of the OAuth application credentials for the Netatmo integration has migrated to configuration via the UI. Configuring Netatmo OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #71884) (documentation)
Breaking
Nexia
The zone status attribute has been removed from the climate entity. The zone status is already available as a separate sensor, and it was producing duplicate data in the state machine.
(@bdraco - #72176) (documentation)
Breaking
Nexia/American Standard/Trane
Remove non-standard humidify_supported and dehumidify_supported attributes from Nexia.
These attributes can already be inferred from the dehumidify_setpoint or humidify_setpoint attributes.
As they took up space in the database every time any of the values changes, they have now been removed.
(@bdraco - #71248) (documentation)
Breaking
nVent RAYCHEM SENZ
The configuration of the OAuth application credentials for the nVent RAYCHEM SENZ integration has migrated to configuration via the UI. Configuring nVent RAYCHEM SENZ OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #72338) (documentation)
Breaking
Recorder
De-duplicate event data into a new event_data table
Data is no longer stored in the event.event_data column and instead deduplicated into the event_data.shared_data column and joined on event.data_id==event_data.data_id.
This is the same as we did with state attributes in 2022.4, as we can reduce the size of the events table by ~8-14% on avg.
(@bdraco - #71135) (documentation)
- All the data needed to fetch a
state_changedevent is now available in thestatestable (along withstate_attributesif needed). - Reduces overall database size by ~27%
- Refactors logbook to work without the need for the
state_changedeventsrows (fetched fromstates). - Refactors purge to work without the need for linking the
state_changedevent. - Origin is now stored as an integer.
(@bdraco - #71165) (documentation)
The following attributes are no longer recorded for group entities:
entity_idorderauto
These attributes provide no historical value since they are already contained in the YAML configuration and only fill up the database.
(@bdraco - #71256) (documentation)
The recorder now refuses to set up if the database dialect is unsupported or if the database dialect is supported, but the version is too old.
(@emontnemery - #70888) (documentation)
Breaking
Scrape
The scape integration performance has been improved by using the lxml parser.
Testing (YMMV based on content and nesting):
- For large documents (5000k tags) it was at least an order of magnitude faster.
- For small documents, it was ~3x faster.
Users who are not using Home Assistant Operating System or Home Assistant Container will need to ensure libxml2 and libxslt are installed.
For example, on Debian based Home Assistant Core installs, run: sudo apt install libxml2
(@bdraco - #71087) (documentation)
Breaking
Slack
The Slack integration migrated to configuration via the UI. Configuring Slack via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@tkdrob - #69880) (documentation)
Breaking
Somfy
Somfy has replaced their Somfy Open API (cloud-based) with a local API (which we Home Assistant users absolutely love). Somfy has now decided to shut down its cloud API after June 21st, 2022.
Please migrate to use the Overkiz integration as a replacement.
Unfortunately, a migration to Overkiz is not possible due to differences in the authentication mechanism.
(@iMicknl - #71653) (documentation)
Breaking
Sonos
The sonos.join and sonos.unjoin services will be removed in 2022.8 in favor of the standard media_player.join and media_player.unjoin services.
(@jjlawren - #71226) (documentation)
Breaking
Spotify
The configuration of the OAuth application credentials for the Spotify integration has migrated to configuration via the UI. Configuring Spotify OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #71871) (documentation)
Breaking
Squeezebox (Logitech Media Server)
The Squeezebox player synchronization framework has been updated to use the standard media_player.join and media_player.unjoin services. The list of synchronized players is now stored in the group_members state attribute.
The squeezebox.sync and squeezebox.unsync services are now deprecated, and will be removed in two releases in favor of the standard services listed above.
The sync_group state attribute is deprecated in favor of group_members, and will also be removed in two releases.
(@rajlaud - #70962) (documentation)
Breaking
Templates
Support for white_value is deprecated in template light and will be removed in Home Assistant Core 2022.9.
(@emontnemery - #71044) (documentation)
Breaking
Trafikverket Train
The previously deprecated YAML configuration of the Trafikverket Train integration has been removed.
Trafikverket Train 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.
Breaking
Universal Devices ISY994
The auxiliary sensors for each Insteon device are now their own sensor entity instead of an attribute on the parent entity. This makes them easier to find and allows attributes to be de-duplicated in the database.
(@bdraco - #71254) (documentation)
Breaking
Vera
The Vera integration previously migrated to configuration via the UI. Configuring Vera via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration has already been automatically imported; and thus can be safely removed from your YAML configuration after upgrading.
(@epenet - #72418) (documentation)
Breaking
Version
The Boards "Intel NUC", "RaspberryPi" (Raspberry Pi 1 devices), and "RaspberryPi Zero-W" are no longer supported in Home Assistant OS.
They are also no longer available in the version integration. Please remove the version integrations for those boards.
(@agners - #72085) (documentation)
Breaking
Viessmann ViCare
The previously deprecated YAML configuration of the Viessmann ViCare integration has been removed.
Viessmann ViCare 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.
(@epenet - #72408) (documentation)
Breaking
Withings
The configuration of the OAuth application credentials for the Withings integration has migrated to configuration via the UI. Configuring Withings OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #71990) (documentation)
Breaking
WLED
The previously deprecated WLED update button entity has been removed. Please use the newly provided update entity instead.
(@frenck - #71775) (documentation)
Breaking
Xbox
The configuration of the OAuth application credentials for the Xbox integration has migrated to configuration via the UI. Configuring Xbox OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing OAuth application credentials in the YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #71908) (documentation)
Breaking
Z-Wave JS
With this release, you will need to update your zwave-js-server instance.
- If you use the zwave_js add-on, you need to have at least version
0.1.60. - If you use the Z-Wave JS 2 MQTT add-on, you need to have at least version
0.41.0. - If you use the zwavejs2mqtt Docker container, you need to have at least version
6.10.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.17.0.
(@raman325 - #72395) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Raspberry Pi GPIO has been previously deprecated and now removed. More information can be found in Architectural Decision Record 0019.
From www.home-assistant.io/blog/2022/06/01/release-20226/#farewell-to-the-following
2022.6.1 – 2022.6.7: no action items (7 versions)
2022.7.0 2022-07-06
33 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/07/06/release-20227/#backward-incompatible-changes
Breaking
Python 3.10
Home Assistant now ships with Python 3.10 for the following installation methods:
- Home Assistant Operating System
- Home Assistant Container
- Home Assistant Supervised
You don't have to do anything; this will all happen automatically. However, this might be a breaking change in case you are using custom integration that does not support Python 3.10 yet.
(@pvizeli - #73830) (documentation)
Breaking
Bluetooth (multiple integrations)
Home Assistant is upgrading to Python 3.10 this release and comes with a breaking change affecting multiple integrations.
Known affected integrations at the time of writing:
- BeeWi SmartClim BLE sensor
- Bluetooth Tracker
- Elgato Avea
- EQ3 Bluetooth Smart Thermostats
- Leviton Decora
- Mi Flora
- Switchmate SimplySmart Home
- Zengge
These integrations rely on the bluepy and pybluez libraries, which no longer work in newer versions of Python. bluepy has seen its last update in December 2018 and hasn't kept up with changes in the Python world. Similar story with pybluez.
We can't mitigate this issue. If you are using one of these integrations, these will no longer work. We rather wanted to see a non-breaking solution, but we saw no backward compatible path or other solutions to aid this.
If you would like to help fix or upgrade one of these integrations, we would be grateful. We recommend migrating these integrations onto the Bleak library instead.
(@pvizeli - #73830) (documentation)
Breaking
Entity filters (multiple integrations)
All entity filters, as used by the following integrations:
Have been adjusted to make entity filters handle includes stronger than excludes.
Filters are now applied as follows when there are domain and glob includes (may also have excludes):
- Entity listed in entities include: include
- Otherwise, entity listed in entities exclude: exclude
- Otherwise, entity matches glob include: include
- Otherwise, entity matches glob exclude: exclude
- Otherwise, entity matches domain include: include
- Otherwise: exclude
(@bdraco - #74080) (documentation)
Breaking
Weather (multiple integrations)
This applies to all (weather) integrations providing weather entities.
Previously the units for Weather had not been corresponding correctly with the documentation. These units are now aligned for pressure and wind speed:
- If the unit system is metric, the default pressure unit is
hPa, and the default wind speed unit iskm/h. - If the unit system is imperial, the default pressure unit is
inHg, and the default wind speed unit ismi/h.
Breaking
Eight Sleep
The Eight Sleep integration migrated to configuration via the UI. Configuring Eight Sleep via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@raman325 - #72570) (documentation)
Breaking
Glances
The previously deprecated YAML configuration of the Glances integration has been removed.
Glances 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.
(@engrbm87 - #72706) (documentation)
Breaking
Google Calendars
The Google Calendar google.scan_for_calendars service has been removed. Similar functionality can be achieved with the homeassistant.reload_config_entry service, which will reload the integration and load all new calendars from the API.
(@allenporter - #73010) (documentation)
The Google Calendar add_event service is deprecated and will be removed in a future Home Assistant release.
A new service create_event with equivalent functionality is its replacement, which is an entity-based service that takes an entity as a target (rather than a Google Calendar ID).
(@allenporter - #72473) (documentation)
Google Calendars no longer supports entity customizations in the UI when google_calendars.yaml specifies the same entity multiple times.
(@allenporter - #73715) (documentation)
Breaking
Hunter Douglas PowerView
Top Down/Bottom Up shades will now have an entity to control each motor. You will need to manually remove any old entities by selecting the unavailable entities from the Home Assistant Interface, selecting "REMOVE ENTITY", and then confirming the removal by clicking "REMOVE".
- If you have automations to set shade position based on entity ID, you will need to reconfigure these as the new entities will be named differently.
- If you only have automations set to trigger scenes you do not need to reconfigure automations.
(@kingy444 - #62788) (documentation)
Breaking
Islamic Prayer Times
The previously deprecated YAML configuration of the Islamic Prayer Times integration has been removed.
Islamic Prayer Times 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.
(@engrbm87 - [#7287248332]) (documentation)
Breaking
Kostal Plenticore
The Kostal Plenticore now has number entities. Two existing sensors entities have been promoted to this platform: "Battery min Soc" and "Battery min Home Consumption".
If you use these sensors entities in your automation, scripts, or dashboards, you will need to adjust these for this change.
(@stegm - #64927) (documentation)
Breaking
LG Soundbars
The LG Soundbars integration migrated to configuration via the UI. The automatic discovery of the integration via legacy discovery has been removed.
This change has no possible migration path; therefore, if you use this integration, you will have to re-add it manually via the user interface.
Breaking
Life360
Overview
The Life360 integration has been converted from the old "legacy" implementation (which uses known_devices.yaml) to the newer entity based design, similar to what was done back in the 0.94.0 release to many other device tracker integrations.
Due to this change, all your existing Life360 entities will become non-functional, and there will be new entities, with different entity IDs, that are functional.
Steps to replace old entities with new ones
- Edit the
known_devices.yamlfile in your configuration directory to
remove any Life360-related entries. Or, if there are only Life360 entries in this file, simply delete the file entirely.
- Restart Home Assistant. All the old, non-functional Life360 entities
should now be gone. (If you are still seeing the old entities, try refreshing your browser.)
- Go to the Entities page (under Settings -> Devices & services -> Entities)
and change the entity IDs for the new Life360 entities as desired.
Removed/changed functionality
The previously deprecated YAML configuration of the Life360 integration has been removed.
Life360 is now configured via the UI. Any "advanced" options in YAML configuration will be imported. Once the migration is complete, any life360 entries in YAML configuration should be removed.
The following options are no longer supported:
circlesmemberserror_thresholdwarning_thresholdmax_update_wait(including thelife360_update_overdue&life360_update_restoredevents)show_as_state: moving
Additionally, the following entity attributes have been changed:
- Renamed:
battery->battery_level - Removed:
moving,raw_speed
If you have been using these attributes in your automations or script, you'll need to adapt them to this change.
(@pnbruckner - #72461 #73904) (documentation)
Breaking
Mazda Connected Services
The start_engine, stop_engine, turn_on_hazard_lights, turn_off_hazard_lights, start_charging, and stop_charging services are removed from the Mazda integration.
They were deprecated in 2022.4 and replaced by button and switch entities.
(@bdr99 - #73403) (documentation)
Breaking
Met Office
Met Office doesn't provide precise visibility distance, only ranges - i.e., something like "Very good - 20-40 km".
This doesn't fit into the weather entity model, so it's now removed. The old value is still available in a separate sensor provided by this integration.
(@avee87 - #74314) (documentation)
Breaking
Mikrotik
The previously deprecated YAML configuration of the Mikrotik integration has been removed.
Mikrotik 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.
(@engrbm87 - #72581) (documentation)
Breaking
MySensors
The previously deprecated YAML configuration of the MySensors integration has been removed.
MySensors 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.
Breaking
Nest
The Nest authentication method called "Desktop", "Installed App" or "OOB" auth has been deprecated by Google and is scheduled to break existing users in October.
As a result, the Home Assistant Nest integration setup has been streamlined to help make the transition easier for users. See the integration documentation for details.
The configuration of the OAuth application credentials for the Nest integration has migrated to configuration via the UI. Configuring Nest OAuth application credentials via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
If you were already using Web Auth, your existing Nest application credentials in the YAML configuration are automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@allenporter - #73050) (documentation)
Breaking
Notifications for Android TV / Fire TV
The previously deprecated YAML configuration of the Notifications for Android TV / Fire TV integration has been removed.
Notifications for Android TV / Fire TV 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.
(@engrbm87 - #73227) (documentation)
Breaking
NZBGet
The previously deprecated YAML configuration of the NZBGet integration has been removed.
NZBGet 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.
(@epenet - #72424) (documentation)
Breaking
Radio Thermostat
The Radio Thermostat integration migrated to configuration via the UI. Configuring Radio Thermostat via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@bdraco - #72874) (documentation)
Radio Thermostat's hold mode is now configured using a switch. This replaces the original YAML configuration option named hold_temp.
The integration now only synchronizes time when loaded if the hold mode is not active. Synchronizing the time when the hold mode is active causes the hold mode to disable unexpectedly.
(@bdraco - #73104) (documentation)
Breaking
Scrape
The default scan interval of the scape sensor has been changed from 30 seconds to a more reasonable 10 minutes; This prevents unneeded hammering of websites by default.
(@balloob - #74285) (documentation)
Breaking
Simplepush
The Simplepush integration migrated to configuration via the UI. Configuring Simplepush via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
(@engrbm87 - #73471) (documentation)
Breaking
SkyBell
The SkyBell integration migrated to configuration via the UI. Configuring SkyBell via YAML configuration has been deprecated and will be removed in a future Home Assistant release.
Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading.
After upgrading, each Skybell will now have a device for each doorbell. Also, it has become unnecessary to prefix all entities with "SkyBell", this may change you existing entities after upgrading and you need to adjust your automation, scripts and dashboard for this change.
(@tkdrob - #70887) (documentation)
The following SkyBell entity attributes have been split out into their own sensors: last motion event, last button event, last check-in, motion threshold, video profile, Wi-Fi SSID, Wi-Fi status.
If you rely on these attributes in your automations or scripts, you will need to adapt them to this change.
(@tkdrob - #73089) (documentation)
Breaking
SmartThings
The following power entity attributes from the climate entity for SmartThings Air Conditioner have been removed and added as separate sensors:
power_consumption_startpower_consumption_endpower_consumption_powerpower_consumption_energy
If you currently use these attributes in your automation or scripts, you'll need to adapt them to this change.
(@mbo18 - #72594) (documentation)
Breaking
SMS notifications via GSM-modem
GSM signal sensor entity was replaced with a set of more granular ones. The old entity will become unavailable after updating to this release.
(@PaulAnnekov - #70486) (documentation)
Breaking
System Bridge
- This integration now requires System Bridge 3.1.2 and above. Any older version will no longer work.
- BIOS Version, Idle, System, and User Load sensors have been removed. These are no longer available from System Bridge data modules.
- Command service has been removed. This has been removed from System Bridge due to potential security issues.
- Open path and URL are now separate services. If you are using the old
system_bridge.openservice, you will need to update your automation to use the new service(s). - GPU entities are from a new source, so they may have changed names slightly. Any automations using these entities may need to be updated.
- GPU fan speed is now measured in RPM instead of %.
(@timmo001 - #71218) (documentation)
Breaking
Tautulli
The previously deprecated YAML configuration of the Tautulli integration has been removed.
Tautulli 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.
(@ludeeus - #74172) (documentation)
Entity attributes of Tautulli entities have now been moved to their own sensors.
If you currently use these attributes in your automation or scripts, you'll need to adapt them to this change.
(@tkdrob - #71712) (documentation)
Breaking
Transmission
The previously deprecated YAML configuration of the Transmission integration has been removed.
Transmission 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.
(@engrbm87 - #72832) (documentation)
Breaking
UniFi Protect
The new disk sensors pull from completely different data than the old ones. They should be largely compatible for functionality, but orphaned sensors may still be created. Any orphaned sensors can be safely deleted.
The sensors' naming format has also changed to match what is shown in UniFi Protect. Additionally, the extra state attribute for the model has been completely removed since now the slot numbers match what UniFi Protect displays.
(@AngellusMortis - #73104) (documentation)
Entities that provided an "edit" configuration interface for Protect devices (like the HDR Switch or Recording Mode Select) have all now been replaced by regular sensor entities; if you do not have write access to that UniFi Protect Device.
These switches, select entities, etc., never actually worked previously since the user did not have permission to change them, but you could read the status.
Any entities that are orphaned by this can be safely deleted.
Breaking
Universal Media Player
An "order of importance" between the states of the children of Universal Media Player has been added. The active media player might change if some of the children are in "playing" and "paused" states, depending on the children's order.
(@koying - #68036) (documentation)
Breaking
UPnP/IGD
The previously deprecated YAML configuration of the UPnP/IGD integration has been removed.
UPnP/IGD 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.
(@epenet - #72410) (documentation)
Breaking
VeSync
The air_quality and filter_life attributes have been removed from the fan entities. Dedicated sensor entities have replaced these attributes.
If you are currently using these attributes in your automation or scripts, you'll need to adapt them to this change.
(@jetpacktuxedo - #72658) (documentation)
Vesync switches that support energy monitoring will have their:
- Voltage attribute moved from the switch entity to a dedicated Voltage Sensor entity
- Weekly, monthly and yearly moved from the switch entity attributes into new energy sensors.
If you used these entity attributes in your automation or scripts, you'd need to adapt them to this change.
(@b3nj1 - #72570) (documentation)
Breaking
Z-Wave JS
With this release, you will need to update your zwave-js-server instance.
- If you use the zwave_js add-on, you need at least version
0.1.64. - If you use the Z-Wave JS 2 MQTT add-on, you need at least version
0.44.0. - If you use the zwavejs2mqtt Docker container, you need at least version
6.13.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.20.0.
(@raman325 - #73707 #73904) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- iAlarm XR has been removed on request by Antifurto365 (manufacturer).
- Somfy has been previously deprecated and now removed. Its cloud API was shut down on June 21st, 2022. Use the Overkiz integration as a replacement.
From www.home-assistant.io/blog/2022/07/06/release-20227/#farewell-to-the-following
2022.7.1 – 2022.7.7: no action items (7 versions)
2022.8.0 2022-08-03
10 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/08/03/release-20228/#backward-incompatible-changes
Breaking
Advantage Air
Each AC will have its own device, different from the one previously created. Any automations or scripts that target the device will need to be corrected.
(@Bre77 - #75395) (documentation)
The previsouly deprecated service advantage_air.set_myzone has been removed. Use the available MyZone select entity instead.
(@Bre77 - #75160) (documentation)
Breaking
Calendar
Calendar description attributes are no longer written into the recorder database.
(@allenporter - #75375) (documentation)
Breaking
HERE Travel Time
The single HERE Travel Time sensor with attributes is split up into separate sensors for Duration, Duration in Traffic, Route, Distance, Origin, Destination.
If you used the entity attributes in your automation or scripts, you will need to adapt them to this change.
(@eifinger - #72405) (documentation)
Breaking
HomeKit Controller
The ecobee Fan mode number entity has been removed as HomeKit Controller now implements fan mode on the climate entity which replaces this functionality.
(@bdraco - #74440) (documentation)
Breaking
LIFX
Each LIFX device now has its own integration entry. The existing entry will be migrated to separate entries automatically as each device is discovered, and will automatically be removed once all devices are found.
Migrating to an integration entry per device allows Home Assistant to take care of discovery IP updates and retries, dramatically improving the integration's reliability.
LIFX can now be configured manually by IP address. DHCP, HomeKit, and native discovery are supported for updating IP addresses to ensure we never lose track of a device.
Advanced YAML configuration is deprecated and will be removed in a future release. Advanced YAML configuration is no longer necessary as the integration now fully utilizes Network Configuration, and can also function without working discovery.
(@bdraco - #74316) (documentation)
Breaking
Logger
Timestamps in the Home Assistant log file now include millisecond-level resolution.
Scripts or external log system that rely on this will need to be updated to handle the extra decimal places.
(@puddly - #74518) (documentation)
Breaking
Material Design Icons
In the latest Material Design Icons update, several icons have been renamed or removed. Removed and renamed icons will continue to work for the next two releases.
Please make sure you update any use of the following MDI icons:
Removed:
mdi:android-messages- Usemdi:message-textinstead.mdi:book-variant-multiple- Usemdi:bookmark-box-multipleinstead.mdi:desktop-mac- Usemdi:monitorinstead.mdi:desktop-mac-dashboard- Usemdi:monitor-dashboardinstead.mdi:discordmdi:google-hometablet-android- Usemdi:tabletinstead.
Renamed:
mdi:diving-scubatomdi:diving-scuba-maskmdi:email-sendtomdi:email-arrow-rightmdi:email-send-outlinetomdi:email-arrow-right-outlinemdi:email-receivetomdi:email-arrow-leftmdi:email-receive-outlinetomdi:email-arrow-left-outlinemdi:format-textdirection-r-to-ltomdi:format-pilcrow-arrow-leftmdi:format-textdirection-l-to-rtomdi:format-pilcrow-arrow-rightmdi:globe-lighttomdi:globe-light-outlinemdi:google-controllertomdi:controllermdi:google-controller-offtomdi:controller-offmdi:lecturntomdi:lecternmdi:mosquetomdi:mosque-outlinemdi:receipttomdi:receipt-textmdi:receipt-outlinetomdi:receipt-text-outlinemdi:silotomdi:silo-outlinemdi:text-to-speechtomdi:microphone-messagemdi:text-to-speech-offtomdi:microphone-message-offmdi:timeline-helptomdi:timeline-questionmdi:timeline-help-outlinetomdi:timeline-question-outlinemdi:vector-pointtomdi:vector-point-select
Breaking
Sonos
The previously deprecated sonos.join and sonos.unjoin services have been removed in favor of the standard media_player.join and media_player.unjoin services.
(@jjlawren - #74476) (documentation)
Breaking
SwitchBot
The Bluetooth integration must be enabled before switchbot can be used. Bluetooth is automatically discovered in most cases, but can be manually added from the integrations page if it is not.
The Time between updates (seconds) and How long to scan for advertisement data options have been removed as they are no longer needed since the integration is now push instead of polling.
(@bdraco - #75645) (documentation)
Breaking
Z-Wave
Carbon Monoxide binary sensors have changed their device class from gas to co.
(@EnochPrime - #75649) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- XBee
- SoChain
- Google Play Music Desktop Player (GPMDP)
All three were previously disabled due to incompatibilities and have now been removed.
From www.home-assistant.io/blog/2022/08/03/release-20228/#farewell-to-the-following
2022.8.1 – 2022.8.7: no action items (7 versions)
2022.9.0 2022-09-07
10 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2022/09/07/release-20229/#backward-incompatible-changes
Breaking
BMW Connected Drive
Entity sensor.<your_vehicle>_charging_time_label (disabled by default) has been removed as it is not provided by the upstream library/API anymore.
(@rikroe - #76616) (documentation)
The attribute charging_status of binary_sensor.<your_car>_charging_status has been removed. Please use sensor.charging_status instead.
(@rikroe - #74921) (documentation)
Breaking
HomeKit
The Homekit PM2.5 µg/m3 mappings in the HomeKit integration now use the values based on the US AQI set by the EPA.
| HomeKit | Previous PM2.5 µg/m3 | New PM2.5 µg/m3 |
|---|---|---|
| Excellent | <= 25 | <= 12 |
| Good | <= 50 | <= 35.4 |
| Fair | <= 100 | <= 55.4 |
| Inferior | <= 300 | <= 150.4 |
| Poor | > 300 | > 150.4 |
(@sarabveer - #76358) (documentation)
Breaking
International Space Station (ISS)
It will no longer be possible to know if the international space station (ISS) is above you nor the timestamp for the next rise of the station as these features have been removed in the underlying API.
The binary sensor will be removed and all automations relying on this will no longer work. Unfortunately there is no substitute for this. Instead we have introduced a new sensor, that still tells you the location of the ISS, while showing how many people are in space, as main state.
Breaking
Litter-Robot
The previously deprecated reset_waste_drawer and set_wait_time services from the litterrobot vacuum entity, have been removed.
(@natekspencer - #77052) (documentation)
Breaking
MQTT
Support for MQTT climate hold and away modes, which was deprecated in Home Assistant Core 2022.3.0, has been removed. The hold and away modes are replaced by preset_mode.
(@jbouwh - #76299) (documentation)
Breaking
Open Exchange Rates
The sensor now has a unit of measurement according to the exchange rate quote.
Breaking
Roku
Roku media player will indicate IDLE instead of HOME when at home screen. You can still detect home screen by looking at app_id attribute.
(@elupus - #77385) (documentation)
Breaking
SMS notifications via GSM-modem
Setting up the notify platform of the SMS integration by a platform section in YAML configuration is no longer supported. The sms platform section under notify: can be removed from your YAML configuration files.
A recipient can be specified by using the target parameter in the notify service call instead.
(@ocalvo - #76733) (documentation)
Breaking
Utility Meter
The previously deprecated utility_meter entities, used to change tariffs, have been removed. Please use the provided select entity instead.
(@dgomes - #76480) (documentation)
Breaking
Z-Wave
You must use zwave-js-server 1.22.1 or greater (schema 22).
With this release, you will need to update your zwave-js-server instance.
- If you use the zwave_js addon, you need to have at least version
0.1.66. - If you use the zwavejs2mqtt addon, you need to have at least version
0.46.0. - If you use the zwavejs2mqtt Docker container, you need to have at least version
7.0.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.22.1.
(@raman325 - #75795 #76903) (documentation)
2022.9.1 – 2022.9.7: no action items (7 versions)
2022.10.0 2022-10-05
11 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/10/05/release-202210/#backward-incompatible-changes
Breaking
Bayesian
prob_given_false is now a required configuration variable. Previously it had a default value of 1 - prob_given_true; this didn't really have any mathematical basis and so has been removed. You can use this documentation to calculate what it should be, or to restore your previous functionality, set it to 1 - prob_given_true.
The logic of Bayesian sensors has been significantly corrected. Previously the configs given in the examples above would not have worked as expected. For example, if the device device_tracker.paulus was home, this would not have updated the probability that Paulus Home was on. This is because Bayesian ignored observations that were false, even though that should update our probabilities.
Because of this, many users will have had to use either of two workarounds:
- Providing additional observations that evaluate to
Truewhen the other evaluates toFalse, effectively mirroring it. This forced Bayesian to take into account a negative observation. - Tweaking
prior,threshold, and even sometimesprob_given_trueandprob_given_falseto get the desired functionality, often with the help of a community-provided spreadsheet for iterative testing.
To solve (1), all you need do is delete the mirrored entry as shown below:
# Example of a mirrored entry used a workaround
binary_sensor:
- name: "Heat On"
platform: bayesian
prior: 0.2
probability_threshold: 0.9
observations:
- platform: numeric_state
entity_id: sensor.outside_air_temperature_fahrenheit
prob_given_true: 0.95
prob_given_false: 0.05
below: 50
- platform: numeric_state # line no longer needed - delete
entity_id: sensor.outside_air_temperature_fahrenheit # line no longer needed - delete
prob_given_true: 0.05 # line no longer needed - delete
prob_given_false: 0.95 # line no longer needed - delete
above: 50 # no longer needed - delete
- platform: state
entity_id: binary_sensor.house_occupied
prob_given_true: 0.3
prob_given_false: 0.05
to_state: "on"
- platform: state # line no longer needed - delete
entity_id: binary_sensor.house_occupied # line no longer needed - delete
prob_given_true: 0.7 # line no longer needed - delete
prob_given_false: 0.95 # line no longer needed - delete
to_state: "off" # line no longer needed - delete
To solve (2), you need to re-estimate your probabilities using this documentation - this will likely result in better performance in the long term.
A hacky and not recommended workaround to restore your previous functionality would be to put in a mirrored entry for each observation where prob_given_false is equal to prob_given_true. This will induce the same behavior as before - the negative, counterfactual observation is essentially ignored. Be warned - this may break or cause errors in future versions and will not work for template or numeric_state observations. For templates, instead, make them return None where they would have returned False to induce Bayesian to ignore them.
binary_sensor:
- name: "Heat On"
platform: bayesian
prior: 0.2
probability_threshold: 0.9
observations:
- platform: state
entity_id: binary_sensor.house_occupied
prob_given_true: 0.3
prob_given_false: 0.05
to_state: "on"
- platform: state # not
entity_id: binary_sensor.house_occupied # not recommended
prob_given_true: 0.5 # not recommended
prob_given_false: 0.5 # not recommended
to_state: "off" # not recommended
(@HarvsG - #67631) (documentation)
Breaking
Bluesound
When the player is grouped and isn't master, the state no longer reports as "grouped" but instead reports as "idle".
(@epenet - #78096) (documentation)
Breaking
Elexa Guardian
The previously deprecated guardian.reboot and guardian.reset_valve_diagnostics services have been removed and replaced by button entities on the guardian valve controller device.
(@bachya - #78663) (documentation)
Breaking
Frontier Silicon
When the player is loading, the state no longer reports as "opening", but instead reports as "buffering".
(@epenet - #78101) (documentation)
Breaking
HERE Travel Time
The previously deprecated YAML configuration of the HERE Travel Time integration has been removed.
HERE Travel Time 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
(@eifinger - #77959) (documentation)
Breaking
HomeKit Controller
When the player is not active, the state no longer reports as "problem", but instead reports as "off".
When the player is active, but the state doesn't match known states, the state no longer reports as "ok" but instead reports as "on".
(@epenet - #78105) (documentation)
Breaking
Radarr
Some backward-incompatible changes have been made in disabling the Movies count sensor out of caution. This sensor can cause problems with massive databases. If you still wish to use it, you may do so.
Movie names are no longer included as attributes in the movies sensor. Upcoming has been removed. It is being modernized as calendar items should be. Diskspace is now split into different sensors, one for each folder. Status and commands have been removed as they don't appear to have real value for automations.
(@tkdrob - #78965) (documentation)
Breaking
Supervisor
In Home Assistant 2022.4, the binary sensors for showing an update from the Supervisor integration were deprecated in favor of update entities.
These binary sensors for showing an update have now been removed.
(@ludeeus - #60677) (documentation)
Breaking
Synology DSM
In Home Assistant 2022.4 the binary sensor of Synology DSM for showing an update was deprecated in favor of the newer update entity.
This binary sensor for showing an update has now been removed.
(@mib1185 - #79509) (documentation)
Breaking
Workday
Due to changes in the upstream library, the following is no longer supported by the Workday integration:
- UK subdivisions (Wales, Scotland, England...) can no longer be provided as values to the
countryconfiguration key. They are still available for use as values to theprovincesetting. IsleOfManis no longer a recognized province of the UK, use theIMcode for thecountryinstead.- The extended Portuguese holiday set (
PortugalExt) is no longer available as a separate country; instead you should use the country codePTand the provinceExt.
(@TomBrien - #78832) (documentation)
Breaking
Z-Wave
You must use zwave-js-server 1.24.0 or greater (schema 24).
With this release, you will need to update your zwave-js-server instance.
- If you use the
Z-Wave JSaddon, you need to have at least version 0.1.74. - If you use the
Z-Wave JS UIaddon, you need to have at least version 1.1.0. - If you use the
Z-Wave JS UIDocker container, you need to have at least version 8.1.0. - If you run your own Docker container, or some other installation method, you will need to update your
zwave-js-serverinstance to at least 1.24.0.
(@raman325 - #79342) (documentation)
The fan speed levels of Leviton ZW4SF fan controllers are now mapped correctly to corresponding percentage levels in Home Assistant.
This may change which fan speed is selected at certain percentages. You should adjust any automations and scripts that target these devices as needed.
(@mkowalchuk - #60677) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Ambee as it became impossible to get API keys for private use.
- Climacell has been replaced by Tomorrow.io.
- Flu Near You the resource is no longer available, causing the integration no longer to work.
- U.S. Citizenship and Immigration Services (USCIS) the integration relied on webscraping, which is no longer allowed.
From www.home-assistant.io/blog/2022/10/05/release-202210/#farewell-to-the-following
2022.10.1 – 2022.10.5: no action items (5 versions)
2022.11.0 2022-11-02
18 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2022/11/02/release-202211/#backward-incompatible-changes
Breaking
Unit: Revolutions per minute (rpm)
Multiple integrations provide sensors with the revolutions per minute unit. Two units have been used throughout Home Assistant to indicate this: RPM and rpm.
This release standardizes all integrations to use the lowercase rpm variant. The following integrations have been adjusted:
Home Assistant automatically handles this change of units. However, if you record history externally (for example, using InfluxDB), you might need to adjust to this change.
Breaking
Android IP Webcam
The previously deprecated YAML configuration of the Android IP Webcam integration has been removed.
Android IP Webcam 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.
(@engrbm87 - #80875) (documentation)
Breaking
Anthem A/V Receivers
The previously deprecated YAML configuration of the Anthem A/V Receivers integration has been removed.
Anthem A/V Receivers are 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.
Breaking
APC UPS Daemon
The UPS Last Self Test sensor is renamed to UPS Self Test Result and a new UPS Last Self Test sensor reports time instead of the result.
You may need to replace sensor.ups_last_self_test with sensor.ups_self_test_result in automations and scripts referencing the sensor.ups_last_self_test entity.
(@definitio - #80773) (documentation)
Breaking
Brother Printer
The counter and remaining pages attributes of the sensors drum remaining life, black drum remaining life, cyan drum remaining life, magenta drum remaining life, and yellow drum remaining life have been migrated to their own dedicated sensor entities.
If you are using these attributes in your automation or script, you will need to adopt those for this change.
(@bieniu - #79932) (documentation)
Breaking
ClickSend TTS
- The
calleroption fromClickSend TTSnotify service has been removed, as it prevented calls from being actually made. - The default name has been changed to
clicksend_ttsinstead of an empty name; otherwise the service would appear asnotify.notify. Now it will, by default, appear asnotify.clicksend_tts. This might impact your automation or script. - The recipient's phone number now must match E.164 format.
Breaking
Coinbase
The previously deprecated YAML configuration of the Coinbase integration has been removed.
Coinbase 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.
(@epenet - #80084) (documentation)
Breaking
Dark Sky
When Darksky is configured to report in US units, the unit of measurement for precipitation intensity has been corrected from inches to inches per hour.
(@epenet - #80611) (documentation)
Breaking
ecobee
Setting up the notify platform of the ecobee integration by a platform section using YAML configuration is no longer supported. The ecobee platform section under notify: can be safely removed from your YAML configuration files.
The thermostat index can be specified by using the target parameter in the notify service call instead.
(@kevdliu - #78558) (documentation)
Breaking
HERE Travel Time
The route sensor has been removed, as it could contain more data than the Home Assistant state engine is able to hold. Make sure you update any automations or scripts that use this sensor.
(@eifinger - #79211) (documentation)
Breaking
HomeKit
HomeKit instance ID assignments are now stable between restarts to comply with the HomeKit specifications. This prevents accessories from losing track of services between restarts, and improves stability with using Siri especially with apple watches.
This change may dramatically improve the stability and re-sync times of media_player entities (all), camera entities (all), fan entities (presets), remote entities (activity ones), switch entities (power strips) triggers (all) between restarts which was especially apparent when the home has many accessories.
Because the assignments were previously unstable, it may be necessary to make a one-time adjustment of accessory room assignments, favorites, or re-pair camera accessories after upgrading.
(@bdraco - #79913) (documentation)
Breaking
HomeKit Controller
As older versions did not correctly set service identifier values, it may be necessary to unpair and re-pair some BLE devices or to delete duplicate entities manually.
If the service identifiers were loaded incorrectly when the device was paired with an older version, operations might raise StopIteration or RuntimeError errors. You can correct those by deleting the integration for that device, and doing a one-time re-pairing.
(@bdraco - #80798) (documentation)
Breaking
Hunter Douglas PowerView
This change ceases creating battery sensors for hardwired shades. Existing sensor entities need to be manually deleted.
(@kingy444 - #81013) (documentation)
Breaking
IntelliFire
The backing unit and the API of the device itself uses 0-4 as a flame height setting. Through discussion on the forums the community has decided 1-5 is a much more logical setting for flame height, and accordingly, this has been implemented.
If you set the flame height using automations or scripts, you will need to adapt those to this change.
(@jeeftor - #79901) (documentation)
Breaking
Logger
logger no longer changes the default log level of Home Assistant to debug if used without a value for default. It will now only change the default log level of Home Assistant from a warning to something else if the default is explicitly specified.
If you do not specify default and want Home Assistant to have a default log level of debug, you will need to add this to your YAML configuration:
logger:
default: debug
(@mdegat01 - #80033) (documentation)
Breaking
Open Exchange Rates
The previously deprecated YAML configuration of the Open Exchange Rates integration has been removed.
Open Exchange Rates 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.
Breaking
Scrape
Previously, scrape would return the last correct value if an HTTP request for updating failed. This has been adjusted to now mark the sensor as unavailable instead.
(@epenet - #80593) (documentation)
Breaking
Templates (fan)
Template fans no longer change their state to on when set_percentage or set_preset_mode is called when a value_template has been configured.
(@Petro31 - #75656) (documentation)
2022.11.1 – 2022.11.5: no action items (5 versions)
2022.12.0 2022-12-07
20 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2022/12/07/release-202212/#backward-incompatible-changes
Breaking
Cloudflare
The Cloudflare integration no longer relies on ipify.org to determine your IP, but instead is using the whoami service.
This means that if you have configured your network only to allow traffic there, you would need to adjust it to allow for the new situation.
(@ludeeus - #81714) (documentation)
Breaking
Elexa Guardian
The previously deprecated guardian.disable_ap and guardian.enable_ap service and the corresponding binary sensor have now been removed.
(@bachya - #81056) (documentation)
Breaking
Glances
The scan interval (scan_interval) option in the Glances configuration is removed, and the update interval will use the default value (60 seconds).
If you have already configured Glances integrations, the previously saved interval option will still be used. To revert to the default update interval, you need to re-add the integration.
You can use the homeassistant.update_entity service in an automation for custom update intervals.
(@engrbm87 - #72748) (documentation)
Breaking
Groups
Media player groups containing players that provide an invalid media player entity state, will now report a "Unknown" group state.
The list of valid media player states is available in our developer documentation.
(@epenet - #78465) (documentation)
Breaking
HERE Travel Time
The HERE Travel Time integration now uses the HERE API v8. Travelmode publicTransportTimeTable has been merged into publicTransport. Your configuration will be migrated automatically; no manual interaction is necessary.
(@eifinger - #80892) (documentation)
The unit system is no longer controlled by an options setting of the HERE Traveltime integration but uses the built-in custom units configurable per entity.
The distance sensor now uses kilometers as a default and must be manually configured if it was previously using the imperial system.
(@eifinger - #79159) (documentation)
Breaking
Hikvision
The videoloss event has been removed from the supported list. The event has always been used as a keep-alive for most Hikvision devices, and the library uses it internally. Leaving it enabled as an option causes everything to break if the event is actually processed, so it was removed to eliminate confusion.
Any customized options specified in the YAML configuration for a videoloss event will need to be removed, and videoloss entities will no longer be generated by the integration.
If you used any of these entities in your automations or scripts, you will need to update those to remove the use of these entities.
(@mezz64 - #81173) (documentation)
Breaking
HomeKit
The HomeKit Air quality PM10 mappings between Home Assistant and HomeKit, have been updated to the latest US AQI standard.
(@stackia - #81217) (documentation)
Breaking
Logitech Harmony Hub
The PowerOff state of the select entity will be changed to power_off.
If you relied on this state value in your automations or script, you must adjust to this change.
(@bieniu - #77491) (documentation)
Breaking
Mobile Apps
The events fired when the mobile app scanned a Tag had an incorrect device ID; This has been corrected.
As a result, the evens now contain a different but correct device ID. If you relied on the device ID in your automations, you might need to adjust those with the new device ID.
(@balloob - #82820) (documentation)
Breaking
Modbus
The name of the mapping keys used for defining HVAC modes in the Modbus climate integration (introduced in 2022.11) has changed. This was needed to fix an issue with the off key, which has a different meaning in YAML.
Instead of:
hvac_mode_register:
address: ...
values:
off: 0
heat: 1
cool: 2
You now have to use:
hvac_mode_register:
address: ...
values:
state_off: 0
state_heat: 1
state_cool: 2
(@avishorp - #81749) (documentation)
Breaking
MQTT
YAML configuration of MQTT entities under the platform key (e.g., light), which was deprecated in Home Assistant Core 2022.6, is no longer supported. The configuration must instead be done under the mqtt key.
The legacy MQTT device tracker is no longer supported. See the documentation for the supported MQTT device tracker configuration.
As of this release, you should now use the modern configuration schema for all manually configured MQTT entities. Please note that this does not impact MQTT discovery, for example, Zigbee2MQTT.
(@jbouwh - #82102) (documentation)
The encoding configuration option for the MQTT camera set to b64 was previously deprecated and has now become an invalid configuration.
The new image_encoding configuration option is now used to set Base64 encoding. Please use the new image_encoding config parameter (set to b64) instead.
(@jbouwh - #82244) (documentation)
Breaking
OpenUV
The previously deprecated openuv.update, openuv.update_uv_index, and openuv.update_protection_data services have now be removed.
(@bachya - #81055) (documentation)
Breaking
Radarr
The previously deprecated YAML configuration of the Radarr integration has been removed.
Radarr 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.
(@tkdrob - #81210) (documentation)
Breaking
RainMachine
The previously deprecated extra_water_on_hot_days and freeze_protection binary sensors, and freeze_protection_temperature sensor have now been removed.
(@bachya - #81053) (documentation)
Breaking
Renault
The unit of measurement for the charging power sensor has been corrected. As the unit has changed, it will create a long-term statistics warning that you need to resolve in the statistics developers tools manually.
my.home-assistant.io/redirect/developer_statistics
(@epenet - #81412) (documentation)
You will need to resolve the analytics warning by adjusting the previous unit.
Breaking
Risco
The bypassed attribute in Risco zones has been removed and replaced with a switch. The matching services have also been removed, and you can bypass and un-bypass a zone using the regular switch services (turn_on and turn_off respectively).
For example, if you had a call to:
service: risco.bypass_zone
target:
entity_id: binary_sensor.motion_bedroom
You can replace it with:
service: switch.turn_on
target:
entity_id: switch.motion_bedroom_bypassed
(@OnFreund - #81137) (documentation)
Breaking
SimpliSafe
The previously deprecated simplisafe.clear_notifications service has now been removed.
(@bachya - #81054) (documentation)
Breaking
Statistics
The quantiles statistics sensor characteristic has been removed and replaced by the more versatile percentile characteristic.
If you use the quantiles characteristic, you will need to adapt your sensor configuration to recreate identical values with the percentile characteristic.
(@ThomDietrich - #81749) (documentation)
The configuration of statistics sensors has changed:
The state_characteristic configuration setting is now mandatory.
The sampling_size configuration setting is now optional and no longer defaults to the arbitrary value 20. You can now define sampling_size, max_age, or both depending on your use case. Existing sensors won't behave differently by the change. However, you might want to check whether your currently defined sensors have a meaningful sampling_size configured or if you wish to remove this setting altogether.
(@ThomDietrich - #81749) (documentation)
Breaking
Subaru
The Subaru API has changed and no longer returns values required by two sensors:
- External temp
- 12V battery voltage
These sensors have been removed from the Subaru integration.
(@G-Two - #83213) (documentation)
Breaking
UniFi Network
As new PoE entities were introduced with 2022.11, this release, the old troublesome PoE client implementation that these entities replaced, has been removed. Upgrading will automatically remove the old entities.
Please note that the new PoE entities are disabled by default and represent each PoE-capable port without mapping it to a client.
(@Kane610 - #81749) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Google Chat has been removed. It relied on the Google Hangouts APIs, which have been shut down, rendering the integration unusable.
From www.home-assistant.io/blog/2022/12/07/release-202212/#farewell-to-the-following
2022.12.1 – 2022.12.9: no action items (9 versions)
2023.1.0 2023-01-04
12 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/01/04/release-20231/#backward-incompatible-changes
Breaking
Image Upload / Default Config
The image integration domain was renamed to image_upload.
This change would only affect you when you have removed the default_config from your configuration. In that case, you need to manually adjust your configuration to rename image to image_upload.
The rename was done to free up the image domain for future use.
(@frenck - #84063) (documentation)
Breaking
Breaking
AirVisual (Pro)
AirVisual Pro units now have their own Home Assistant integration (as opposed to be included with the original AirVisual integration that uses the AirVisual cloud API).
Pro devices will automatically be migrated; as part of that migration, the Pro's device ID will change.
If you utilize entity IDs belonging to a Pro in automations or scripts, you don't need to do anything; if, however, you utilize a Pro's device ID, please update those automations or scripts accordingly.
(@bachya - #83583) (documentation)
Breaking
APC UPS Daemon
The previously deprecated YAML configuration of the APC UPS Daemon integration has been removed.
APC UPS Daemon 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.
(@yuxincs - #83801) (documentation)
Breaking
Awair
The unit for sound level has been adjusted from dBa to dBA.
(@epenet - #83582) (documentation)
Breaking
deCONZ
An issue with the mapping of triggers of Styrbar has been discovered and fixed. As a result, any automations relying on these triggers will need to be manually adjusted/re-configured to adjust to this change.
(@Kane610 - #84257) (documentation)
Breaking
Fitbit
Units of measurements for length, mass, time, and volume have been aligned with standard Home Assistant units.
(@epenet - #83936) (documentation)
Breaking
Minut Point
The unit for sound has been adjusted from dBa to dBA.
(@epenet - #83580) (documentation)
Breaking
Speedtest.net
The update frequency option has been removed. The default frequency is now 60 minutes. If you like to customize the polling: disable polling update from system options and use the update_entity service in an automation to manually update it at your own custom schedule.
(@engrbm87 - #84295) (documentation)
Breaking
Tankerkoenig
The previously deprecated YAML configuration of the Tankerkoenig integration has been removed.
Tankerkoenig 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 - #84711) (documentation)
Breaking
Tomorrow.io
The imperial unit for Global Horizontal Irradiance has been adjusted from BTU/(h×ft²) to BTU/(h⋅ft²)
(@epenet - #83574) (documentation)
Breaking
Universal Devices ISY994
The unit for weighted decibels has been adjusted from dBa to dBA.
(@epenet - #83583) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Deutsche Bahn has been removed. It relied on web scraping, which is no longer allowed.
From www.home-assistant.io/blog/2023/01/04/release-20231/#farewell-to-the-following
2023.1.1 – 2023.1.7: no action items (7 versions)
2023.2.0 2023-02-01
26 Breaking, 1 Note — show quotes
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.
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.
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.
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.
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 becamevery_lowvery high, which now becamevery_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_sensorthat duplicates the Rain delay timesensorhas been removed. You should move all uses to thesensorvalue and check for a non-zero value to get equivalent behavior. - The Rain
sensorthat duplicates the Rainbinary_sensorhas been removed. You may check thebinary_sensorstate 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.
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.
ONbecame the lowercaseonOFFbecame the lowercaseoff
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 became120_min90 min, which now became90_min60 min, which now became60_min30 min, which now became30_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.
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
2023.2.1 – 2023.2.5: no action items (5 versions)
2023.3.0 2023-03-01
16 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2023/03/01/release-20233/#backward-incompatible-changes
Breaking
Assist / Conversation
Previously, all entities and areas were exposed to Assist's default agent. This is now restricted to entities of the following domains:
climatecoverfanhumidifierlightlockscenescriptsensorswitchvacuumwater_heater
Only areas with exposed entities will be exposed themselves. In the future, this will be customizable through the frontend.
(@synesthesiam - #88274) (documentation)
Breaking
Atmospheric pressure device triggers
A bug with the atmospheric pressure sensor device triggers has been corrected. Automations using such device triggers will need to be adjusted/reconfigured.
(@epenet - [#88320]) (documentation)
Breaking
ecobee
The aux heat toggle will now show as enabled when the device is in "aux heat only" mode instead of only when it is running.
(@Lash-L - #86100) (documentation)
Breaking
Fibaro
The previously deprecated YAML configuration of the Fibaro integration has been removed.
Fibaro 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.
(@rappenze - #87939) (documentation)
Breaking
GoodWe Inverter
Inverter "Operation Mode" select values were changed to snake_case and localized.
- "General mode" ->
general - "Off grid mode" ->
off_grid - "Backup mode" ->
backup - "Eco mode" ->
eco - "Peak shaving" ->
peak_shaving - "Eco charge mode" ->
eco_charge - "Eco discharge mode" ->
eco_discharge
If you used these select values in your automations or scripts, you will need to adjust those to match this change.
(@mletenay - #86901) (documentation)
Breaking
HomeKit
VOC mappings in the HomeKit integration have been improved to use the IAQ guidelines for Europe released by the WHO (World Health Organization).
| HomeKit | Previous VOC µg/m3 | New VOC µg/m3 |
|---|---|---|
| Excellent | <= 24 | <= 250 |
| Good | <= 48 | <= 500 |
| Fair | <= 64 | <= 1000 |
| Inferior | <= 96 | <= 3000 |
| Poor | > 96 | > 3000 |
Reference: Sensirion_Gas_Sensors_SGP3x_TVOC_Concept.pdf
(@emanuelst - #87663) (documentation)
Breaking
Matter
With this release, you will need to update your Matter Server instance. You must use python-matter-server 3.0.0 or greater (schema 2).
- If you use the
Matter Serveradd-on, you need to have at least version4.0.0. - If you run your own Docker container, or some other installation method, you will need to update your
python-matter-serverinstance to at least3.0.0.
(@marcelveldt - #88607) (documentation)
Breaking
MQTT
The behavior for receiving values on sensors that expect numeric* values has changed.
- A
'None'value or a value rendered to'None'will set such a sensor to anunknownstate. - Empty values on such sensors (
'') are ignored and will not affect the state of the sensor.
Integrations need to be corrected to send the correct values if an update is published and no valid update value is available for the sensor.
- Other sensors that do not expect a numeric value will still accept an empty string as a value.
* Sensors expect numeric values if at least one of the following applies:
- A
device_classis set but is not adate,timestamp,enum, or any custom device class. - A
state_classis set. - A
unit_of_measurementis set. - A
suggested_display_precisionis set.
(@jbouwh - #87004) (documentation)
Breaking
Plugwise
The unit of measurement for the P1 gas consumed interval sensor is changed from m³ to m³/h. Go to Developer Option --> Statistics for the options on how to handle this change in your existing installation.
(@bouwew - #87449) (documentation)
Breaking
Profiler
The profiler.memory service is unavailable when using Python 3.11, due to an incompatibility with a needed dependency for this service. It will return when the used guppy3 package becomes available with Python 3.11 compatibility.
(@bdraco - #88136) (documentation)
Breaking
Template: Covers
Template covers using optimistic: false without value_template nor position_template still updated state optimistically. The integration now respects the optimistic setting of false. If you want to keep the previous behavior, you must set the optimistic value to true, or remove the optimistic declaration.
(@ylemoigne - #87925) (documentation)
Breaking
Trafikverket Weather
The unit of measurement was incorrectly set to mm while the API is returning mm/h. The unit of measurement and device class have now been corrected.
Breaking
Todoist
Labels used by custom projects for filtering are now case-sensitive.
Previously the labels were automatically lower-cased by the integration, but in Todoist a label like Test and test are considered unique. Because of that labels will now be case sensitive in your configuration.
(@boralyl - #87904) (documentation)
Breaking
UniFi Protect
The event_id and event_score state attributes are now excluded from being recorded in the database. They remain available for use in automations and scripts.
(@bdraco - #88387) (documentation)
The previously deprecated "Detected Object" sensor has been removed.
The sensor was removed because if multiple objects are detected at once (very common for package detection), Home Assistant could not be automated using the second detected object. The sensor has been split out from the single Detected Object sensor into multiple binary issues for each detection type.
(@bdraco - #85656) (documentation)
Breaking
Wiffi
The Wiffi unit of illuminance lux has been adjusted to the standard unit Home Assistant uses lx.
(@mampfes - #87377) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.26.0 or greater (schema 26).
- If you use the
Z-Wave JSadd-on, you need at least version0.1.76. - If you use the
Z-Wave JS UIadd-on, you need at least version1.6.3. - If you use the
Z-Wave JS UIDocker container, you need at least version8.8.6. - If you run your own Docker container or some other installation method, you will need to update your
zwave-js-serverinstance to at least1.26.0.
(@raman325 - #88520) (documentation)
2023.3.1 – 2023.3.6: no action items (6 versions)
2023.4.0 2023-04-05
28 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/04/05/release-20234/#backward-incompatible-changes
Breaking
Aladdin Connect
The previously deprecated YAML configuration of the Aladdin Connect integration has been removed.
Aladdin Connect 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.
(@epenet - #88694) (documentation)
Breaking
AVM FRITZ!Box Tools
The binary sensor providing available firmware updates has been deprecated since 2022.5 and is now removed. Use the new update entity instead.
(@mib1185 - #89940) (documentation)
Breaking
Bluetooth
This change only affects Home Assistant instances running directly on MacOS (not inside a virtual machine).
Any integration or device previously set up using a UUID Bluetooth address will need to be deleted and recreated.
(@bdraco - #89926) (documentation)
Breaking
Calendar
The calendar.create_event service now enforces that start and end dates are exclusive. This has always been part of the specification but was not clearly documented and enforced.
(@allenporter - #89533) (documentation)
Breaking
DSMR Reader
The previously deprecated YAML configuration of the DSMR Reader integration has been removed.
DSMR Reader 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 - #89239) (documentation)
Breaking
GIOŚ
AQI sensor state values are now in English, and the user interface will display their translation for the selected language. If you have been using this sensor in your automations and scripts, you'll need to adjust these for this change.
(@bieniu - #89044) (documentation)
The name and station sensor state attributes have been removed because they are static data that do not describe the state of the entity.
The index sensor state attribute has been migrated to a separate entity, for example, sensor.home_no2_index.
(@bieniu - #89389) (documentation)
Breaking
Groups - Notify
The behavior of passing parameters to service calls targeting notification groups has changed.
Current behavior: data mappings configured in the service override mappings configured in the action.
New behavior: data mappings configured in the action override mappings configured in the service.
(@arychj - #90253) (documentation)
Breaking
Home Connect
In order to obtain an up-to-date list of compatible programs for your appliances, it will be necessary to reconfigure the integration.
Please note that due to limitations on the Home Connect side, it is important to have your appliances Turned on during the reconfiguration process.
This action is a one-time requirement.
(@stickpin - #88801) (documentation)
Breaking
IMAP
The previously deprecated YAML configuration of the IMAP integration has been removed.
IMAP 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.
(@jbouwh - #89981) (documentation)
Breaking
Landis+Gyr Heat Meter
The conversion to MWh and the corresponding MWh-entities have been removed.
To resolve the breaking change :
- If you make use of any of
sensor.heat_meter_heat_usageorsensor.heat_meter_heat_previous_yearfor automations, scripts, etc., you can replace these with the GJ-entitiessensor.heat_meter_heat_usage_gjandsensor.heat_meter_heat_previous_year_gj. - If applicable, in the energy dashboard, replace
sensor.heat_meter_heat_usagewithsensor.heat_meter_heat_usage_gj. Note that the energy dashboard will still convert to MWh or kWh, therefore resulting in the same values as before.
(@vpathuis - #89522) (documentation)
Breaking
Logbook
Logbook will be unavailable until the database schema migration completes. Logbook script and automation traces from previous runs of Home Assistant will be unavailable until background data migration is completed following the schema migration.
(@bdraco - #88942 #89465) (documentation)
Automation and script traces that include state change events recorded with Home Assistant 2022.5.x or older will no longer display context information for these events in the logbook tab.
(@bdraco - #89945) (documentation)
Breaking
MySensors
- The MySensors notify platform has been removed. It's been deprecated since 2023.2.0. It's been replaced by a text entity platform.
- You should update any automations or scripts that use the
notify.mysensors*service to instead use thetext.set_valueservice and the corresponding text entity as a target. - The MySensors IR
switchentity, corresponding to anS_IRchild withV_SENDvalue, has been removed. This entity hasb been deprecated since 2023.2.0. It's been replaced by aremoteentity. - You should update any automations or scripts that use the
mysensors.send_ir_codeservice to instead use theremote.send_commandservice and the correspondingremoteentity as a target. Similar changes should be made for actions using theswitch.turn_onandswitch_turn_offservices targeting the removed IRswitchentities. Replace these withremote.turn_onandremote.turn_offservices andremoteentity targets.
Breaking
Moon
The previously deprecated YAML configuration of the Moon integration has been removed.
Moon 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 - #89161) (documentation)
Breaking
MQTT
The tls_version configuration parameter (deprecated June 2020) has been removed. All other MQTT broker settings have been moved to the UI before.
When the tls_version setting is still in your YAML configuration, MQTT will not start up.
The previously deprecated MQTT broker YAML configuration has been removed.
The MQTT broker is now configured via the UI, any existing MQTT broker YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.
(@jbouwh - #87987) (documentation)
Breaking
Nextcloud
The option to define your own scan interval has been removed, data is now updated every 60 seconds.
(@mib1185 - #89396) (documentation)
Breaking
OpenAI Conversation
Your previously selected model has been reset to the new and cheaper GPT 3.5 model.
(@balloob - #90423) (documentation)
The built-in areas variable is no longer overwritten and is now the same as areas in every template. The new default template is now:
This smart home is controlled by Home Assistant.
An overview of the areas and the devices in this smart home:
{%- for area in areas() %}
{%- set area_info = namespace(printed=false) %}
{%- for device in area_devices(area) -%}
{%- if not device_attr(device, "disabled_by") and not device_attr(device, "entry_type") and device_attr(device, "name") %}
{%- if not area_info.printed %}
{{ area_name(area) }}:
{%- set area_info.printed = true %}
{%- endif %}
- {{ device_attr(device, "name") }}{% if device_attr(device, "model") and (device_attr(device, "model") | string) not in (device_attr(device, "name") | string) %} ({{ device_attr(device, "model") }}){% endif %}
{%- endif %}
{%- endfor %}
{%- endfor %}
Answer the user's questions about the world truthfully.
If the user wants to control a device, reject the request and suggest using the Home Assistant app.
(@balloob - #90481) (documentation)
Breaking
Overkiz
The open and close commands for theio:CyclicGarageOpenerIOComponent device Have been removed, see this issue for more details on this device.
To sum up, this device is a garage door but cannot be exposed as such within Home Assistant. There is no state returned and no clear open and close command.
Only one command is available: cycle. A button is a perfect fit for this use case and remove all confusion; this button entity has been added this release.
(@tetienne - #89043) (documentation)
Breaking
Pushbullet
The previously deprecated YAML configuration of the Pushbullet integration has been removed.
Pushbullet 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.
Breaking
Radio Thermostat
The previously deprecated YAML configuration of the Radio Thermostat integration has been removed.
Radio Thermostat 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.
Breaking
Recorder
Oversized events with data larger than 32KiB are no longer recorded to avoid overloading the database and polluting the memory cache.
(@bdraco - #90747) (documentation)
Breaking
Scrape
The previously deprecated YAML configuration of the Scrape integration has been removed.
Scrape 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.
Breaking
Season
The previously deprecated YAML configuration of the Season integration has been removed.
Season 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 - #89166) (documentation)
Breaking
Tasmota
Tasmota sensor no longer sets the force_update flag to True.
Tasmota binary_sensor no longer sets the force_update flag to True, except for binary_sensor mapped to a Tasmota switch with switchmode set to 13 or 14.
(@DerEnderKeks - #85943) (documentation)
Breaking
Templates
The relative_time and today_at template functions and filters are no longer supported in limited templates.
Enumerating states using templates are no longer sorted by entity_id by default, as it was computationally expensive.
To restore the original behavior, a sort filter can be added to any existing template using the below example:
{% for state in states | sort(attribute='entity_id') %}Breaking
Threshold
The behavior of the threshold binary sensor has changed:
- The threshold binary sensor's state is reset to
unknownwhen the monitored sensor's state is unknown, unavailable, or not a valid float. - When the monitored sensor's state is first valid, or when it's valid after being
unknown,unavailable, or not a valid float: - Initialize a threshold sensor with only a lower threshold to state
off, with thepositionattribute set toabove. - Initialize a threshold sensor with only a upperthreshold to state
off, with thepositionattribute set tobelow. - Initialize a threshold sensor with only an upper and a lower threshold to state
on, with thepositionattribute set toin_range.
(@emontnemery - #88978) (documentation)
Breaking
Twente Milieu
The end-date for garbage collection events on the calendar entity, will now be one day later compared to the start date. This is because in calendaring, the end-date is exclusive.
Breaking
Volvo On Call
The previously deprecated YAML configuration of the Volvo On Call integration has been removed.
Volvo On Call 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.
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.27.0 or greater (schema 27).
- If you use the
Z-Wave JSadd-on, you need at least version0.1.77. - If you use the
Z-Wave JS UIadd-on, you need at least version1.8.1. - If you use the
Z-Wave JS UIDocker container, you need at least version8.11.1. - If you run your own Docker container or some other installation method, you will need to update your
zwave-js-serverinstance to at least1.27.0.
(@raman325 - #90212) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Dark Sky has been removed. Apple acquired Dark Sky, and the API has now been shut down. (@gjohansson-ST - #90322)
- Magicseaweed has been removed. Magicseedweed no longer provides API keys to users. Additionally, the integration is no longer in a functional state. (@gjohansson-ST - #90277)
From www.home-assistant.io/blog/2023/04/05/release-20234/#farewell-to-the-following
2023.4.1 – 2023.4.6: no action items (6 versions)
2023.5.0 2023-05-03
15 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/05/03/release-20235/#backward-incompatible-changes
Breaking
Accuweather
The ozone sensors and the ozone state attribute of the weather entity showed incorrect values and are being removed. If you use these values in your automations or scripts, you need to update them.
(@bieniu - #91492) (documentation)
Breaking
Android TV
The "Android TV" integration has been renamed to "Android Debug Bridge".
This rename is because that is what it actually controlled/provided. With the addition of the Android TV Remote integration in this release, we wanted to reduce possible confusion in the future.
(@tronikos - #90657) (documentation)
Breaking
History
All YAML configuration options for the history integration have been removed as they were no longer used by the frontend.
(@bdraco - #90992) (documentation)
Breaking
HomeKit
The min/max target humidities for (de)humidifier device exposed over HomeKit has changed. The HomeKit UI will now show the real relative humidity. When the slider in HomeKit goes above or below the max/min set humidity, it will be set back to the max/min allowed humidity.
(@stackia - #90854) (documentation)
Default HomeKit to listen on all interfaces to match Home Assistant behavior. To limit HomeKit to specific network interfaces, specify an address in configuration.yaml.
(@bdraco - #91520) (documentation)
Breaking
IMAP
The use of imap_content event could break for users that want to parse data from larger email messages from the truncated part. Only the first 2048 bytes of the message body (2 KiB) will be available.
(@jbouwh - #92066) (documentation)
Breaking
Overkiz
The silence option for DynamicShutter has been removed because it caused the cover entity to be non-functional if it did not support silence. This functionality will be reintroduced in a future release.
(@iMicknl - #91354) (documentation)
Breaking
Reolink
For Reolink doorbells, the "Status LED" light entity is replaced by a "Status LED" select entity. The switch off state corresponds to the select Auto, and the switch on state corresponds to the select Auto & always on at night. An additional Stay off state is now available.
(@starkillerOG - #90469) (documentation)
Breaking
Snapcast
- Muted groups with stream playing will have state
idleinstead ofplaying. - Connected clients will not have state
onanymore but use the same states as groups:idleandplaying. - Disconnected clients have state
standbyinstead ofoffbecause the Snapcast server still accepts commands.
(@luar123 - #77449) (documentation)
Breaking
Synology DSM
The unit conversion for all memory, storage, and network utilization-related sensors was corrected from binary (1024) to decimal (1000) base to be in line with the used measurement units (eq. MB = 1.000.000 bytes).
You may need to update the historically recorded units for these sensors via the statistics page under developer tools.
(@mib1185 - #90633) (documentation)
Breaking
Templates
The ensure_ascii argument for to_json in Jinja templates now defaults to False, allowing us to use a faster JSON encoder by default.
This should not be an issue for most, as JSON parsers broadly accept Unicode input. If you still need to encode Unicode characters inside JSON strings, set ensure_ascii to True explicitly to restore the old behavior.
Breaking
UniFi Network
UniFi integration no longer provides both hostname and host_name attributes for a client tracker entity. Only host_name will be provided as an attribute.
(@Kane610 - #91188) (documentation)
Breaking
UniFi Protect
The previous deprecated set_doorbell_message service has been removed. Use the text entity for the UniFi Protect LCD screen instead.
Breaking
Universal Devices ISY/IoX
The previously deprecated YAML configuration of the Universal Devices ISY/IoX integration has been removed.
Universal Devices ISY/IoX 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.
(@shbatm - #91575) (documentation)
The built-in percentage unit % is now used for relative humidity and absolute humidity instead of the custom units %RH and %AH, respectively.
(@shbatm - #90863) (documentation)
The following custom ISY994 services have been removed:
reloadcleanup_entitiessystem_queryset_ramp_rateset_on_levelrun_network_resourceset_variable
These services had been previously deprecated in favor of built-in services and number, select, and button entities. Please update your automations and dashboards to use the new entities and/or built-in services if you have not already.
(@shbatm - #91569) (documentation)
Dusk/Dawn nodes on Insteon Motion Sensors now have their states inverted to correctly show "Light detected" during daylight and "No light" when the dusk sensor is active.
This is reversed from previous behavior. If you rely on this sensor in your automations, they must be updated.
(@shbatm - #92035) (documentation)
Breaking
Webhooks
Two new Webhook trigger options have been added that limit how a webhook can trigger an automation. A new _allowed_methods_ option can be used to control which HTTP request methods can activate the trigger (GET, HEAD, POST, and PUT). And the local_only option is used to allow devices outside your local network to activate the trigger.
Previously all webhook triggers could be activated by HEAD, POST, and PUT methods from any device (local or on the internet). With the new options, only POST and PUT are enabled by default.
In Home Assistant Core 2023.7, any webhook trigger that does not set local_only to false can only be activated by devices on the same network as Home Assistant.
Click the gear/cog icon beside the Webhook ID to update your webhook triggers. Then select an appropriate value for Only accessible from the local network. It is necessary to deselect the option for the Save button to appear. Then reselect the option if it should be enabled. This will make the repair warning go away.
[image: Screenshot shoting webhook trigger options]
See the webhook trigger documentation for a description of the new options. And please review the new Webhook Security section for best practices when using webhook triggers.
(@esev - #66494) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.28.0 or greater (schema 28).
- If you use the
Z-Wave JSadd-on, you need at least version0.1.79. - If you use the
Z-Wave JS UIadd-on, you need at least version1.11.2. - If you use the
Z-Wave JS UIDocker container, you need at least version8.14.2. - If you run your own Docker container or some other installation method, you will need to update your
zwave-js-serverinstance to at least1.28.0.
(@raman325 - #91989) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Coronavirus (COVID-19) has been removed. The data is no longer provided by the source provider. (@emontnemery - #90934)
- Xbox Live was previously deprecated and has now been removed. The Xbox integration is still available. (@MartinHjelmare - #90592)
From www.home-assistant.io/blog/2023/05/03/release-20235/#farewell-to-the-following
2023.5.1 – 2023.5.4: no action items (4 versions)
2023.6.0 2023-06-07
24 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/06/07/release-20236/#backward-incompatible-changes
Breaking
Python
All Home Assistant versions, of which the Home Assistant project manages the Python version for you, have been upgraded to Python 3.11. This affects the following installation types:
- Home Assistant Operating System
- Home Assistant Container
- Home Assistant Supervised
This might affect you when using custom integrations, as those must be compatible with Python 3.11.
Furthermore, as of this release, Python 3.10 is deprecated, and support will be removed in Home Assistant 2023.8. This only affects you if you are running Home Assistant Core installation type in your own Python virtual environment. Please update your Python version to Python 3.11.
If you run Home Assistant OS, Home Assistant Container, or Home Assistant Supervised, we have taken care of this for you; you will be using Python 3.11 automatically on upgrade.
Breaking
APC UPS Daemon
sensor.ups_self_test_interval sensor now properly splits unit "days" from the raw data. Previously, it would show 7 days as the sensor state. Now it shows 7 with a unit "Days".
(@yuxincs - #93844) (documentation)
Breaking
Counter
The counter entities no longer restore their previous manually set configuration (using the - now deprecated - counter.configure service) on Home Assistant startup. Instead, it will now use the configuration as set in the helper configuration in the UI (or as configured YAML, if used).
This behavior is removed, as it caused configuration issues, as the new configuration was never applied again (but forever restored). This behavior was out of the ordinary for Home Assistant and thus now standardized.
The value of the counter is still restored and available across Home Assistant restarts.
(@frenck - #93344) (documentation)
Breaking
Command Line
The Command Line integration changes its YAML configuration format from an old-style platform configuration to a more modern integration-style configuration format.
For example, if you have a binary sensor configured previously as:
# Example configuration.yaml entry
binary_sensor:
- platform: command_line
command: "cat /proc/sys/net/ipv4/ip_forward"
That same binary sensor is now configured under the command_line integration configuration as:
# Example configuration.yaml entry
command_line:
- binary_sensor:
command: "cat /proc/sys/net/ipv4/ip_forward"
Note: While this is currently not yet a breaking change, it did raise questions during our beta testing period. Hence we have added this as a breaking change to provide more context.
Breaking
D-Link Wi-Fi Smart Plugs
The previously deprecated YAML configuration of the D-Link Wi-Fi Smart Plugs integration has been removed.
D-Link Wi-Fi Smart Plugs are 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.
Breaking
EDL21
The previously deprecated YAML configuration of the EDL21 integration has been removed.
EDL21 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.
Breaking
EZVIZ
The binary sensor providing "upgrade available" information has been removed and replaced by a new update entity. If you use the binary sensor in your automations, scripts, or dashboards, you will need to adjust them to this change.
(@RenierM26 - #85377) (documentation)
Breaking
Frontier Silicon
The previously deprecated YAML configuration of the Frontier Silicon integration has been removed.
Frontier Silicon 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.
Breaking
Google Nest
The Google Nest YAML configuration has been fully removed. You should ensure you have imported your configuration and credentials into the UI before upgrading.
Nest Desktop or OOB authentication, which was previously disabled by Google, has now been removed.
(@allenporter - #92311) (documentation)
Breaking
IBM Watson TTS
Home Assistant was still using the legacy Python pip package resolver, which has been removed. Due to upstream package conflicts, the IBM Watson TTS integration has been disabled.
The upstream project providing the libraries used has been notified repeatedly in, at least, the past two years; unfortunately, without response. We had no other choice than to disable this integration.
(@frenck - #92124) (documentation)
Breaking
IHC Controller
The default unit of measurement for manually set up sensors from IHC has been removed. Home Assistant now assumes all sensors with a unit of measurement set are a number. IHC sensors can be text, but because of the default unit of measurement, there is currently no way to get text sensors from IHC working.
This is a breaking fix because if you currently have temperature sensors without a unit of measurement set, you will have to set this for the sensors.
(@dingusdk - #93054) (documentation)
Breaking
LG Netcast
LG Netcast media players no longer have fake (assumed) playing or paused states, and those are replaced with the on state.
If you used the playing or paused state in your automations, you will need to update them to match this change.
(@Drafteed - #93543) (documentation)
Breaking
Meteorologisk institutt (Met.no)
The weather forecast provided by the weather entity has changed. The current day has been added to the forecast. If your automations or scripts rely on the first day to be tomorrow, you need to adjust them.
(@mmalina - #91891) (documentation)
Breaking
MQTT
MQTT sensor configurations that still use last_reset_topic will fail. The support was deprecated in Home Assistant 2021.11 and is now removed. Users should use last_reset_value_template instead.
(@jbouwh - #93792) (documentation)
Breaking
Nextcloud
The previously deprecated YAML configuration of the Nextcloud integration has been removed.
Nextcloud 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.
Breaking
Obihai
The previously deprecated YAML configuration of the Obihai integration has been removed.
Obihai 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.
Breaking
Persistent notifications
Persistent notifications are no longer stored in the state machine. This means that we no longer create an entity for each persistent notification.
If you used these entities in, for example, automations, scripts, or templates, you won't be able to use these anymore.
(@bdraco - #92828) (documentation)
The persistent_notification.mark_read service has been removed.
(@bdraco - #94122) (documentation)
Breaking
Rain Bird
The previously deprecated YAML configuration of the Rain Bird integration has been removed.
Rain Bird 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.
(@gjohansson-ST - #92599) (documentation)
The previously deprecated rainbird.rain_delay service for Rainbird has been removed. Please update any automation or script depending on this service.
Breaking
Salda Smarty
Home Assistant was still using the legacy Python pip package resolver, which has been removed. Due to upstream package conflicts, the Salda Smarty integration has been disabled.
The upstream project providing the libraries used has been notified repeatedly in, at least, the past two years; unfortunately, without response. We had no other choice than to disable this integration.
(@frenck - #92124) (documentation)
Breaking
Samsung Smart TV
The previously deprecated YAML configuration of the Samsung Smart TV integration has been removed.
Samsung Smart TV 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.
(@epenet - #93392) (documentation)
Breaking
Total Connect
The tampered and low battery status zone attributes have been moved into their own dedicated binary sensors. If you use these attributes in your automations, scripts, or dashboards, you will need to update those to reflect this change.
Breaking
Universal Devices ISY/IoX
The previously deprecated sensor entities for Insteon devices' On Level and Ramp Rate, as well as ISY Variable sensors, have been removed. Please use the dedicated number and select entities instead.
(@shbatm - #92255) (documentation)
Breaking
Vallox
The previously deprecated YAML configuration of the Vallox integration has been removed.
Vallox 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.
(@slovdahl - #91096) (documentation)
Breaking
Z-Wave
On/Off properties for the Indicator CC are no longer discovered as entities.
They were previously discovered as sensor entities which were not useful in cases where you wanted to change these values, and you would need to change the value for all three On/Off properties simultaneously in order for them to work, which wasn't supported with our existing discovery model.
(@raman325 - #90248) (documentation)
For devices with the Entry control generic device class, the Door lock mode config parameter no longer gets created as a sensor entity and will instead get created as a select entity.
(@raman325 - #92223) (documentation)
The Nice IBT4ZWAVE module was previously discovered as a light, but now it is discovered as a cover. The light entity will be permanently unavailable and can be safely deleted.
(@raman325 - #93946) (documentation)
If you have zwave_js cover entities already and your device supports Window Covering CC, you may see newly created cover entities. The old cover entities can safely be deleted, but all customizations must be reapplied to the new entities.
(@raman325 - #93314) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
From www.home-assistant.io/blog/2023/06/07/release-20236/#farewell-to-the-following
2023.6.1 – 2023.6.3: no action items (3 versions)
2023.7.0 2023-07-05
12 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/07/05/release-20237/#backward-incompatible-changes
Breaking
Home Assistant Container (Docker)
If you use the Home Assistant Container installation method, for example, using Docker, please make sure you are using our official (multi-platform) images.
The correct and preferred image to use for our stable releases is:
ghcr.io/home-assistant/home-assistant:stable
Although not the preferred location by the Home Assistant project, the image is also available on DockerHub:
homeassistant/home-assistant:stable
The reason for mentioning this in this breaking change section is that we have seen usage of our internal, intermediate, platform build images. These images are not meant for use directly, and using the above listed images is strongly recommended.
As of this release, we no longer publish our intermediate platform images to DockerHub. This means that if you are using these images, you will no longer receive updates. Please use the above-listed images instead.
Breaking
Bose SoundTouch
The previously deprecated YAML configuration of the Bose SoundTouch integration has been removed.
Bose SoundTouch 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.
Breaking
Conversation
When using the Assist shortcut on iOS, it will now always talk to Home Assistant conversation agent even if the OpenAI or Google LLM conversation integrations are set up.
(@balloob - #95225) (documentation)
Breaking
ESPHome
As an additional security hardening measure, the default for allowing ESPHome devices to make service calls has changed. If you want to permit the ESPHome device to make service calls, it must be enabled in the options flow.
- For existing devices, calling Home Assistant services continues to be allowed.
- For newly configured devices, it must now be enabled in the options flow.
(@bdraco - #95143) (documentation)
Breaking
Home Assistant Supervisor
The default name given to backups created with the hassio.full_backup and hassio.partial_backup services is now longer "" but the date and time the backup was initiated (%Y-%m-%d %H:%M:%S, for example, "2023-07-05 13:37:42").
(@ludeeus - #94468) (documentation)
Breaking
Hyperion
The behavior of Hyperion lights has changed:
Turning off the light entity will only clear the priority you have configured during the integration setup. Other Home Assistant independent light sources in Hyperion might still be active and cause light to be emitted. If you want to turn the light off entirely, regardless of active light sources, you can enable the switch.[instance]_led_device entity that acts as a global switch.
External effects that are unrelated to the Hyperion light source (such as USB capture) have been removed from the light entity. To control them, enable the respective disabled-by-default switch entity.
([@Sab44 ] - #80478) (documentation)
Breaking
MQTT
If the initial temperature, min_temp, or max_temp is not set, the default temperature will be converted to the set temperature_unit or system default temperature unit if this is not degrees Celsius.
(@jbouwh - #93965) (documentation)
The behavior of MQTT climate when power_command_topic is set has been changed:
- The
hvac_modestate attribute is no longer optimistically set ifpower_command_topicis defined andclimate.turn_onorclimate.turn_offis called. - When
hvac_modeis changed,payload_onorpayload_offmessages will not be published on thepower_command_topic.
This also means power_command_topic is no longer deprecated.
(@jbouwh - #94832) (documentation)
Breaking
MusicCast
The values for the source attribute have changed. We wanted to show more user friendly values for the source attribute, such as "Net Radio" instead of "net_radio".
If you have any automation depending on the source state attribute of the media player entity, you will have to update these. Calling the select_source service will still be possible using the old source names. (@micha91 - #74954) (documentation)
Breaking
SMHI
The attribute cloudiness has been replaced by the attribute cloud_coverage. Please update any automation or scripts that is using this attribute to use the newly added cloud_coverage attribute.
Breaking
Slack
The previously deprecated YAML configuration of the Slack integration has been removed.
Slack 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.
Breaking
Xbox
The previously deprecated YAML configuration of the Xbox integration has been removed.
Xbox 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.
Breaking
Z-Wave
Fan speed percentage for Honeywell(JE/Jasco) 39358 and Enbrighten(GE/Jasco) 55258 in wall fan controllers are now mapped to levels (low, medium, high).
This may affect scripts or automatons setting fan speeds to specific percentages.
(@jgrieger1 - #92371) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- SenseME has been removed. Big Ass Fans changed the protocol in a newer firmware in April 2022. The Big Ass Fans integration can be used as a replacement, after updating to the latest firmware. (@bdraco - #94363)
From www.home-assistant.io/blog/2023/07/05/release-20237/#farewell-to-the-following
2023.7.1 – 2023.7.3: no action items (3 versions)
2023.8.0 2023-08-02
7 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/08/02/release-20238/#backward-incompatible-changes
Breaking
Python 3.10 support has been removed
Python 3.10 support has previously been deprecated and has now been removed. Home Assistant now requires Python 3.11 to run.
You don't have to do anything if you are using Home Assistant OS, Home Assistant Container, or Home Assistant Supervised installation method. In those cases, we handle this all for you.
Your system has been using Python 3.11 for quite some time already.
Breaking
Discovery
The legacy discovery integration has been removed. This only affects the automatic discovery of Enigma2, Yamaha Network Receivers, and Bluesound.
These can still be manually configured as per usual.
Note this is for our very, very old discovery logic. This does not affect the discovery of any other integration/device/service.
If you still have discovery: listed in your YAML configuration, you can safely remove it.
Breaking
Ecovacs
The Ecovacs integration has been migrated to the new "StateVacuumEntity" under the hood.
The states of the vacuum entity now report not only on or off, instead cleaning, paused, docked (implicit mean charging), returning (to base), idle and error. Further, the actions turn_on (start cleaning), and turn_off (stop cleaning and return to base) were superseded by three single actions start, stop and return_to_base.
(@mib1185 - #95920) (documentation)
Breaking
Google Nest
The legacy Works With Nest API is no longer supported. You must manually take action to use the SDM API by removing the Nest configuration from configuration.yaml and restarting Home Assistant. Then add the Nest integration following the instructions. Please review the documentation for information about which devices are supported.
Additionally, as a reminder, the legacy Works With Nest API is shutting down in September 2023.
(@allenporter - #96111) (documentation)
Breaking
MQTT
It's no longer allowed for an MQTT RGB light without a brighness_state_topic to report an RGB value of RGB=0,0,0. The reason is that for such lights, the light's brightness is derived from the RGB value, and an RGB value of RGB=0,0,0 corresponds to a brightness of 0 which is not allowed.
In case an MQTT RGB light without a brighness_state_topic reports 0,0,0 for R, G, and B, that update will be ignored.
(@jbouwh - #96286) (documentation)
The MQTT climate CONF_POWER_STATE_TOPIC and CONF_POWER_STATE_TEMPLATE were deprecated in HA Core 2023.2.0 and are now removed. Please remove these options from your configuration. The options were not implemented but will break your MQTT configuration if they are still present in your config.
(@jbouwh - #96771) (documentation)
The way MQTT entities are named and how device configuration can be shared between discovered entities has changed.
Sharing of device configuration
Discovered MQTT entities can share device configuration, meaning one entity can include the full device configuration, and other entities can link to that device by only setting mandatory fields.
The mandatory fields were previously limited to at least one of connection and identifiers, but have now been extended to at least one of connection and identifiers as well as the name.
Naming of MQTT entities
The naming of MQTT entities has been changed to be aligned with the entity naming guidelines:
- The
has_entity_nameentity will be set toTrueon all MQTT entities. - This means any MQTT entity which is part of a device will automatically have its
friendly_nameattribute prefixed with the device name. - Unnamed
binary_sensor,button,event,number, andsensorentities will now be named by their device class instead of being named "MQTT binary sensor" etc. - It's now allowed to set an MQTT entity's name to
Noneto mark it as the main feature of a device.
(@jbouwh - #95159) (documentation)
Breaking
Philips Dynalite
The Dynalite configuration panel, which previously was on the Home Assistant sidebar, has moved. It can now be accessed via the integration page in Settings > Device & services > Dynalite > Configure.
(@frenck - #95920) (documentation)
Breaking
Renson
The state values of the Reason Ventilation integration have been changed to be more consistent with other integrations and are now lowercase. Additionally, it can now provide translations for the state values in the UI.
This means that the following state values have changed:
Off->offLevel1->level1Level2->level2Level3->level3Level4->level4Breeze->breezeHoliday->holiday
Please update any automations where you are using the state of this Renson sensor.
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Discovery has been removed. This is the old legacy discovery integration. See the backward-incompatible changes above for more information. (@frenck - #96856)
- Mi Flora has been removed. This integration was replaced by the Xiaomi BLE integration a long time ago and was in a non-functional state. (@frenck - #96868)
- Xiaomi Mijia BLE T&H Sensor has been removed. This integration was replaced by the Xiaomi BLE integration a long time ago and was in a non-functional state. (@frenck - #96869)
From www.home-assistant.io/blog/2023/08/02/release-20238/#farewell-to-the-following
2023.8.1 – 2023.8.4: no action items (4 versions)
2023.9.0 2023-09-06
16 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2023/09/06/release-20239/#backward-incompatible-changes
Breaking
BMW Connected Drive
The "Refresh from cloud" button has been removed. Use the homeassistant.update_entity service with any BMW entity for a full reload instead.
(@rikroe - #97864) (documentation)
Breaking
DoorBird
The doorbird_reset_favorites event is no longer fired when the clear webhook is called. Note: this event was never documented.
(@bdraco - #98585) (documentation)
Breaking
Enphase Envoy
Envoy versions < 3.9 (pre-API) are no longer supported as they require web scraping which is disallowed by ADR-0004.
(@bdraco - #97862) (documentation)
Breaking
ESPHome
To prevent cross-linked devices, replacing an ESPHome device with a different board is no longer allowed. Instead, delete the integration entry and re-add the new device when the mac address of the board changes.
(@bdraco - #98787) (documentation)
Breaking
EZVIZ
Only switches supported by the camera will be created. Non switchable switches have been removed.
(@RenierM26 - #95672) (documentation)
Breaking
Flume
You might get false positives for leak detected and high flow sensors if you have old unread notifications in the Flume app.
Before, the leak detected and high flow sensors would only trigger until you read the notification in the Flume app which was too late for Home Assistant to take any automated action.
Now, they trigger regardless if you have read or not the notification. They will remain active until you delete the notification in the Flume app, similar to the old behavior documented.
(@tronikos - #98560) (documentation)
Breaking
Hive
The previously deprecated service hive.boost_heating has been removed.
Breaking
HTTP / Webserver
Home Assistant can't be put in an iframe anymore by default. If you still want to embed the Home Assistant interface in a frame, you can do so by disabling use_x_frame_options by setting it to false in the http configuration.
(@frenck - #97784) (documentation)
Breaking
Météo-France
The Météo-France weather entities have been updated:
- The
forecaststate attribute is deprecated and will be removed in Home Assistant Core 2024.3, you should instead use theweather.get_forecastservice. - The config entry option to select hourly or daily forecast can no longer be adjusted, but any existing configuration of the forecast period will be respected until Home Assistant Core 2024.3.
- Météo-France now provides a single weather entity which supports both hourly and daily forecast.
(@emontnemery - #98022) (documentation)
Breaking
Mill
Mill has moved to a new IoT solution and released a new API. The unique ID from the old API is no longer available, so all devices will be shown as new devices. Support for the heater fan will be added later.
Breaking
MQTT
MQTT device trackers no longer always update when there is no state change. This means that automations that trigger on a state change no longer are triggered if there is no change.
(@jbouwh - #98838) (documentation)
Breaking
Nextcloud
The CPU load sensor has been replaced, it is not a list of 3 values anymore, but there are now three single sensors for CPU load within last 1, 5, and 15 minutes.
(@mib1185 - #99141) (documentation)
Breaking
Plugwise
The maximum_boiler_temperature sensor entity has been replaced by a number entity, allowing control as well.
(@CoMPaTech - #97203) (documentation)
The additional schema state attributes of the climate entity have been removed. They have beeen previously replaced by a select entity.
(@bouwew - #98153) (documentation)
Breaking
Start.ca
Start.ca limit, usage, and used_remaining sensors will no longer be created when there's no bandwidth cap.
(@emontnemery - #98525) (documentation)
Breaking
Trafikverket Train
All attributes have been converted into their own sensors. The original sensor is now renamed with suffix "Departure time".
Any automation or script depending on these attributes needs to be adjusted to use these new sensors.
Breaking
Z-Wave
The entity naming logic has been updated to be less brittle. As a result, some zwave_js entities that you haven't given a custom name to may be renamed.
Since they are registered in the entity registry, the entity IDs will not change and your automations should therefore not be impacted by the change.
(@raman325 - #98140) (documentation)
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.31.0 or greater (schema 31).
If you use the Z-Wave JS add-on, you need at least version 0.1.88. If you use the Z-Wave JS UI add-on, you need at least version 1.15.9. If you use the Z-Wave JS UI Docker container, you need at least version 8.23.2. 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.31.0.
(@raman325 - #99250) (documentation)
2023.9.1 – 2023.9.3: no action items (3 versions)
2023.10.0 2023-10-04
9 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2023/10/04/release-202310/#backward-incompatible-changes
Breaking
HomeKit Bridge
The HomeKit integration now supports media player receivers. HomeKit expects receivers to be paired in accessory mode. Existing receivers paired in bridge mode should be re-added in accessory mode.
(@bdraco - #100717) (documentation)
Breaking
Modbus
The close_comm_on_error configuration is no longer optional, sockets will always be closed on error. Therefore, the close_comm_on_error is now deprecated and will be removed in Home Assistant 2024.3.
(@janiversen - #99946) (documentation)
Breaking
MQTT
An MQTT lock with a configured state topic will initialize with state unknown instead of state unlocked unless the lock is set to optimistic mode.
MQTT locks set to optimistic mode will still be initialized with the unlocked state. You should check if your automations are affected.
(@jbouwh - #100943) (documentation)
Breaking
NZBGet
The option to set a custom scan interval in NZBGet via the options UI has been removed. The update interval is now every 5 seconds.
If you want to restore the custom scan interval behavior, please see the homeassistant.update_entity service.
(@joostlek - #98869) (documentation)
Breaking
OpenTherm Gateway
Some of the older binary sensors and sensors from the OpenTherm gateway have been deprecated since January 2021. They have now been removed. Please use the new binary sensors and sensors that have been created since.
(@joostlek - #99712) (documentation)
Breaking
Pentair ScreenLogic
Some entity names have changed. The integration will migrate old entities to new names/IDs. You may have to manually update old entities used in, for example, your dashboards.
Invalid entities such as "Saturation Index" are removed if the required equipment is not configured.
(@dieselrabbit - #92475) (documentation)
Breaking
Supervisor
The default name given to backups created with the hassio.full_backup and hassio.partial_backup services are no longer the UTC date and time the backup was initiated. Instead, the local date and time are used for the name.
(@jpbede - #100959) (documentation)
Breaking
Twitch
Any existing app you have created in the Twitch Developer Portal to work with this integration must be updated to work with Home Assistant's UI authentication flow. Update the app's configuration to include https://my.home-assistant.io/redirect/oauth in its list of "OAuth Redirect URLs"
Breaking
Z-Wave
Multiple WebSocket commands have been renamed based on this change in Z-Wave JS.
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.32.0 or greater (schema 32).
- If you use the Z-Wave JS add-on, you need at least version
0.1.91. - If you use the Z-Wave JS UI add-on, you need at least version
2.0.0. - If you use the Z-Wave JS UI Docker container, you need at least version
9.0.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.32.0.
(@raman325 - #100833) (documentation)
2023.10.1 – 2023.10.5: no action items (5 versions)
2023.11.0 2023-11-01
10 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/11/01/release-202311/#backward-incompatible-changes
Breaking
Demo
In the unlikely event that you are using the demo integration, you will need to ensure that your YAML configuration for demo integration is only enabled via the integration domain key and not via the entity platform configuration. The latter has been removed.
# Example configuration.yaml
# This is correct
demo:
# This no longer works and should be removed
light:
- platform: demo
Breaking
OpenUV
The OpenUV "UV Level" sensor has updated its possible state values so that translations can occur. The new values are:
extremehighlowmoderatevery_high
If you previously used the state values of this sensor in your automations, you will need to update them to use the new values.
(@bachya - #101978) (documentation)
Breaking
OpenWeatherMap
The OpenWeatherMap rain and snow sensors now have a different unit of measurement (mm/h instead of mm) and a different device class (precipitation_itensity instead of precipitation).
(@MatteoGheza - #101485) (documentation)
Breaking
Transmission
The option to set a custom polling interval has been removed. If are using custom interval and really need it, you can use the homeassistant.update_entity in an automation to poll at your custom pace. See our documentation on defining a custom polling interval for more information.
(@engrbm87 - #98858) (documentation)
Breaking
Västtrafik
Västtrafik has upgraded all infrastructure for handling external access, including handling user accounts for 3rd party applications.
This means that users of the older infrastructure now need to migrate to use the new environment. Create a new account at https://developer.vasttrafik.se, then create a new application and subscribe to the Planera Resa v4 API.
Next replace your old client identifier and secret in your Home Assistant configuration.
For more information, see this official post from Västtrafik.
(@Miicroo - #102570) (documentation)
Breaking
WeatherFlow
The VOC device class has been removed from the air density sensor, and its unit of measurement has been changed to kg/m³.
Breaking
Withings
The Withings sleep sensors will now show only the data from last night instead of an aggregation of the data since the day before noon.
(@joostlek - #101993) (documentation)
Breaking
World Air Quality Index (WAQI)
The state attributes of the WAQI air quality sensor have been moved to their own sensors. The previous state attributes are now deprecated and will be removed in 2024.5.
If you are using the state attributes of the WAQI air quality sensor, you will need to update your automations to use the new sensors.
(@joostlek - #101217) (documentation)
Breaking
ZHA (King of Fans)
Improved support for King of Fans (Hampton Bay) breaks previous workarounds such as template fans (example) or automations/scripts that set fan speed percentage or preset.
If you have an automation that sets speed, it will now be at one speed higher. If you set the speed at 100% before, it would actually set the speed at 75%, but now it will be 100%. If you have an automation that sets the preset to 'on' to get 100% speed, now the request will fail, and you will have to change the speed to 100% instead.
(@tronikos - #101859) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.33.0 or greater (schema 33).
- If you use the Z-Wave JS add-on, you need at least version
0.2.1. - If you use the Z-Wave JS UI add-on, you need at least version
2.2.3. - If you use the Z-Wave JS UI Docker container, you need at least version
9.2.3. - 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.33.0.
(@raman325 - #102790) (documentation)
Basic Command Class values were previously exposed as number entities and were disabled by default. They are now exposed as light entities and are enabled by default.
If you have scripts or automations that use any of these number entities, they should be updated to use the new light entities instead. Any previously created number entities for this Command Class can safely be deleted once you have validated that your scripts and automations are up to date.
(@raman325 - #101438) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- Eight Sleep has been removed. The API has changed and is no longer accessible, making the integration unusable. (@raman325 - #102669)
- IMAP email content has been removed. This functionality is now available in the IMAP integration. Users have been assisted to migrate to the new integration in the past months. (@jbouwh - #101233)
- Shiftr has been removed. Shiftr.io closed its platform and is no longer available. (@stefanroelofs - #102224)
From www.home-assistant.io/blog/2023/11/01/release-202311/#farewell-to-the-following
2023.11.1 – 2023.11.3: no action items (3 versions)
2023.12.0 2023-12-06
14 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2023/12/06/release-202312/#backward-incompatible-changes
Breaking
Calendar
calendar.list_events uses an outdated response data format and is now deprecated, pending removal in Home Assistant 2024.6.
Please use calendar.get_events, which supports multiple entities, instead.
The output of this newer service changed slightly, as it now returns a mapping of entity IDs to lists of events instead of a list of events.
(@eifinger - #102481) (documentation)
Breaking
Counter
The previously deprecated counter.configure service has been removed.
Breaking
DSMR
DSMR entities will not automatically update on each received DSMR telegram when the value between telegrams has not changed.
If you rely on this, for example, for graphing, please refer to the statistics integration.
(@gigatexel - #104037) (documentation)
For users using the 5B version: The previous gas sensor (Gas consumption) will change to Gas consumption mbusX. Also, multiple gas sensors will be possible.
(@dupondje - #84097) (documentation)
Breaking
EZVIZ
The previously deprecated detection sensitivity service has been removed.
Breaking
Genius Hub
The initial state of the smart plug did not reflect the same state as in the Genius Hub application. Correcting this creates a backward-incompatible change in that the behavior is now correct but different.
If you have an automation that relies on this state, you should check if your automation or script is still behaving as expected.
(@GeoffAtHome - #102110) (documentation)
Breaking
Home Assistant API
When calling a service via the Home Assistant REST API, the service used to be canceled on connection drop, which is no longer the case. If you relied on that behavior, you would need to revisit the logic. With this change, a connection drop will not cancel the service call.
Also, a REST post to call a service with the /api/services/<domain>/<service> endpoint will no longer timeout after 10 seconds.
(@Shulyaka - #102657) (@MartinHjelmare - #104709) (documentation)
Breaking
HomeWizard Energy
The HomeWizard HWE-SKE (the wall plugs), SDM230, and SDM630 provided duplicate sensors for energy import and export: A total and a tariff of 1.
As only a single tariff is available on those, the total and tariff 1 are always the same. To clean this up, tariff 1 has been removed.
If you used this sensor in your energy dashboard, you will need to configure your energy dashboard to use the total import/export sensor instead.
(@frenck - #104493) (documentation)
Breaking
Nibe Heat Pump
S-Series entities priority-3102, hot-water-demand-mode-40057, and oper-mode-40238 are changed from a number entity to a select entity with mapping values for the possible choices.
If you have the old number entities enabled, you can delete them since they will no longer be provided by the integration.
(@elupus - #103788) (documentation)
Breaking
Open Exchange Rates
Remove rounding of the exchange rate.
Exchange rates are generally more sensitive to small changes, and some quotes need many decimal numbers to be accurate. The Open Exchange Rates service will provide different significant digits for different quotes.
You can change the display precision or use a template sensor to customize the rounding of the value.
Breaking
Ping
The option to set a custom polling interval has been removed. If you are using custom interval and really need it, you can use the homeassistant.update_entity in an automation to poll at your custom pace. See our documentation on defining a custom polling interval for more information.
(@jpbede - #103743) (documentation)
Breaking
Scenes
Support for the, in November 2019 deprecated, attributes brightness_pct, color_name, flash, kelvin, profile, and transition have been removed from light scenes.
If you have used these attributes in your scenes, you will need to adjust those to this change.
(@emontnemery - #104254) (documentation)
Breaking
SMTP
The SMTP integration will send images as attachments to a plain text email instead of HTML in-line when the html field is not set.
Previous behavior was to send all images as HTML in-line even when the html field was not set. To continue sending images as in-line, please set the optional html field and include the images as <img src="cid:image_name.ext"> within the HTML block as described in the documentation.
(@aptalca - #93562) (documentation)
Breaking
Trafikverket Weather Station
Trafikverket Weather has changed its endpoint and is no longer providing the information for wind direction and precipitation in plain text, so therefore, these sensors have been removed:
- Wind direction text
- Precipitation name
Breaking
Weather
weather.get_forecast uses an outdated response data format and is now deprecated, pending removal in Home Assistant 2024.6.
Please use weather.get_forecasts, which supports multiple entities instead.
The output of this newer service changed slightly, as it now returns a mapping of entity IDs to lists of forecasts instead of a list of forecasts.
(@eifinger - #102534) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
- MyQ has been removed. Read all about it in our blog post.
- eQ-3 Bluetooth Smart Thermostats have been removed. The integration has been in a non-functional state for a long time.
From www.home-assistant.io/blog/2023/12/06/release-202312/#farewell-to-the-following
2023.12.1 – 2023.12.4: no action items (4 versions)
2024.1.0 2024-01-03
6 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/01/03/release-20241/#backward-incompatible-changes
Breaking
Blink
The service calls of Blink have been adjusted. This affects blink.trigger_camera, blink.save_video and blink.save_recent_clips.
This change will require these service calls to be updated with a target for the camera and by removing name from data of the blink service calls.
For example, service call before 2023.11:
service: blink.save_video
data:
name: Front door
filename: test.mp4
Service call after 2023.11 and before 2024.1:
service: blink.save_video
data:
device_id: 87dc3b85c18ee84f8c322a95e8230eb2
name: Front door
filename: test.mp4
New service call:
service: blink.save_video
target:
entity_id:
- camera.front_door
data:
filename: test.mp4
The blink.send_pin service now uses an integration/configuration entry selector:
Example service call before 2023.11:
service: blink.send_pin
data:
pin: "1234"
Service call after 2023.11 and before 2024.1:
service: blink.send_pin
data:
pin: "1234"
device_id: 87dc3b85c18ee84f8c322a95e8230eb2
New service call:
service: blink.send_pin
data:
config_entry_id: a1bee602deade2b09bc522749bbce48e
pin: "1234"
The blink.blink_update service is deprecated and will be removed in 2024.7.0. Use the homeassistant.update_entity service instead.
(@mkmer - #105413) (documentation)
Breaking
Home Assistant shutdown event
The event key in the (undocumented) trigger data for the homeassistant trigger platform is now the string shutdown for a homeassistant trigger configured to fire on shutdown instead of an Event object.
(@tetele - #91165) (documentation)
Breaking
Modbus
Setting swap: none has been removed from the Modbus configuration. It is identical to omitting it: swap:.
(@janiversen - #104713) (documentation)
Breaking
PrusaLink
- The printer state now contains several new statuses, most importantly "attention", which always needs your intervention.
- Firmware 4.7.0 is now the minimum version for Prusa XL and MK4.
- Firmware 5.1.0 is now the minimum version for Prusa Mini since 4.7.x and 5.0.x aren't available for the Mini.
(@Skaronator - #103396) (documentation)
Breaking
Reolink
The Reolink Infrared lights in night mode entity has been migrated from the light to the switch domain.
This means the entity ID also changed, and automations and dashboards may need to be adjusted to use the new entity ID.
If you want to go back to the light domain, use the switch_as_x "Show as" option on the new Infrared lights in night mode switch entity and select light.
Breaking
Shelly
The minimum supported firmware version for generation 1 devices is 1.11.0 (2021-07-15). The minimum supported firmware version for generation 2 devices is 1.0.0 (2023-08-03).
You must update your devices to the firmware versions listed or newer.
(@bieniu - #105384) (documentation)
2024.1.1 – 2024.1.6: no action items (6 versions)
2024.2.0 2024-02-07
26 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2024/02/07/release-20242/#backward-incompatible-changes
Breaking
Authentication
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)
Breaking
Blink
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)
Breaking
Cisco Webex Teams
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)
Breaking
EZVIZ
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)
Breaking
Google Generative AI Conversation
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)
Breaking
HomeWizard Energy
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)
Breaking
Honeywell Total Connect Comfort (US)
The preset mode was returning "unknown" rather than "none". Any references to preset_mode may need to be updated.
(@mkmer - #108599) (documentation)
Breaking
Huawei LTE
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)
Breaking
JustNimbus
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)
Breaking
Litter-Robot
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)
Breaking
Lutron
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.
Breaking
MELCloud
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.
Breaking
Met Office
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)
Breaking
MQTT
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.
(@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.
(@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)
Breaking
Proximity
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)
Breaking
Renson
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)
Breaking
RESTful Command
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)
Breaking
Roborock
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)
Breaking
Sensors
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)
Breaking
Swiss public transport
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)
Breaking
TP-Link Smart Home
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)
Breaking
Traccar
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)
Breaking
Tuya
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)
Breaking
Webhooks
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)
Breaking
Withings
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.
Breaking
Z-Wave
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)
Note
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)
From www.home-assistant.io/blog/2024/02/07/release-20242/#farewell-to-the-following
2024.2.1 – 2024.2.5: no action items (5 versions)
2024.3.0 2024-03-06
5 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/03/06/release-20243/#backward-incompatible-changes
Breaking
AEMET
The daily data for the current day wasn't available after midday, and now it will be. Automations and scripts relying on day[0] for checking the next-day forecast will have to be adjusted to use day[1] instead.
(@Noltari - #107795) (documentation)
Breaking
JuiceNet
The JuiceNet integration has been removed.
Enel X has migrated from JuiceNet to JuicePass, rendering the JuiceNet integration useless. Background and alternative solutions to the juicenet integration can be found in the related issue.
(@emontnemery - #111477)
Breaking
Met.no
The met.no integration previously created two entities for each configured location: one provided daily weather forecasts, and one provided hourly forecasts.
The met.no integration now only creates a single entity that provides both daily and hourly weather forecasts.
(@emontnemery - #97023) (documentation)
Breaking
MQTT
Aux heat, deprecated in Home Assistant Core 2023.9, is now removed from the MQTT climate.
(@jbouwh - #109513) (documentation)
Breaking
Z-Wave
For Z-Wave climate entities, the behavior of the climate.turn_on service has changed. Previously, the service would act in the following order depending on whether the corresponding conditions were met:
- If the entity supported the
offmode and exactly one additional mode,climate.turn_onwould set the mode to the additional mode. - If conditions for 1 were not met and at least one of the following modes were available, the service would set the mode to the first mode it found in the specified order:
heat_cool,heat,cool. - If conditions for 1 and 2 were not met, the service would silently do nothing.
Now, the service follows the following behavior in order:
- If the entity supports the
resumethermostat mode, it will be used to restore the last mode you used before the entity was turned off. - If the condition for 1 isn't met and the entity was turned off in Home Assistant, and Home Assistant wasn't restarted, Home Assistant remembers the last "on" mode and will set it to that mode. Home Assistant will be unable to set the entity to the previous mode if Home Assistant starts with the entity already in
offmode since the integration will not know what the previous mode was. - If conditions for 1 and 2 are not met and at least one of the following modes is available, the service sets the mode to the first mode it finds in the specified order:
heat_cool,heat,cool(no change to condition 2 above). - If conditions for 1, 2, and 3 are not met, the mode will be set to the first supported mode it finds (like
dryorfan_only).
(@raman325 - #109187) (documentation)
2024.3.1 – 2024.3.3: no action items (3 versions)
2024.4.0 2024-04-03
13 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2024/04/03/release-20244/#backward-incompatible-changes
Breaking
Python 3.11 support has been removed
Python 3.11 support has previously been deprecated and has now been removed. Home Assistant now requires Python 3.12 to run.
You don’t have to do anything if you are using the Home Assistant Operating System, Home Assistant Container, or Home Assistant Supervised installation method. In those cases, we handle all of this for you. Your system has been using Python 3.12 for quite some time already.
Breaking
AEMET OpenData
The AEMET OpenData integration previously created two entities for each configured location: one provided daily weather forecasts and the other hourly forecasts.
The AEMET OpenData integration now only creates a single entity that provides both daily and hourly weather forecasts.
Breaking
Dexcom
The trend sensor now uses values that are using snake_case instead of a space in the middle:
rising quickly->rising_quicklyrising slightly->rising_slightlyfalling slightly->falling_slightlyfalling quickly->falling_quickly
Please update your automations and scripts accordingly.
(@joostlek - #112423) (documentation)
Breaking
ecobee
The non-functional away preset mode has been replaced with the correct away_indefinitely preset mode.
If any automation or script depends on the away preset mode, it needs to be updated.
(@alexsydell - #108636) (documentation)
Breaking
Environment Canada
The Environment Canada integration previously created two entities for each configured location: one provided daily weather forecasts and the other hourly forecasts.
The Environment Canada integration now only creates a single entity that provides both daily and hourly weather forecasts.
Breaking
National Weather Service (NWS)
The National Weather Service integration previously created two entities for each configured location: one provided daily weather forecasts and the other hourly forecasts.
The National Weather Service integration now only creates a single entity that provides both daily and hourly weather forecasts.
Breaking
Met Éireann
The Met Éireann integration previously created two entities for each configured location: one provided daily weather forecasts and the other hourly forecasts.
The Met Éireann integration now only creates a single entity that provides both daily and hourly weather forecasts.
Breaking
Met Office
The Met Office integration previously created two entities for each configured location: one provided daily weather forecasts and the other hourly forecasts.
The Met Office integration now only creates a single entity that provides both daily and hourly weather forecasts.
Breaking
Modbus
The Modbus integration does not allow a configuration with the device only (no entities); this will create an issue, and the entry will not be loaded.
For the special cases (like some custom_components) where it is wanted, please add a dummy entity.
(@janiversen - #113516) (documentation)
Breaking
MQTT
Support for brightness is now assumed for mqtt lights with the json schema unless only color modes rgb, rgbw, or rgbww are supported.
For lights which only support color modes rgb, rgbw, or rgbww, the brightness option flag can still be set to false if brightness is not supported. In this case brightness support is emulated in Home Assistant by scaling the RGBx-values.
For all other color modes except ColorMode.ONOFF, it is assumed brightness is supported, and the brightness attribute will be included in the MQTT payload when the brightness attribute is supplied to the light.turn_on service.
(@jbouwh - #111676) (documentation)
Breaking
myUplink
If you have a Nibe SMO 20 in your account, you will notice that some 550 entities are no longer provided by the integration.
You can safely remove these entities as the integration does not use them.
(@astrandb - #113493) (documentation)
Breaking
Waze Travel Time
The options excl_filter and incl_filter now filter for exact matches to street names in the route. Previously, they only filtered on the short description of the route.
(@eifinger - #108613) (documentation)
Breaking
Weather
The previously deprecated forecast attribute of weather entities, has now been removed. Use the weather.get_forecasts service to get the forecast data instead.
Note
Farewell to the following
The following integrations are also no longer available as of this release:
From www.home-assistant.io/blog/2024/04/03/release-20244/#farewell-to-the-following
2024.4.1 – 2024.4.4: no action items (4 versions)
2024.5.0 2024-05-01
10 Breaking, 1 Note — show quotes
Quoted from www.home-assistant.io/blog/2024/05/01/release-20245/#backward-incompatible-changes
Breaking
AVM Fritz!SmartHome
Activating the HVAC mode heat no longer overwrites the current target temperature with the comfort temperature but retains the currently set target temperature unless the thermostat is in HVAC mode off, in which case the comfort temperature is still set.
Use the available presets or the set temperature service to set the target temperature for HVAC-mode heat.
Breaking
Big Ass Fans
The BAF fan Auto preset mode has been renamed to auto. Any scripts or automations using this need to be updated accordingly.
(@mill1000 - #109944) (documentation)
Breaking
ecobee
The preset modes Away, Home, and Sleep have been renamed to the lower-case variants away, home, and sleep.
This is consistent with the rest of Home Assistant, which also means Home Assistant can support icons and translations for these.
If you used these preset modes in your automations or scripts, you will need to update them to use the new names.
(@gagebenne - #116072) (documentation)
Breaking
Honeywell Total Connect Comfort (US)
The auxiliary heat climate option has been deprecated and will be removed in Home Assistant 2024.10.
Use the newly added emergency heat switch entity to set the thermostat mode to the previous auxiliary heat mode.
(@mkmer - #114110) (documentation)
Breaking
IMAP
The default for new entries is that the text and headers will no longer be included in the imap_content event data. Instead, if needed, you can fetch the email content using the imap.fetch service.
It will not break for existing entries where we assume text and headers are included.
(@luca-angemi - #115108) (documentation)
Breaking
Insteon
The Insteon configuration panel, which was previously on the Home Assistant sidebar, has moved to the integration page in Settings -> Device & services -> Insteon -> Configure.
(@teharris1 - #105581) (documentation)
Breaking
LG Netcast
Turn on action for turning the TV on via a custom script within configuration.yaml has been changed to use a custom automation trigger lg_netcast.turn_on or a device trigger that can be set up from the UI.
(@splinter98 - #104913) (documentation)
Breaking
Netatmo
The state of the Netatmo wind and gust direction sensor provided by the weather station now exposes the state in lowercase.
(@joostlek - #115413) (documentation)
The state of the Netatmo health index sensor provided by the weather station now exposes the state in lowercase.
(@joostlek - #115409) (documentation)
Breaking
Recorder
Previously, recorder.purge_entities called with no arguments would purge all entities. This PR makes this call raise an error instead.
It was too easy for users to accidentally purge their entire database using the old logic. Users who want to purge all entities can still use the recorder.purge service to achieve the same effect, and that service is more obvious in how it behaves.
(@karwosts - #110066) (documentation)
Breaking
Traccar Server
The following attributes have been removed from device_tracker entities provided by the Traccar server integration:
addressaltitudebattery_levelgeofencespeed
All of these are now dedicated sensor entities that you can enable.
(@ludeeus - #111374) (documentation)
The following attributes have been removed from device_tracker entities provided by the Traccar server integration:
motionstatus
All of these are now dedicated binary sensor entities that you can enable.
(@ludeeus - #114719) (documentation)
Note
Farewell to the following
The following integrations are also no longer available as of this release:
From www.home-assistant.io/blog/2024/05/01/release-20245/#farewell-to-the-following
2024.5.1 – 2024.5.5: no action items (5 versions)
2024.6.0 2024-06-05
9 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/06/05/release-20246/#backward-incompatible-changes
Breaking
Anova
The State and Mode entities for Anova devices have been changed to match the new protocol messaging. Any automations based on these entities will need to be updated.
(@Lash-L - #109508) (documentation)
Breaking
AVM FRITZ!Box Tools
The previously deprecated services reboot, reconnect, and cleanup have been removed. Please use the corresponding button entities instead.
(@mib1185 - #118108) (documentation)
Breaking
File
The notify services for the file integration now require that the file path is an allowed path. You should check the accessed file is in the allowlist_external_dirs to ensure your automations keep working.
(@jbouwh - #116861) (documentation)
Breaking
MQTT
MQTT Lock now supports the lock open and opening states. When a lock is used in optimistic mode, its state will become open instead of unlocked when it is opened.
(@jbouwh - #117110) (documentation)
The behavior on processing empty and "None" state payloads for MQTT entities has been made more predictable for alarm_control_panel, climate, cover, device_tracker, lock, select, valve, and water_heater items:
- A "None" (string) for a state payload generally means the state becomes
unknown. - An empty payload is ignored.
Previously, a "None" state could be considered invalid or ignored.
(@jbouwh - #117813) (documentation)
Breaking
OpenWeatherMap
Migration to the new library with support of OneCall API (3.0).
OWM API v2.5 will be closed in June 2024. All OpenWeatherMap integrations must be migrated to mode (API) v3.0 to avoid service interruption.
Before the migration, you must have an active subscription (be aware that subscription activation takes up to 2h). After the subscription is activated, users can migrate integrations to mode v3.0 via repair notification or manually via the integration configuration menu.
The subscription has a free tier with 1000 calls/day. Consider setting the limit on the OpenWeatherMap website to stay under the threshold where API usage incurs a cost.
OpenWeatherMap official statement
(@freekode - #116870) (documentation)
Breaking
Synology DSM
The option to define a custom timeout has been removed. The timeout is set static to a sane value of 30 seconds.
(@mib1185 - #116815) (documentation)
Breaking
Webmin
Duplicate entities may appear due to unique ID changes. The obsolete entities can be removed.
(@autinerd - #113084) (documentation)
Breaking
World Air Quality Index (WAQI)
The state attributes of the WAQI air quality sensor have been removed. The attributes have been replaced by individual sensors; use these instead.
(@joostlek - #116595) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance.
You must use zwave-js-server 1.35.0 or greater (schema 35).
- If you use the Z-Wave JS add-on, you need at least version 0.5.0.
- If you use the Z-Wave JS UI add-on, you need at least version 3.4.2.
- If you use the Z-Wave JS UI Docker container, you need at least version 9.10.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.35.0.
(@raman325 - #117288) (documentation)
2024.6.1 – 2024.6.4: no action items (4 versions)
2024.7.0 2024-07-03
23 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/07/03/release-20247/#backward-incompatible-changes
Breaking
Authentication
The legacy API password (legacy_api_password) authentication provider that was deprecated in Home Assistant 2023.12, has been removed.
(@edenhaus - #119976) (documentation)
Breaking
Azure DevOps
All attributes of the "latest build" sensor are now deprecated; each now has a dedicated sensor entity available. If you use these attributes in your automations or scripts, you need to adjust these to use one of the new sensors instead.
(@timmo001 - #114948) (documentation)
Breaking
Blink
The previously deprecated Blink update service has now been removed.
Breaking
BMW Connected Drive
The charging mode and charging status sensors have been updated to use lowercase state values. If you use these sensors in your automations or scripts, you must update them to use the new lowercase values.
(@rikroe - #118751) (documentation)
Breaking
Calendar
Calendar service list_events was deprecated in favor of get_events in Home Assistant 2023.12 and has now been removed.
Use the new get_events service to retrieve events from calendar entities instead.
Breaking
ComEd Hourly Pricing
The unit of measurement for the ComEd Hourly Pricing integration has been corrected from c to ¢/kWh.
(@themaxgross - #115594) (documentation)
Breaking
DNS IP
The attribute names Resolver and Querytype have been renamed to resolver and querytype. If you use these in any automations or scripts, you need to update them to use the new lowercase names.
(@gjohansson-ST - #119727) (documentation)
The attributes resolver, querytype, and ip_addresses for the DNS IP sensor are excluded from the recorder and no longer stored in history.
Breaking
Fast.com
The previously deprecated speedtest service from fastdotcom has been removed. Use the homeassistant.update_entity service to refresh and run a speedtest manually instead.
Breaking
Intergas InComfort/Intouch Lan2RF gateway
Based on the boiler display code or fault code, the boiler status has been refactored to be signified and unique so we can start supporting localization.
Depending on the old status texts, automations or scripts might break. You need to ensure your automations and scripts are updated to use the new status values.
The new display codes are:
- 0:
opentherm - 15:
boiler_ext - 24:
frost - 37:
central_heating_rf - 51:
tapwater_int - 85:
sensortest - 102:
central_heating - 126:
standby - 153:
postrun_boiler - 170:
service - 204:
tapwater - 231:
postrun_ch - 240:
boiler_int - 255:
buffer
The new fault codes are:
- 0:
sensor_fault_after_self_check - 1:
cv_temperature_too_high - 2:
s1_and_s2_interchanged - 4:
no_flame_signal - 5:
poor_flame_signal - 6:
flame_detection_fault - 8:
incorrect_fan_speed - 10:
sensor_fault_s1 - 11:
sensor_fault_s1 - 12:
sensor_fault_s1 - 13:
sensor_fault_s1 - 14:
sensor_fault_s1 - 20:
sensor_fault_s2 - 21:
sensor_fault_s2 - 22:
sensor_fault_s2 - 23:
sensor_fault_s2 - 24:
sensor_fault_s2 - 27:
shortcut_outside_sensor_temperature - 29:
gas_valve_relay_faulty - 30:
gas_valve_relay_faulty
(@jbouwh - #119207) (documentation)
Breaking
La Marzocco
On March 19th, 2024, La Marzocco released a machine firmware update, v3.5-rc5, together with a new version of the La Marzocco Home App.
Once the app update is installed, the previous scheduling functionality is removed from the app, and a new scheduling mode is shown. This mode is disabled until the machine's firmware has also been updated.
Similarly, if the machine's firmware is updated before the app, the previous scheduling functionality does not work.
The previous calendar and auto on/off switches are replaced with calendars and switches per schedule.
(@zweckj - #113935) (documentation)
Breaking
Logitech Harmony Hub
The harmony switch entities that were deprecated since Home Assistant 2024.1, have now been removed.
(@joostlek - #119206) (documentation)
Breaking
OpenWeatherMap
The now obsolete forecast sensors have been removed. They have been fully replaced by weather.get_forecasts service.
(@freekode - #119922) (documentation)
Breaking
Shelly
The switch entity for controlling a Shelly Gas Valve Add-on has been removed, and a valve entity has taken its place. If you use the switch entity in your automations or scripts, you must update them to use the new valve entity.
(@bieniu - #119817) (documentation)
Breaking
SimpliSafe
SimpliSafe no longer contains functionality to set a code for use within Home Assistant. This was a virtual code that was not used by the SimpliSafe system.
(@bachya - #118759) (documentation)
Breaking
SQL
An SQL query generating several columns output was putting the additional attributes on the SQL sensor.
From now on, these are still shown as state attributes but are no longer recorded in the database as attributes on this particular sensor (as the data for these attributes are already present in the database from where they come).
Breaking
Sun WEG
The new API version this integration now uses doesn't provide the kWh per kWP information, so that sensor is no longer available.
(@rokam - #118435) (documentation)
Breaking
Swiss public transport
Swiss public transport no longer provides additional state attributes; since the release of Home Assistant 2023.12, all information has been moved to dedicated individual sensors.
(@miaucl - #120256) (documentation)
Breaking
Tami4 Edge / Edge+
Due to upstream API changes, the UV & filter's last replaced date has been removed.
Additionally, uv_status & filter_status sensor entities have been changed to uv_installed and filter_installed.
(@Guy293 - #119158) (documentation)
Breaking
UniFi Protect
The set default doorbell text service (set_default_doorbell_text) has been removed. UI has removed this functionality in UI Protect 4.x.
It is still possible to set a custom message using the other services (unifiprotect.add_doorbell_text and unifiprotect.remove_doorbell_text, and setting it via the select entity), but there is no longer a default.
(@bdraco - #119695) (documentation)
Breaking
Utility Meter
The source entity, period, and CRON pattern entity state attributes have been removed from the sensor entity and moved to the integration diagnostics.
Note that these values are constant throughout the lifetime of a utility meter.
(@dgomes - #118637) (documentation)
Breaking
Weather
Weather service get_forecast was deprecated in favor of get_forecasts in Home Assistant 2023.12 and has now been removed.
Use the new get_forecasts service to retrieve forecast information from weather entities instead.
Breaking
WLED
The previously deprecated firmware binary sensor has been removed. Use the provided update entity for your WLED device instead.
(@frenck - #119984) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance.
You must use zwave-js-server 1.36.0 or greater (schema 36).
- If you use the Z-Wave JS add-on, you need at least version 0.6.0.
- If you use the Z-Wave JS UI add-on, you need at least version 3.8.2.
- If you use the Z-Wave JS UI Docker container, you need at least version 9.14.2.
- 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.36.0.
2024.7.1 – 2024.7.4: no action items (4 versions)
2024.8.0 2024-08-07
20 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/08/07/release-20248/#backward-incompatible-changes
Breaking
Recorder database upgrade notice
This notice applies only if you use the recorder integration with a MySQL or PostgreSQL database. If you are using the default SQLite database, you can ignore it.
This release includes a database upgrade/migration that increases the size of the number we can store for the identifier fields. For a more technical explanation, we are upgrading integer fields for ID columns from a 32-bit integer to BIGINT, which is a 64-bit integer.
This can cause the database upgrade to take longer than usual, depending on the size of your database.
Please be patient and let the upgrade process finish. Do not interrupt the upgrade process, as this can lead to a corrupted database.
(@emontnemery - #121025) (documentation)
Breaking
BlinkStick
The Blinksticklight integration is disabled because it requires software that is not open source. Any help or contributions to make this integration work without the closed-source software is welcome.
(@joostlek - #121846) (documentation)
Breaking
Bluesound
Sources behave slightly differently. Radio station providers (like TuneIn and Radio Paradise) are no longer part of the source list and are not selectable as sources.
Presets that play a specific radio station can be created in the BluOS app and are displayed as sources in Home Assistant.
The currently selected source tries to match those presets and falls back to the radio station provider (like TuneIn, Radio Paradise).
(@LouisChrist - #117257) (documentation)
Breaking
BMW Connected Drive
Describing attributes car and vin have been removed from BMW entities. If you need to look them up, please get them from the device info screen.
(@rikroe - [#120830]) (documentation)
Breaking
Climate
Scenes that use the deprecated auxiliary heat (aux_heat attribute) will no longer restore/set the auxiliary heat state when the scene is activated.
(@bjpetit - #121873) (documentation)
Breaking
Concord232
The Concord232 integration is disabled because it requires software that is not open source. Any help or contributions to make this integration work without the closed-source software is welcomed.
(@joostlek - #121974) (documentation)
Breaking
DoorBird
Previously, resetting the device favorites required working out a complicated URL. A button is now available to perform this operation.
(@bdraco - #121720) (documentation)
Breaking
Dovado
The Dovado integration is disabled because it requires software that is not open source. Any help or contributions to make this integration work without the closed-source software is welcomed.
(@joostlek - #121871) (documentation)
Breaking
Ecovacs
The attributes on the vacuum entity for the lifespan of the main brush, side brush, and filter are deprecated and will be removed in 2025.2.
These attributes are superseded by dedicated sensor entities.
(@mib1185 - #122740) (documentation)
Breaking
HomeKit Bridge
PM2.5 air quality sensors are now mapped to the US EPA AQI scale. The new cutoff value for US AQI Good (0-50) is 9.0 µg/m3 is thus now used to match the 2024 US EPA AQI standard.
(@sarabveer - #121093) (documentation)
Breaking
Lights
The following attributes are no longer saved in the database for light entities because their combinations would quickly fill up the database, and they are never used by Home Assistant:
brightnesscolor_modecolor_tempcolor_temp_kelvineffecths_colorrgb_colorrgbw_colorrgbww_colorxy_color
This change will not impact the operation of your lights, but it will reduce the amount of data stored in the database.
(@bdraco - #121776) (documentation)
Breaking
Matter
Multi-press events are now split into their own dedicated event type, such as multi_press_1, multi_press_2, etc., making it easier to automate multiple presses instead of looking manually at the number of presses count.
If you have used the current event type in your automations, you will need to update them to use the new event types.
(@marcelveldt - #122191) (documentation)
Breaking
MQTT
The schema option has been removed from the MQTT vacuum schema. YAML configs still containing this option will break after 6 months of deprecation. Users have been warned with a repair. Discovery configs will not break if the schema options are still in the config, but they will be ignored, and an error message will be logged to notice.
(@jbouwh - #121093) (documentation)
Breaking
MVG
(@joostlek - #121975) (documentation)
The MVG integration is disabled because it requires software that is not open source. Any help or contributions to make this integration work without the closed-source software is welcome.
Breaking
National Weather Service (NWS)
NWS weather entities no longer have a detailed_description in the return from the weather.get_forecasts service.
A new service, nws.get_forecasts_extra, is provided that includes detailed_description. The detailed_description is no longer provided for hourly forecasts in the nws.get_forecasts_extra service as the API does not return data. However a short_description is now available.
Breaking
NextBus
The messages, directions, and attribution attributes have been removed from the sensor. The new API doesn't provide these anymore.
Breaking
OpenAI Conversation
The previously deprecated 256, 512, and 1024 values for the size argument for the generate_image action have been removed. They have already been unsupported in the past (replaced with 1024x1024 by default).
If you still use these values in your automations or scripts, you will need to update them to use "1024x1024", "1024x1792", or "1792x1024" values.
(@Shulyaka - #122388) (documentation)
Breaking
Reolink
The password used for the Reolink device can only contain characters a-z, A-Z, 0-9 or @$*~_-+=!?.,:;'()[]. Other special characters will cause encoding issues in the video streams used by this integration and are therefore not allowed. When using an incompatible special character in the password, the integration will prompt you to change the password.
(@StarkillerOG - #34196) (documentation)
Breaking
WLED
The WLED integration now requires a WLED device running at least WLED 0.14.0
(@frenck - #122101) (documentation)
Breaking
Xiaomi Miio
The Nature and Normal preset modes will be renamed to nature and normal to support translations.
If you have automations or scripts that use the Nature or Normal preset modes, you will need to update them to use nature and normal instead.
(@piitaya - #122367) (documentation)
2024.8.1 – 2024.8.3: no action items (3 versions)
2024.9.0 2024-09-04
20 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/09/04/release-20249/#backward-incompatible-changes
Breaking
Recorder database upgrade notice
This notice applies only if you use the recorder integration with a MySQL or PostgreSQL database. If you are using the default SQLite database, you can ignore it.
Last release included a database upgrade/migration that increases the size of the number we can store for the identifier fields.
Not all migrations were successful despite being marked as successful. This release will do the migration again, but will catch unsuccessful migrations.
This can cause the database upgrade to take longer than usual, depending on the size of your database.
Please be patient and let the upgrade process finish. Do not interrupt the upgrade process, as this can lead to a corrupted database.
(@emontnemery - #123973) (documentation)
Breaking
Breaking
Breaking
August
If you are using a Yale Home device with the August integration, you should migrate to the new Yale integration.
Yale Home devices will soon stop working with the August integration.
(@bdraco - #124895) (august documentation - yale documentation)
Breaking
Ecovacs
The YAML configuration for the Ecovacs integration was removed. The configuration has been moved to the UI in Home Assistant 2024.2.
The YAML configuration was automatically imported and should be removed from your YAML configuration.
Breaking
GPSD
The YAML configuration for the GPSD integration was removed. The configuration has been moved to the UI in Home Assistant 2024.2.
The YAML configuration was automatically imported and should be removed from your YAML configuration.
Breaking
KNX
The KNX Climate preset modes are renamed to match the KNX specifications.
| KNX specifications | Previous | Now |
|---|---|---|
| Auto | none | auto |
| Comfort | comfort | comfort |
| Standby | away | standby |
| Economy | sleep | economy |
| Building protection | eco | building_protection |
Breaking
Logi circle
Logitech stopped accepting applications for access to the Logi Circle API in May 2022, and the Logi Circle integration has now been removed.
Breaking
Lupusec
The YAML configuration for the Lupusec integration was removed. The configuration has been moved to the UI in Home Assistant 2024.2.
The YAML configuration was automatically imported and should be removed from your YAML configuration.
Breaking
Lutron
In Home Assistant 2024.2, fans where converted from a light entity to a fan entity. The old light entities will no longer work in this release and can be removed.
Breaking
Mailbox
The Mailbox platform that was previously deprecated has been removed.
Breaking
MQTT
The schema option was removed from the MQTT vacuum schema in Home Assistant 2024.2. You should remove this from your YAML configuration if set.
Manual configured MQTT vacuum entities will break if the schema option is still configured. When using MQTT discovery the option will be silently ignored.
Breaking
Overkiz
Atlantic CozyTouch Water Heaters will now show the Manual operation mode as Electric.
A binary sensor was added to indicate if the manual mode is activated.
Users that have automations or scripts using these entities together with the Manual mode should update the automations or scripts accordingly.
Breaking
Proximity
In 2024.2, we introduced new sensor entities to the Proximity integration and therefore deprecated the proximity entity.
Now this deprecated proximity entity has been removed.
(@mib1185 - #123158) (documentation)
Breaking
Sensibo
The previous PM2.5 sensor for Pure devices was incorrectly reporting a PM2.5 value, but it's actually a number representing an AQI level. The sensor will now provide the new states of 'good', 'moderate', and 'bad'.
Breaking
Starline
The horn switch has been deprecated since 2024.1 and is now removed.
Instead of a switch a horn button entity was added. Please update your automations accordingly.
Breaking
System monitor
Removes the deprecated process sensor from the System Monitor integration. This sensor has been provided as a binary sensor for 6 months, raising a repair issue.
Breaking
TP-Link Smart Home
The binary sensor for "Update available" will no longer be provided by the TP-Link Smart Home integration.
It will be replaced in a subsequent release with the Update entity but is disabled for now due to stability issues when calling the TP-Link cloud API to check the latest firmware version. This may cause devices to go offline. They need to be power-cycled to function again. The sensor was also unreliable and may have returned incorrect data because of rate limiting from the TP-Link cloud.
Breaking
Velux
The YAML configuration for the Velux integration was removed. The configuration has been moved to the UI in Home Assistant 2024.2.
The YAML configuration was automatically imported and should be removed from your YAML configuration.
Breaking
Zigbee Home Automation
- The IKEA Starkvind fan modes have been updated. Automations that used to set the fan to 10% speed to switch it to "auto mode", should now be updated to set the preset to "auto."
In auto mode, the actual fan speed is now properly displayed.
For more information, see the PR in the ZHA repo.
- The firmware update entity logic has changed. A device will only be considered "up-to-date" if there is a known firmware update for it and the current firmware version is greater than the firmware update version. If there is no known firmware update, the device firmware state will be considered "unknown", as we can't tell if it's up to date or not.
Previously, we showed "up-to-date" if there was no known firmware which misrepresented the state for many devices.
2024.9.1 – 2024.9.3: no action items (3 versions)
2024.10.0 2024-10-02
14 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/10/02/release-202410/#backward-incompatible-changes
Breaking
Climate
We have added more validation to the climate.set_humidity action, which enforces that the set target humidity is within the targeted entity's minimum and maximum humidity levels.
You should adjust automations and scripts to use valid values if you are using this action.
Breaking
ecobee
The previously deprecated aux_heat attribute has been removed from the provided climate entity.
Breaking
Honeywell Total Connect Comfort (US)
The previously deprecated aux_heat attribute has been removed from the provided climate entity.
Breaking
Humidifier
We have added more validation to the humidifier.set_humidity action, which enforces that the target humidity is within the targeted entity's minimum and maximum humidity levels.
You might need to adjust automations and scripts to use valid values if you are using this action.
Breaking
Nuki
The previously deprecated nuki_id and battery_critical attributes have been removed from the Nuki entities. If you are using these attributes in automations or scripts, you need to update those.
(@steffenrapp - #125348) (documentation)
Breaking
OpenTherm Gateway
To modernize the OpenTherm Gateway integration, all entities have been split into different devices. As a result, the OpenTherm Gateway climate entity has been moved to a new OpenTherm Thermostat device.
Configurations that look for the climate entity by device must be adjusted accordingly.
In the process, all entities were reviewed and some were found to be irrelevant or superfluous. These entities have been removed. All removed entities were previously disabled by default, so anyone who has never manually enabled an entity in the OpenTherm Gateway integration is not affected by this.
All other users should review their configuration for using OpenTherm Gateway entities that no longer exist or have been assigned to another device.
(@mvn23 - #124869) (documentation)
Breaking
Pentair ScreenLogic
Support for use of an area, device, or entity as a target for ScreenLogic actions has been removed. Instead, use config_entry with the entry_id of the desired ScreenLogic
Support for using an area, device, or entity as a target for ScreenLogic actions has been removed. Instead, use config_entry with the entry_id of the desired ScreenLogic.
Breaking
Ping
The binary sensor attributes this integration provided have been replaced with sensor entities in Home Assistant 2024.4. These deprecated attributes have now been removed.
(@jpbede - #125760) (documentation)
Breaking
Ring
The ring.update action was deprecated in the 2024.4 release and has now been removed. Please use homeassistant.update_entity if you need a replacement.
(@jpbede - #125762) (documentation)
Breaking
Squeezebox (Lyrion Music Server)
We previously noticed that the squeezebox platform had deprecated the squeezebox_sync and squeezebox_unsync actions and the sync_group entity attribute in favor of the newer "join" framework common to all media players.
These deprecated actions and entity attributes have now been removed.
(@rajlaud - #125271) (documentation)
Breaking
Templates
Limit maximum template render output to 256KiB to ensure template renders do not inject unreasonable data into the system and cause a crash.
256KiB is likely to still block Home Assistant’s event loop for an unreasonable amount of time, but it's likely someone is using the template engine for large blocks of data, so we want a limit that still allows that but has a reasonable safety margin to prevent the system from crashing down.
Breaking
ThermoWorks Smoke
The ThermoWorks Smoke integration is disabled because it creates an unresolvable dependency conflict.
Contributions to fixing this conflict are greatly appreciated.
(@edenhaus - #125661) (documentation)
Breaking
Tfiac
The Tfiac integration is disabled because we cannot create valid Python wheels for its dependencies.
Contributions to fixing this issue are greatly appreciated.
(@edenhaus - #125692) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.37.0 or greater (schema 37).
- If you use the Z-Wave JS add-on, you need at least version
0.7.0. - If you use the Z-Wave JS UI add-on, you need at least version
3.9.0. - If you use the Z-Wave JS UI Docker container, you need at least version
9.16.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.37.0.
2024.10.1 – 2024.10.4: no action items (4 versions)
2024.11.0 2024-11-06
8 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/11/06/release-202411/#backward-incompatible-changes
Breaking
A. O. Smith
A. O. Smith now provides the hot water status as a percentage rather than low, medium, or high. The hot water status entity has been updated accordingly.
(@bdr99 - #127678) (documentation)
Breaking
Google Calendar
Google Calendar events that are declined are now omitted from the calendar.
Breaking
HomeKit
Historically, many integrations implemented doorbells as binary sensors with a device class of occupancy. This design was replaced with the new event entities, which use a purpose-built device class of doorbell.
HomeKit will no longer automatically link binary sensors with device class occupancy as linked doorbell sensors. However, linked doorbell sensors can still be configured manually via YAML.
(@bdraco - #127668) (documentation)
Breaking
Litter-Robot
Previously, Litter-Robot could have an off state. This has now changed to docked, as off isn’t a valid state for vacuum entities.
Breaking
Netatmo
The preset modes of the thermostat have been renamed in order to support translations Schedule, Frost guard, and Manual have been renamed to schedule, frost_guard, and manual.
(@piitaya - #128890) (documentation)
Breaking
Tibber
The tibber.get_prices action has been adjusted to return datetimes as strings instead of raw datetime objects.
Automations or template sensors using this may need to be modified with an as_datetime filter. See our templating documentation for more information on using these filters.
Breaking
Updates
State attributes of update entities have been changed:
- The
in_progressstate attribute is now always abool, never an integer. - A new state attribute
update_percentagehas been added. Theupdate_percentageis a number between 0-100 if an update is in progress and the entity supports reporting progress, orNoneif an update is not in progress or an update is in progress but the entity does not support reporting progress.
Scripts, automations, custom frontend components, etc., which consume the in_progress state attribute of update entities, need to be updated accordingly.
(@emontnemery - #128877) (documentation)
Breaking
WMS WebControl pro
The open/closed state of awnings will be inverted so that the UI visualization and positioning match reality. This means open (100%) now refers to the awning being completely retracted, and closed (0%) now means the awning is fully expanded. This is not in line with industry terminology, but Home Assistant does not yet natively support awnings of type patio.
(@mback2k - #128079) (documentation)
2024.11.1 – 2024.11.3: no action items (3 versions)
2024.12.0 2024-12-04
12 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2024/12/04/release-202412/#backward-incompatible-changes
Breaking
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)
Breaking
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)
Breaking
Glances
The previously deprecated Glances v2 API has been removed. Upgrade to v3 or higher to continue using the integration.
Breaking
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)
Breaking
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)
Breaking
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)
Breaking
QNAP
The QNAP sensors will no longer have the following extra state attributes:
memory_freememory_percent_usedmemory_sizememory_usednetwork_errnetwork_link_statusnetwork_max_speednetwork_rxnetwork_txstatussystem_tempuptimevolume_percentage_usedvolume_size_freevolume_size_totalvolume_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)
Breaking
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)
Breaking
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.
Breaking
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)
Breaking
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_linerestscrapesnmpsql
Breaking
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)
2024.12.1 – 2024.12.5: no action items (5 versions)
2025.1.0 2025-01-03
9 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/01/03/release-20251/#backward-incompatible-changes
Breaking
1-Wire
The unit of measurement has been removed from 1-Wire counters because count is not a unit 😁
(@jrieger - #132076) (documentation)
Breaking
Denon HEOS
Grouping a HEOS media player will now raise an exception if one of the members is not a valid HEOS player. Previously unknown or invalid members would be silently dropped.
(@andrewsayre - #132213) (documentation)
Breaking
devolo Home Control
The integration with devolo Home Control has been updated to remove the option to set the mydevolo URL. This option was used to integrate with the devolo Home Control Cloud for development purposes only. This option is no longer available.
(@Shutgun - #132821) (documentation)
Breaking
FXCOM RFXtrx
The unit of measurement has been removed from FXCOM RFXtrx counters because count is not a unit 😁
(@jrieger - #133108) (documentation)
Breaking
HomeWizard Energy
The unit of measurement for the "Water usage" sensor has been updated from l/min to L/min. This change standardizes the unit to improve consistency across Home Assistant.
Any automations, scripts, or templates that rely on the old unit may need to be adjusted. Long-term statistics will remain intact, but repair issues will be created to ensure the data is updated with the new unit.
(@DCSBL - #132261) (documentation)
Breaking
LIFX
The options color_temp and kelvin are no longer valid arguments for LIFX actions. Please use color_temp_kelvin instead.
(@epenet - #132730) (documentation)
Breaking
Tesla Fleet
The included OAuth application credentials have been removed, as Tesla no longer supports Open Source application registrations and is moving to a pay-per-use model.
Read more about this announcement in this blog post.
(@Bre77 - #132431) (documentation)
Breaking
UniFi Network
The states of "Device State" sensors have been standardized to match Home Assistant core rules and be translatable. This affects the following UniFi sensor states:
Connected, which now becameconnectedPending, which now becamependingFirmware Mismatch, which now becamefirmware_mismatchUpgrading, which now becameupgradingProvisioning, which now becameprovisioningHeartbeat Missed, which now becameheartbeat_missedAdopting, which now becameadoptingDeleting, which now becamedeletingInform Error, which now becameinform_errorAdoption Failed, which now becameadoption_failedIsolated, which now becameisolatedUnknown, which now becameunknown
If you used those states directly in your automations, scripts, or templates; you will need to adjust those to match these changes.
(@bieniu - #131921) (documentation)
Breaking
Zabbix
The integration now uses the official Zabbix Python API. Because of this, the minimum supported Zabbix version is now 5.0. This change drops support for Zabbix 4 and before.
(@kruton - #131674) (documentation)
2025.1.1 – 2025.1.4: no action items (4 versions)
2025.2.0 2025-02-05
7 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/02/05/release-20252/#backward-incompatible-changes
Breaking
Ecovacs
The attributes on the vacuum entity for the lifespan of the main brush, side brush, and filter have been deprecated and are now removed. These attributes are superseded by dedicated sensor entities.
Breaking
Home Connect
Some appliances might lose their power entity as the API does not report the power setting.
(@Diegorro98 - #135930) (documentation)
Breaking
IMGW-PIB
Some hydrology data is no longer available to Home Assistant users via IMGW-PIB API and for this reason, the following entities are removed:
flood alarmbinary sensorflood alarm levelsensorflood warningbinary sensorflood warning levelsensor
(@bieniu - #134668) (documentation)
Breaking
KNX
The "State Updater" option in the integration settings now works as intended. Previously, the option wasn’t applied correctly.
- When disabled: KNX will only read a
state_addressonce when the connection is established. - When enabled: KNX will also read any
state_addressif no value has been received for one hour.
Please review your integration settings to ensure this option is configured according to your preferences.
(@farmio - #135611) (documentation)
Breaking
Litter-Robot
Remove extra_state_attributes from Litter-Robot vacuum entities. These were previously migrated to sensors.
Breaking
MQTT
To change the MQTT broker settings, you need to start a reconfiguration. When CONFIGURE is selected, MQTT shows a "MQTT settings" page with subscribe and publish tools. The Re-configure MQTT button will be replaced with an MQTT options page.
The reconfiguration option will only be available from the MQTT integration entry context menu.
(@jbouwh - #133342) (documentation)
The MQTT publish action no longer supports the topic_template and payload_template attributes. Instead, only topic and payload should be used. In automation and scripts, users can use templates by default. Users were instructed to update their automations and scripts with a repair flow when the use of the deprecated action options was detected.
(@jbouwh - #134056) (documentation)
Breaking
Pentair ScreenLogic
Raw states derived from ScreenLogic enums are now lowercase instead of Title Case. This change impacts:
- pH/ORP dosing state sensor entities:
Dosing->dosingMixing->mixingMonitoring->monitoring- The
preset_modestate attribute for ScreenLogic climate entities, where raw states have also been underscored-spaced and had any punctuation removed. Solar->solarSolar Preferred->solar_preferredHeater->heaterDon't Change->dont_change
These changes support the addition of translation keys for text-based entity states. You should update any references to the above states/preset_modes to the new, lowercase versions.
2025.2.1 – 2025.2.5: no action items (5 versions)
2025.3.0 2025-03-05
8 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/03/05/release-20253/#backward-incompatible-changes
Breaking
Automations & scripts
The wait variable and variables defined by a response_variable set in an inner scope of a script or automation now propagate to outer scopes also if a variables action is present in the inner scope.
Furthermore, variables defined by a response_variable now also propagate out from parallel sequences. Scripts and automations which relied on the older (buggy) behavior might need to be adjusted.
(@arturpragacz - #138883)
Breaking
GPSD
All state attributes of the main sensor were replaced with a dedicated sensor Home Assistant in 2024.9. The deprecated attributes have now been removed.
(@jrieger - #137600) (documentation)
Breaking
Home Connect
Some programs and program switches (which are being deprecated) and program select entities may not be exposed anymore by the integration as they are missing an aiohomeconnect program key enumeration (file). You can get the diagnostics from the configuration entry or the device and open an issue or submit a PR with the generated diagnostics file on the aiohomeconnect repository to suggest the missing program(s).
(@Diegorro98 - #136116) (documentation)
Using program and option keys that aren't in the API documentation in Home Connect actions will no longer work. To be able to use undocumented program or option keys, open an issue or submit a pull request with the required keys at MartinHjelmare/aiohomeconnect.
(@Diegorro98 - #137027) (documentation)
Multiple Home Connect config entries will not be allowed to be configured. For regular users where all appliances in the home are connected to the same Home Connect account, there should not be any reason to have more than one config entry since all appliances in the home will be connected to the same account and config entry.
(@Diegorro98 - #137088) (documentation)
Breaking
MQTT
Legacy color_mode support for MQTT JSON lights has been removed. The support was deprecated in HA Core 2024.4.
Users with a YAML setup have been instructed to update their configuration in configuration.yaml via repair issue flow. Deprecation issues with MQTT JSON lights set up through discovery were communicated via warnings in the logs. Using the removed parameters in discovery will not break the configuration but will still log a warning.
(@jbouwh - #136996) (documentation)
Breaking
Proximity
The distance is now measured to the edge of the monitored zones (it takes the radius into account), instead of to the center of the zone as before. This leads to slightly different expected distance values, which you may have to adjust accordingly in your existing automations.
(@Spcemarine - #138819) (documentation)
Breaking
SmartThings
The energy and power sensors have been removed for every device that has a switch. They rarely worked because there were no energy or power capabilities available to get data from. If you do have the capabilities, it will still work for you.
(@joostlek - #138313) (documentation)
There are a lot of states that have been renamed; this might need an update in your automations or other configurations.
- Set options for dishwasher job state sensor in SmartThings (#139349)
- Add translatable states to SmartThings media source input (#139353)
- Add translatable states to SmartThings media playback (#139354)
- Add translatable states to oven mode in SmartThings (#139356)
- Add translatable states to oven job state in SmartThings (#139361)
- Add translatable states to robot cleaner movement in SmartThings (#139363)
- Add translatable states to robot cleaner turbo mode in SmartThings (#139364)
- Add translatable states to washer job state in SmartThings (#139368)
- Add translatable states to dryer job state in SmartThings (#139370)
Breaking
Synology DSM
The scan interval option has been removed, and the default of 15 minutes is used. If needed, there is an integration-independent and common way to set a custom polling interval.
(@mib1185 - #138490) (documentation)
Breaking
TechnoVE
The status sensor state high_charge_period was renamed to high_tariff_period.
2025.3.1 – 2025.3.4: no action items (4 versions)
2025.4.0 2025-04-02
4 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/04/02/release-20254/#backward-incompatible-changes
Breaking
Automation & script variable scopes
The variables action is no longer restricted to local scopes; it can now update the value of a variable also in outer scopes. If the variable was not previously defined, it will be created in the top-level (script run) scope.
actions:
- variables:
x: 1
y: 1
- sequence:
- variables:
y: 2 # Updates y, which exists in the outer scope
z: 2 # Since z is not defined yet, it is assigned in the top-level scope
- action: persistent_notification.create
data:
message: "{{ x }}, {{ y }}, {{ z }}" # x=1, y=2, z=2
# Note: previously, it would be: x=1, y=1, z undefined
If you have automations or scripts that use the same variable name in different (previously isolated) scopes, you will need to update them: simply use distinct variable names to prevent any conflicts.
(@arturpragacz - #141114)
Breaking
Jewish Calendar
Holiday sensor changes:
- In Israel, "Simchat Torah" is now "Shmini Atzeret, Simchat Torah"
- In Israel, the 30th of Shvat returns "Family Day, Rosh Chodesh"
Additionally, the type_id has been removed from the state attributes, use the type if needed instead.
(@tsvi - #137247) (documentation)
Breaking
Persistent notifications
Persistent notifications with notification_id config_entry_reconfigure are no longer created when an integration fails to authenticate. Automations triggering on such persistent notifications will thus no longer work.
(@emontnemery - #140932) (documentation)
Breaking
Reolink
The Reolink password is now limited to 31 characters. The latest versions of the Reolink app and desktop client also have this 31-character limit. If you configured your Reolink password years ago, it is possible it is longer than 31 characters. In that case you will get a reauthentication flow asking you to change the password. Passwords longer than 31 characters can cause issues in the latest Reolink API.
2025.4.1 – 2025.4.4: no action items (4 versions)
2025.5.0 2025-05-07
12 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/05/07/release-20255/#backward-incompatible-changes
Breaking
Theming & Typography
In this release, we’ve made foundational updates to our theming system, which include backwards incompatible changes:
- Polymer Components Removed: Legacy Polymer-based components have been fully removed. As a result, all related
paper-*CSS variables have also been removed. - Some variables have been migrated to new theme tokens.
- Others were outdated and have been removed entirely.
- New Typography Variables: We’ve introduced a new set of typography CSS variables to lay the groundwork for a more consistent and modern UI.
- These are part of an ongoing refactor and are not yet in use everywhere. More adoption will follow in future releases.
If you’re maintaining custom cards or themes, please update any usage of the following variables accordingly.
✅ New tokens
--ha-font-family-body
--ha-font-family-heading
--ha-font-family-code
--ha-font-family-longform
--ha-font-size-scale
--ha-font-size-2xs
--ha-font-size-xs
--ha-font-size-s
--ha-font-size-m
--ha-font-size-l
--ha-font-size-xl
--ha-font-size-2xl
--ha-font-size-3xl
--ha-font-size-4xl
--ha-font-weight-light
--ha-font-weight-normal
--ha-font-weight-medium
--ha-font-weight-bold
--ha-font-weight-body
--ha-font-weight-heading
--ha-font-weight-action
--ha-line-height-condensed
--ha-line-height-normal
--ha-line-height-expanded
--ha-font-smoothing
❌ Removed tokens
--paper-font-common-nowrap_-_text-overflow
--paper-font-display1_-_letter-spacing
--paper-font-headline_-_letter-spacing
--paper-font-common-base_-_font-family
--paper-font-common-base_-_-webkit-font-smoothing
--paper-font-common-code_-_font-family
--paper-font-common-code_-_-webkit-font-smoothing
--paper-font-common-nowrap_-_white-space
--paper-font-common-nowrap_-_overflow
--paper-font-title_-_overflow
--paper-font-title_-_text-overflow
--paper-font-title_-_text-overflow
--paper-font-title_-_white-space
--paper-item-body-two-line-min-height
--paper-time-input-justify-content
--paper-item-body-three-line-min-height
--paper-item-icon-width
--paper-card-header-color
--paper-dialog-color
--paper-font-headline_-_white-space
--paper-font-headline_-_overflow
--paper-font-headline_-_text-overflow
--paper-font-subhead_-_white-space
--paper-font-subhead_-_overflow
--paper-font-subhead_-_text-overflow
--paper-item-icon-active-color
--paper-listbox-background-color
🔄 Migrated tokens
--code-font-family → --ha-font-family-code
--paper-font-title_-_-webkit-font-smoothing → --ha-font-smoothing
--paper-font-headline_-_-webkit-font-smoothing → --ha-font-smoothing
--paper-font-display1_-_-webkit-font-smoothing → --ha-font-smoothing
--paper-font-subhead_-_-webkit-font-smoothing → --ha-font-smoothing
--paper-font-body1_-_-webkit-font-smoothing → --ha-font-smoothing
--paper-font-display1_-_font-family → --ha-font-family-body
--paper-font-display1_-_font-size → --ha-font-size-4xl
--paper-font-display1_-_font-weight → --ha-font-weight-normal
--paper-font-display1_-_line-height → --ha-line-height-condensed
--paper-font-headline_-_font-family → --ha-font-family-body
--paper-font-headline_-_font-size → --ha-font-size-2xl
--paper-font-headline_-_font-weight → --ha-font-weight-normal
--paper-font-headline_-_line-height → --ha-line-height-condensed
--paper-font-title_-_font-family → --ha-font-family-body
--paper-font-title_-_font-size → --ha-font-size-xl
--paper-font-title_-_font-weight → --ha-font-weight-medium
--paper-font-title_-_line-height → --ha-line-height-normal
--paper-font-subhead_-_font-family → --ha-font-family-body
--paper-font-subhead_-_font-size → --ha-font-size-l
--paper-font-subhead_-_font-weight → --ha-font-weight-normal
--paper-font-subhead_-_line-height → --ha-line-height-normal
--paper-font-body1_-_font-family → --ha-font-family-body
--paper-font-body1_-_font-size → --ha-font-size-m
--paper-font-body1_-_font-weight → --ha-font-weight-normal
--paper-font-body1_-_line-height → --ha-line-height-normal
--paper-item-icon-color → --state-icon-colorBreaking
17TRACK
The previously deprecated state attributes for the 17TRACK entities have been removed.
If you relied on these attributes in your automations or scripts, you will need to update them to use the dedicated sensors instead.
(@joostlek - #142622) (documentation)
Breaking
AVM FRITZ!SmartHome
The AVM Fritz!Smarthome has a concept of devices and units. A device can have multiple units with different features. We now merge all units of a device into one entry representing the physical device.
As this might remove existing devices and create new ones, you should check your automations and scripts to see if they need to be adjusted to the new device registry entries.
(@mib1185 - #142845) (documentation)
All the extra state attributes of the climate entity got migrated to their own entities. With this these attributes are deprecated and will be removed in Home Assistant 2025.11.
If you rely on these attributes in your automations or scripts, you will need to update them to use the dedicated sensors instead.
(@mib1185 - #143394) (documentation)
Breaking
Generic Thermostat
The switch targeted by the Generic Thermostat is now only turned on when the current temperature falls outside the target temperature range (target_temp +- tolerances).
Previously, it would also turn on when the temperature was equal to the limit of the target range.
(@esand - #138209) (documentation)
Breaking
HomeKit Bridge
The name configured in Home Assistant now takes precedence for the following HomeKit child accessories:
- Fan presets (switches)
- Media player sources (switches)
- Power strips (Input Select, etc) (outlets)
- Triggers (stateless programmable switches)
This fixes an issue where the name is missing in HomeKit for these child accessories. The downside is that the name provided by Home Assistant has to be changed in Home Assistant (where applicable).
(@bdraco - #142531) (documentation)
Breaking
Google Maps Travel Time
Google has deprecated the Distance Matrix API. The new Routes API does not provide the state attributes Destination addresses and Origin addresses anymore.
The amount of free requests got halved, resulting in the sensor now refreshing every 10 minutes instead of every 5 minutes.
(@eifinger - #140691) (documentation)
Breaking
La Marzocco
La Marzocco released the gateway firmware v5 last month, which stopped supporting local communication. We now fully support this firmware; support for older firmware has been dropped.
The following entities and controls are missing, either because they are no longer supported by the app or not part of the new library version yet:
- Steam & coffee boiler temperatures
- Shot timer sensor
- Scale support
- Steam temperature number
- Prebrew & Preinfusion numbers
(@zweckj - #142098) (documentation)
Breaking
Network UPS Tools (NUT)
The status sensor has changed, providing the state from the UPS Display.
Previously, multiple states would be concatenated using a space, which made them harder to read and process. As of this release, multiple statuses are separated using a comma instead.
(@bonanitech - #141335) (documentation)
The scan interval option has been removed from NUT. Scans default to once every 60 seconds. If needed, an integration-independent and common method can be used to set a custom polling interval.
(@tdfountain - #141845) (documentation)
Breaking
Opower
If you return energy to the grid, you will have to reconfigure your energy dashboard.
For improved experience in the energy dashboard, negative energy consumption/cost values have been separated into two dedicated return/compensation statistics.
Add Opower {utility name} elec {account number} return under Return to grid to see return energy statistics. Track return compensation using Opower {utility name} elec {account number} compensation.
(@parkerbxyz - #135258) (documentation)
Breaking
Overkiz
Previously, for Atlantic Electrical Towel Dryer devices, the ‘auto’ HVAC mode in Home Assistant was mapped to the ‘prog’ mode in Overkiz.
Now, the ‘auto’ mode in Home Assistant will correspond directly to the ‘auto’ mode in Overkiz, while the ‘prog’ mode can be selected using presets.
(@iMicknl - #143243) (documentation)
Breaking
Persistent notifications
Persistent notifications are no longer created when devices are discovered.
Automations that trigger on the persistent notification config_entry_discovery should be updated to instead trigger on the event config_entry_discovered.
(@emontnemery - #141546)
Breaking
Total Connect
The previously deprecated state attributes for the Total Connect alarm control panel have been removed.
If you relied on these attributes in your automations or scripts, you will need to update them to use the dedicated sensors instead.
(@joostlek - #142625) (documentation)
2025.5.1 – 2025.5.3: no action items (3 versions)
2025.6.0 2025-06-11
1 Breaking — show quotes
Breaking
Met Office
Met Office deprecated the Datapoint API used by this integration, causing it to stop working. To address this, it is now migrated to DataHub API.
To keep using this integration, you will need to provide a new API key, which can be obtained by signing up for DataHub and subscribing to Global spot dataset. The free subscription provides 360 calls per day, which is enough for this integration to work.
Some sensors have changed due to the new data source:
- Hourly forecast provided by the weather entity now has actual hourly entries as opposed to 3-hourly in the old version
- Instead of
visibilityandvisibility_distancesensors showing a range and qualitative description (such as "1-4 km" and "Poor"), the integration now exposes a singlevisibilitysensor with precise visibility distance in meters - The integration no longer exposes "daily" and "3-hourly" sensors; there is a single set of them now
- The integration sensors no longer expose
Site ID,Site nameandSensor IDattributes as these don't provide any additional value
(@avee87 - #131425) (documentation)
From www.home-assistant.io/blog/2025/06/11/release-20256/#backward-incompatible-changes
2025.6.1 – 2025.6.3: no action items (3 versions)
2025.7.0 2025-07-02
4 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/07/02/release-20257/#backward-incompatible-changes
Breaking
Google Calendar
The previously deprecated Google Calendar add_event action has been removed and replaced by the create_event entity-based action.
If you use the add_event action in your automations or scripts, you will need to update them to use the new create_event action instead.
(@epenet - #146432) (google docs)
Breaking
Meater
The states of the Meater probe cook state have been changed to support translations and make them more consistent with other integrations.
The following states have been changed:
Not Started->not_startedConfigured->configuredStarted->startedReady For Resting->ready_for_restingResting->restingSlightly Underdone->slightly_underdoneFinished->finishedSlightly Overdone->slightly_overdoneOVERCOOK!->overcooked
If you use these states in your automations or scripts, you will need to update them to use the new state values.
(@joostlek - #146958) (meater docs)
Breaking
Miele
The internal representation of states for hob plates has changed. This is a breaking change when these states are used in automations or templates.
No user action is needed if these hob state sensors are used for visual display only.
Please review and update applicable automations and templates according to the following state changes:
0->plate_step_01->plate_step_1- ...
18->plate_step_18110->plate_step_warm117->plate_step_boost118->plate_step_boost217->plate_step_boost220->plate_step_warm
If you use these states in your automations or scripts, you will need to update them to use the new state values.
(@astrandb - #144992) (miele docs)
2025.7.1 – 2025.7.4: no action items (4 versions)
2025.8.0 2025-08-06
19 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/08/06/release-20258/#backward-incompatible-changes
Breaking
Android Debug Bridge (ADB)
Android Debug Bridge media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Android Debug Bridge media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148130) (documentation)
Breaking
Apple TV
Apple TV media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Apple TV media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148132) (documentation)
Breaking
Cambridge Audio
Cambridge Audio media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Cambridge Audio media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148133) (documentation)
Breaking
Ecovacs
The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.
Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.
(@mib1185 - #149084) (@edenhaus - #149581) (documentation)
Breaking
Husqvarna Automower
The summary field of calendar events provided by the Husqvarna Automower calendar platform has been updated to include the device name as a prefix. This change improves clarity when multiple mowers are used, but may affect automations relying on the previous summary format.
(@Thomas55555 - #147405) (documentation)
Breaking
LOOKin
LOOKin media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the LOOKin media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148134) (documentation)
Breaking
Matter
The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.
Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.
Breaking
Mediaroom
Mediaroom media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Mediaroom media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148135) (documentation)
Breaking
Miele
The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.
Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.
(@astrandb - #148765) (documentation)
Breaking
Reolink
The Reolink Wi-Fi signal strength sensor has changed from an indicator value between 0 and 4 (amount of bars) to a value in dBm between -85 dBm and -30 dBm.
Note that all values in this range are possible, but roughly the old values can be converted like this:
- 0 > -85 dBm
- 1 > -75 dBm
- 2 > -65 dBm
- 3 > -55 dBm
- 4 > -45 dBm
Breaking
Roborock
The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.
Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.
(@luca-angemi - #150126) (documentation)
Breaking
Roku
Roku media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Roku media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148137) (documentation)
Breaking
Snapcast
Snapcast media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Snapcast media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148138) (documentation)
Breaking
Sony PlayStation 4
Sony PlayStation 4 media players entities now report to be off where they previously reported to be in standby state.
If you have automations or scripts that rely on the Sony PlayStation 4 media player reporting standby state, you will need to update them to use the new off state.
(@emontnemery - #148136) (documentation)
Breaking
Templates
Returning None from a template binary sensor's state template is now interpreted as unknown state instead of as off state.
If this behavior is not desired, you need to adjust your templates to return False explicitly.
(@epenet - #128861) (documentation)
Breaking
Tuya
The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.
Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.
(@epenet - #150086) (documentation)
Breaking
UniFi Protect
Support for UniFi Protect installations running on versions below 6.0.0 has been removed.
This change is necessary as we are migrating the Home Assistant integration to use the new UniFi Protect Public API, which is only available in current versions.
If you are running an older version of UniFi Protect, you will need to upgrade to at least version 6.0.0 in order to continue using this integration.
You can read more about the 6.0 release in Ubiquiti’s official blog post: 🔗 Introducing Protect 6.0
Note on future updates: The Public API is still under active development and may change over time. As we continue to migrate more features of the integration to use the Public API, it is likely that the minimum required version of UniFi Protect will increase further in upcoming Home Assistant releases. We will make these changes step by step as the API evolves and new capabilities become available.
What do I need to do?
Upgrade your UniFi Protect installation to version 6.0.0 or later.
Be prepared for possible further minimum version increases in the future.
If you are already using version 6.0.0 or newer, and the user in use has sufficient permissions, the integration will attempt to automatically create a new API key. If this succeeds, no further action is required. If it fails, a reauthentication will be triggered, requiring you to re-enter your password and provide your API key manually.
(@RaHehl - #149126) (documentation)
Breaking
Whirlpool Appliances
The door state for washer/dryer machines is now reported as a binary sensor instead of being part of the main machine state sensor, which now reports only the cycle states. Users relying on this state in automations or scripts will need to update their configurations to use the new binary sensor.
(@abmantis - #144078) (documentation)
Breaking
Z-Wave
With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 3.2.1 or greater (schema 44).
- If you use the Z-Wave JS add-on, you need at least version 0.20.0.
- If you use the Z-Wave JS UI add-on, you need at least version 4.8.0.
- If you use the Z-Wave JS UI Docker container, you need at least version 10.11.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 3.2.1.
2025.8.1 – 2025.8.3: no action items (3 versions)
2025.9.0 2025-09-03
8 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/09/03/release-20259/#backward-incompatible-changes
Breaking
Encoding units containing the μ character
The encoding for some units that contain the μ character has been changed. Users that consume state data from sensors that have changed units will be impacted (such as exported state data to InfluxDB). The units with a changed encoding are:
μSv/hfor thearanetintegration as a unit for radiation rateμS/cmforUnitOfConductivity.MICROSIEMENS_PER_CMμVforUnitOfElectricPotential.MICROVOLTμg/ft³for concentration in micrograms per cubic footμg/m³for concentration in micrograms per cubic meterμmol/s⋅m²for thefytaintegration as a unit for lightμgforUnitOfMass.MICROGRAMSμsforUnitOfTime.MICROSECONDS
Breaking
1-Wire
The raw_value attribute was previously deprecated and has now been removed.
Breaking
Alexa Devices
The sound list has been updated to match the one used by the Alexa Mobile app. The variant parameter is no longer required.
Check your automations to ensure the selected sound is still present.
(@chemelli74 - #151317) (documentation)
Breaking
Husqvarna Automower BLE
The integration now requires the Automower PIN when being set up. This ensures Home Assistant can communicate with more models of mowers and with higher security levels.
(@alistair23 - #135440) (documentation)
Breaking
KNX
KNX scene entities now also change their state when a scene was activated externally (from bus). Previously they only updated when activated from within Home Assistant.
(@farmio - #151218) (documentation)
Breaking
SIA Alarm Systems
SIA alarm status code CF (armed with malfunctions) is now mapped to armed_away instead of to armed_custom_bypass.
(@etnoy - #132628) (documentation)
Breaking
SwitchBot Bluetooth
The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.
Please review your automations, scripts, and dashboards using the battery property and update the code to use the battery sensor instead.
Breaking
Yale August
The August integration now uses OAuth authentication with Yale August's official API. This is a required one-time breaking change as the unofficial authentication method will stop working soon. This migration helps reduce unnecessary load on Yale August's servers while ensuring continued access for all users.
When you update Home Assistant, you'll be prompted to re-authenticate your August account:
- Select the notification or go to Settings → Devices & services → August
- Select "Reconfigure" and follow the OAuth flow to sign in
- Once authenticated, your devices will work exactly as before
We're grateful to Yale August for officially supporting Home Assistant with dedicated API access!
(@bdraco - #151080) (documentation)
2025.9.1 – 2025.9.4: no action items (4 versions)
2025.10.0 2025-10-01
10 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/10/01/release-202510/#backward-incompatible-changes
Breaking
Targeting labels in automations and scripts
Configuration and diagnostic entities with a label assigned to them will now be targeted/affected by service actions targeting that label. Previously, those entity categories were ignored on service action calls targeting labels.
If you have an automation or script with an action targeting a label, make sure that only entities that should be affected have that label assigned, even if they are config or diagnostic entities.
(@abmantis - #149309) (labels docs)
Breaking
HERE Travel Time
HERE deprecated the previous free tier. The new Base Plan has 5000 free requests per month. The automatic update interval of the HERE Travel Time integration changed from 5 minutes to 30 minutes, so one route can be supported without costs.
Breaking
Home Connect
The Home Connect Alarm clock entity has been removed from the time platform, please use the number entity instead.
Breaking
Shelly
Removed previously deprecated extra attributes, please review your automations.
Shelly Gas:
- The Detected attribute of the Gas entity has been removed, the Gas detected entity should be used instead.
- The Self test attribute of the Operation entity has been removed, the Self test entity should be used instead.
Shelly Air:
- The Operational hours of the Lamp Life entity has been removed, if you still want that info please use a template entity.
(@chemelli74 - #140386) (shelly docs)
Breaking
Slide Local
The effect of the property "invert position" is extended from the position itself to the status (open or closed). With this adjustment, it is no longer necessary to use cover templates to invert the position to correct the status. If you have covers with inverted position and are using the state in automations, you must adjust the automations accordingly.
Breaking
SmartThings
The windFree preset mode for the air conditioner has been renamed to wind_free to allow translation to happen. Please adapt automations accordingly.
(@joostlek - #152833) (smartthings docs)
Breaking
Tibber
Switch Tibber electricity pricing to 15-minute intervals.
- The
tibber.get_pricesaction now returns 15-minute data instead of hourly. - The
price_levelattribute is removed and no longer supported. - The
intraday_price_rankingattribute is now scaled to (0,1) to better support 15-minute prices.
Breaking
Zabbix
We removed official support for Zabbix 5.0 from the integration. While this does not directly break connections to Zabbix 5.0, future updates will not check for compatibility with this version. Note that Zabbix 5 LTS left its support window in May of 2025.
(@nolsto - #149450) (zabbix docs)
Breaking
Breaking
ZhongHong
ZhongHong's climate entities set_fan_mode action behavior has changed.
The fan mode values are now converted to lowercase instead of uppercase to ensure compliance with the standard convention.
If you have automations relying on uppercase fan mode values, you will need to update them to use lowercase values instead.
(@Blear - #151559) (zhong_hong docs)
2025.10.1 – 2025.10.4: no action items (4 versions)
2025.11.0 2025-11-05
12 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/11/05/release-202511/#backward-incompatible-changes
Breaking
Set assumed state to group if at least one child has assumed state
Previously, the group’s assumed state was always false, regardless of the state of its child entities.
This has now changed:
The group will now have an assumed state of true if at least one child entity has an assumed state. This makes the group's assumed state reflect the uncertainty of its children more accurately. These domains have been added: switch, fan, light, and cover.
(@piitaya - #154163) (group docs)
Breaking
Asuswrt
The last_time_reachable attribute has been removed from the asuswrt device tracker. Use the last_changed attribute instead in your automations.
(@ollo69 - #154219) (asuswrt docs)
Breaking
LG webOS TV
The state of LG webOS TV media player entities that do not have an automation trigger to turn on the device will be set to unavailable instead of off.
(@thecode - #155164) (webostv docs)
Breaking
Mealie
The mealie integration now requires Mealie version 2 or later.
Mealie version 1 is no longer supported. Version 2 was released in October 2024, so over a year ago. Given the differences between versions 1 and 2, we are no longer able to support or test backward compatibility with version 1.
Breaking
Motion Blinds
The tilt position of motion_blinds devices has been corrected to align with the Home Assistant standards. The new tilt position will be: 0 = closed/covering the window opening, 100 = open/letting light through. The previous tilt position can be converted to the new tilt position as follows:
new=100 - oldcurrent_tilt_position=100 -> 0current_tilt_position=75 -> 25current_tilt_position=50 -> 50current_tilt_position=25 -> 75current_tilt_position=0 -> 100open_cover_tilt->close_cover_tiltclose_cover_tilt->open_cover_tilt
Any automations concerning Motion Blinds devices that use the current_tilt_position attribute or use tilt open/close will need to be adjusted.
Breaking
Mobile app
The mobile_app integration, which supports the iPhone and Android companion apps, now handles zone-only updates better. When your companion app sends just the zone name (not the exact coordinates), the device tracker will show the zone's friendly name.
The person entity now shows the zone's friendly name (not its object ID) for custom zones. This might break existing automations that trigger on a person's state.
As an example, if you have a zone named zone.kids_school with the friendly name School:
- Before this change, the state of the corresponding
personanddevice_trackerentities would bekids_schoolwhen the "Location Sent" in the companion app was set to send "Zone Name Only" andSchoolwhen it was set to "Exact". - After this change, the state of the corresponding
personanddevice_trackerentities will beSchoolfor both the "Location Sent" settings in the companion app.
(@Ashus - #149453) (mobile_app docs)
Breaking
Nederlandse Spoorwegen
The Nederlandse Spoorwegen entity is now displayed as a timestamp entity, rather than a string. Please adapt your automations and scripts.
Breaking
ONVIF
The Speed parameter in the ONVIF GoToPreset action is now optional.
The default of 0.5 is no longer set. If you want to restore the previous behavior you have to set speed to 0.5 in your action.
Breaking
OralB
In the OralB integration, states and attributes have changed.
In multiple places, spaces have been replaced with underscores:
- Toothbrush state:
flight menu→flight_menuselection menu→selection_menufinal test→final_testpcb test→pcb_test
- Brushing mode:
daily clean→daily_cleangum care→gum_caretongue cleaning→tongue_cleaningsuper sensitive→super_sensitivedeep clean→deep_clean
- Pressure:
power button pressed→power_button_pressedbutton pressed→button_pressed
- Sector:
no sector→no_sectorsector 1→sector_1sector 2→sector_2sector 3→sector_3sector 4→sector_4
Automations should be updated to use the new states and attributes.
(@tr4nt0r - #153605) (oralb docs)
Breaking
Renault
The discovery of Renault functionality was previously based on assumptions that may have created invalid and non-functional entities. These will no longer be created.
(@epenet - #154137) (renault docs)
Breaking
Traccar Server
The Traccar integration has been updated to use a more secure API Token for authentication. This is a required, one-time breaking change to align with Traccar's security recommendations and ensure the integration continues to work.
This release migrates the integration away from the older username/password method, ensuring continued stability and security for all users while also allowing users with SSO-based setups to use the integration.
When you update Home Assistant, the existing Traccar integration will need to be re-authenticated:
- Generate an API Token on your Traccar server (you'll find this option in your Traccar server's user settings).
- Go to Settings > Devices & services > Traccar Server.
- Click "Reconfigure" and enter your new API Token when prompted.
Once you've done this, your Traccar devices and entities will work exactly as they did before.
Breaking
Xbox
The Account tier and Gold tenure sensors have been retired, as they no longer receive updates following the transition from Xbox Live Gold to Xbox Game Pass. Additionally, the In party and In multiplayer binary sensors have been removed, since they’ve been non-functional for quite some time.
2025.11.1 – 2025.11.3: no action items (3 versions)
2025.12.0 2025-12-03
6 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2025/12/03/release-202512/#backward-incompatible-changes
Breaking
Core and Supervised installation methods, and 32-bit systems
After a 6-month deprecation period, support for the Home Assistant Core and Home Assistant Supervised installation methods, as well as all 32-bit system architectures (i386, armhf, and armv7), has now been fully removed.
These installation methods and architectures will no longer receive updates, including security updates. If you are still using one of these installation methods or architectures, please migrate to a supported installation method and architecture as soon as possible to continue receiving updates and support.
For more information on this change, read the Deprecating Core and Supervised installation methods, and 32-bit systems blog post.
Breaking
Breaking
Breaking
go2rtc
It is now required to set a username and password when enabling the debug UI.
(@edenhaus - #157008) (go2rtc docs)
Breaking
UniFi Protect
The legacy license plate event sensor has been removed from the UniFi Protect integration, as it no longer functions with Protect 6 and newer. The UniFi Protect integration has not been compatible with Protect versions older than 6 for quite some time.
This sensor has been replaced with a new Vehicle Detection Event entity that provides significantly more functionality, including license plate recognition, vehicle type detection, color detection, and confidence scores. The new event entity fires with a 3-second delay to ensure optimal thumbnail and LPR data quality.
For more information and automation examples, see the Vehicle Detection Event documentation.
Breaking
Xbox
- The Xbox media browser has been completely overhauled to support multiple accounts and introduce a range of other improvements. As part of this update, the format of the media-source identifiers has been changed as well.
- The following and followers sensors introduced in the last release previously included friends in their counts. After a recent API update, friends are no longer included.
2025.12.1 – 2025.12.5: no action items (5 versions)
2026.1.0 2026-01-07
5 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/01/07/release-20261/#backward-incompatible-changes
Breaking
Coolmaster
The climate entities provided by the Coolmaster integration now use medium for the medium fan mode; before this change, it was med. If your automations are using med when setting or querying the fan speed, you'll have to change it to medium.
Breaking
Tailscale
The "Supports hairpinning" binary sensor has been removed from the Tailscale integration. According to the official Tailscale API documentation, this information is no longer tracked and will always return null.
Breaking
UniFi Protect
Select entity state values have been changed from their original mixed-case format to snake_case format with proper translations. This improves consistency and enables proper localization support.
Affected select entities include: chime type, recording mode, infrared mode, status light mode, HDR mode, doorbell text, LCD message, and others.
Example changes:
- Chime type:
Mechanical→mechanical,Digital→digital - Recording mode:
Always→always,Detections→detections,Never→never - Infrared mode:
Auto→auto,On→on,AutoNoLEDsOn→auto_no_leds_on - Status light mode:
On→on,Off→off,OnWhenDark→on_when_dark - HDR mode:
Auto→auto,On→on,Off→off
If you have automations, scripts, or templates that check or set the state of UniFi Protect select entities, you need to update them to use the new snake_case values. The UI will continue to display properly translated, human-readable text.
(@RaHehl - #159284) (unifiprotect docs)
Breaking
Telegram bot
Allowing extra/unused parameters has been removed from the action for Telegram bot. Only users who have used undefined parameters for Telegram bot actions are affected. If you are affected, remove such parameters from your automations and scripts. Supported parameters can be found in the Telegram bot notification actions documentation.
(@hanwg - #158886) (telegram_bot docs)
Breaking
VeSync
The advancedSleep fan mode has been changed to advanced_sleep. If you have automations or scripts using this fan mode, please update them accordingly.
(@cdnninja - #158956) (vesync docs)
2026.1.1 – 2026.1.3: no action items (3 versions)
2026.2.0 2026-02-04
5 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/02/04/release-20262/#backward-incompatible-changes
Breaking
Group
The behavior of sensor groups has changed:
- A sensor group is now unavailable if all group members are either unavailable or missing (meaning they are not in the state machine).
- When the group is not considered unavailable and the configuration variable
ignore_non_numericis set toFalse(the default), the group state is calculated according to the configured type only if all group members are in the state machine and have a numeric state. If not, the group state will be unknown.
Breaking
Sentry
Self-hosted Sentry users only: This upgrade requires Sentry server version 20.6.0 or later (released June 2020) due to the SDK's use of the /envelope API endpoint. Users running older self-hosted Sentry instances must upgrade their server before updating Home Assistant.
Home Assistant users using sentry.io are not affected.
Breaking
Tractive
The following sensors have been removed because they are no longer supported by the Tractive API:
activitycalories burnedsleep
If you use these entities in your automations or scripts, you must update them.
Breaking
Tuya
Duplicate HVACMode have been converted to presets. You may need to adjust service calls from set_hvac_mode to set_preset_mode in your automations or scripts.
(@epenet - #160918) (tuya documentation)
Breaking
VeSync
The advanced_sleep preset mode is now replaced by sleep. If you have been using advanced_sleep, in your automations or scripts, you must update them to use sleep instead.
2026.2.1 – 2026.2.3: no action items (3 versions)
2026.3.0 2026-03-04
10 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/03/04/release-20263/#backward-incompatible-changes
Breaking
BSB-Lan
The water heater operation mode state on has been changed to performance for the BSB-Lan water heater. If you use this state in your automations or scripts, you will need to update them to use the new state value.
Breaking
Container image
Home Assistant container images are now compressed with zstd instead of gzip. This change is supported on Docker 23.0.0 and later, and containerd 1.5.0 and later, so it is not expected to break installations that meet these minimum versions. If your environment uses an older Docker or containerd version, make sure your container runtime supports zstd before updating.
Breaking
LIFX
Passing the color_temp parameter (in mireds) to the lifx.effect_pulse action is no longer allowed. Use the color_temp_kelvin parameter instead.
Breaking
Lights
Using color_temp (in mireds) to set a light's color temperature is no longer supported. Use color_temp_kelvin instead.
Additionally, the color_temp, kelvin, min_mireds, and max_mireds light entity state attributes have been removed. Use color_temp_kelvin, min_color_temp_kelvin, and max_color_temp_kelvin instead.
Breaking
Satel Integra
Binary sensors and switches now have an initial state of unknown while the alarm panel is still reporting all states during startup. Previously, the default state was off, which was incorrect, as no data had been received from the panel yet.
The chance that you are impacted is low, as most states are reported before Home Assistant fully finishes setup; but this might occur on larger installations and slower connections.
Breaking
Snapcast
Media player entities for Snapcast groups have been removed. Additionally, the Snapcast-specific grouping actions have been removed. If you use these entities or actions in your automations or scripts, you will need to update them.
Breaking
StarLine
The ignition and autostart state attributes of the engine switch have been removed. Two new binary sensors have been introduced to replace them. If you reference these attributes in your automations or scripts, update them to use the new binary sensor entities instead.
Breaking
Tado
Mobile device tracking has been removed from the Tado integration. Mobile devices and their associated device tracker entities are no longer available. This change resolves re-authentication issues and reduces unnecessary load on the Tado API.
Breaking
Template
The behavior of template fans has changed:
- A template fan's state will be
unavailableif thestatetemplate encounters a syntax error. Previously, a template error would show the fan's state asoff. - The
percentageattribute will beNoneif thepercentagetemplate encounters a syntax error. Previously, it would be0. - Template fans can now have the
unknownstate. Astatetemplate that returnsNonewill render the entity asunknowninstead ofoff.
Breaking
Z-Wave
Percentage speeds reported by Z-Wave fans have been corrected to align with other integrations. As a result, values may differ slightly. For example, a value previously reported as 67% may now appear as 66%. If you have automations that trigger on exact percentage values, you may need to adjust them.
2026.3.1 – 2026.3.4: no action items (4 versions)
2026.4.0 2026-04-01
8 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/04/01/release-20264/#backward-incompatible-changes
Breaking
JVC Projector
The Picture Mode and HDR Processing entities have been migrated from the sensor domain to the select domain, because they represent selectable settings rather than read-only values.
New entities:
select.jvc_projector_picture_modeselect.jvc_projector_hdr_processing
The legacy sensor entities are now deprecated. If a deprecated sensor is disabled and not referenced by automations or scripts, Home Assistant will remove it from the entity registry. If usage is detected, Home Assistant keeps it and shows a repair issue to help you migrate. Update your automations, scripts, dashboards, and templates to use the new select entities.
Breaking
Litter-Robot
The deprecated night light mode switch entity for Litter-Robot 4 devices has been removed. This switch was replaced by a select entity in Home Assistant 2025.10. If you still use the old switch entity in your automations or scripts, update them to use the select entity instead.
Breaking
Motion Blinds
On devices that support tilt but do not report a tilt position, the tilt open and tilt close operations now send jog up and jog down commands instead of setting the tilt angle to 0° or 180°. Setting an absolute tilt position usually didn't work on these devices anyway, and jog commands provide a meaningful small step in the intended direction.
If you have automations that rely on the previous tilt behavior for these devices, you may need to adjust them.
Breaking
MQTT
Support for the object_id option has been removed after 6 months of deprecation. This option was used to suggest the entity ID for an MQTT entity and has been replaced by the default_entity_id configuration option.
If you used object_id in your MQTT YAML configuration, you were previously asked via a repair flow to update your configuration. If object_id is still part of a discovery message, the option will simply be ignored and will not break discovery.
(@jbouwh - #164460) (MQTT documentation)
Breaking
pyLoad
pyLoad 0.4.x is now deprecated, and you should switch to pyLoad-ng 0.5.0. pyLoad-ng introduced a new API, and support for the old API has been dropped.
Breaking
Roth Touchline
The preset mode names for the Roth Touchline climate entities have been updated to use standard Home Assistant preset names, making them translatable. If you have automations or scripts that reference the old preset mode names, update them to use the new names:
Normal→noneNight→sleepHoliday→awayPro 1→program_1Pro 2→program_2Pro 3→program_3
Breaking
Tuya
Previously deprecated switch entities used to control valves have been removed. Use the valve entities instead. If you have automations or scripts that reference these switch entities, update them to use the corresponding valve entities.
(@epenet - #164657) (Tuya documentation)
Breaking
Z-Wave
The Z-Wave Installer panel has been removed. This panel was hidden and required an undocumented YAML configuration to enable. The same functionality is now natively available through Z-Wave JS UI in the Z-Wave app.
2026.4.1 – 2026.4.4: no action items (4 versions)
2026.5.0 2026-05-06
6 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/05/06/release-20265/#backward-incompatible-changes
Breaking
Purpose-specific triggers and conditions
When we first introduced purpose-specific triggers and conditions, we added separate ones for Person entities and Device Tracker entities. Since then, we've decided to take a more ergonomic, cross-domain approach instead.
As a result, the entered home and left home triggers, and the is home and is not home conditions, have been removed from Person and Device Tracker. Replacements that work across both will land in an upcoming release.
If you have automations that use these triggers or conditions on a person or device tracker, switch them back to a regular state trigger or state condition (for example, state changed to home) until the cross-domain replacements arrive.
(@emontnemery - #168406)
Breaking
Gardena Bluetooth
The "finish watering" value in the Gardena Bluetooth integration has been moved from a binary sensor to a regular sensor that exposes the timestamp of when watering is expected to finish. This makes the value far more useful in dashboards and automations.
If you have automations, scripts, or dashboards that reference the previous binary sensor entity, update them to use the new sensor entity instead.
Breaking
pilight
The pilight integration has been disabled because the underlying pilight library relies on setuptools.pkg_resources, which is no longer available in setuptools 82.0.0 and later.
If the library is updated to remove the setuptools.pkg_resources dependency, or replaced with a maintained alternative that does so, the integration can be activated again. Community contributions to make this happen are very welcome.
Breaking
Ring
The Ring doorbell event entity now emits the standardized ring event type instead of the legacy ding. This change aligns Ring with the new doorbell event standard, so the entity can be used seamlessly with the new purpose-specific automation triggers and conditions.
If you have automations that listen for the ding event type from your Ring doorbell, update them to use ring instead.
Breaking
Supervisor
Previously, all actions registered by the Supervisor integration (such as hassio.addon_start, hassio.backup_partial, and hassio.host_reboot) only logged an error on failure, and your script or automation would continue running regardless of whether the action succeeded.
These actions now properly raise on failure, which means your automation or script will stop unless continue_on_error is set to true. If you rely on the previous behavior, add continue_on_error: true to those action steps.
Breaking
Webhook
The local_only option on webhooks must now be a proper boolean (true or false). Previously, other truthy values like 1 or "yes" were silently accepted. This brings the option in line with the rest of Home Assistant.
If you have webhooks configured in YAML with non-boolean local_only values, update them to use true or false.
2026.5.1 – 2026.5.4: no action items (4 versions)
2026.6.0 2026-06-03
12 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/06/03/release-20266/#backward-incompatible-changes
Breaking
Purpose-specific triggers (Labs)
The behavior options for the Labs purpose-specific triggers have been renamed to better match what they do: any is now each, and last is now all. The default is now each.
If you have automations that use these triggers from the Labs preview at Settings > System > Labs, open them in the automation editor and re-pick the behavior option. Any YAML you wrote against the old keys needs to be updated to the new names.
(@emontnemery - #172348)
Breaking
Bluetooth
The default Bluetooth scanning mode has changed to Auto, which dynamically switches between active and passive scanning depending on what is happening. This saves around 95-96% of the battery used for Bluetooth scanning while keeping the same functionality for most setups.
If you run into issues after the upgrade, you can switch your Bluetooth adapter back to Active scanning. Go to Settings > Devices & services, open the Bluetooth integration, and select Configure on your adapter to change the scanning mode.
Breaking
Certificate Expiry
The error attribute on the certificate expiry sensor now returns a proper None value instead of the string "None" when there is no error.
If you use this attribute in templates, update your comparisons from == "None" to is none.
Breaking
ESPHome
The default Bluetooth proxy scanning mode for ESPHome devices is now Auto. Devices that were previously set to Active are automatically migrated to Auto, while devices set to Passive keep their setting.
If you need Active scanning for a specific device, change it back in the device options under Settings > Devices & services.
Breaking
HDMI-CEC
Calling the turn_off action on HDMI-CEC switch or media player entities now sends the standard CEC standby command instead of a vendor-specific power-off command. This works more reliably across devices from different manufacturers.
If you relied on the previous behavior, you can send the original command using the hdmi_cec.send_command action with keypress 0x44 followed by 0x6c.
Breaking
IronOS
The uptime sensor for IronOS soldering irons has changed from a duration sensor (reporting seconds) to a timestamp sensor that reports when the device was started.
Update any automations or dashboards that read this sensor to work with the new timestamp format.
Breaking
ONVIF
When you call the onvif.ptz action with continuous_duration: 0, the integration no longer sends a Stop command after the ContinuousMove. This lets you start a continuous movement and stop it later with a separate call.
If your automations rely on the camera stopping automatically, set continuous_duration to the desired duration in seconds.
(@yoxcu - #163173) (ONVIF documentation)
Breaking
Shelly
Shelly devices used as Bluetooth scanners now support the new Auto scanning mode. Existing devices set to Active are automatically migrated to Auto for better battery and performance.
You can change the scanning mode back in the device options under Settings > Devices & services.
Breaking
SmartThings
The source attribute on SmartThings media players is now normalized to standard Home Assistant values. For example, D.IN is now reported as digital_input and BT as bluetooth.
If you use the source attribute in automations, dashboards, or templates, update them to match the new values.
Breaking
Template entities
The legacy template platform syntax under the individual platform keys has been removed. This syntax was deprecated in Home Assistant 2025.12 and has now reached the end of its 6-month deprecation period.
This affects the following platforms:
alarm_control_panelbinary_sensorcoverfanlightlocksensorswitchvacuumweather
Move your template entities to the modern template: syntax. A step-by-step migration guide is available in the Removal of legacy template entities forum thread.
(@Petro31 - #169608, #169610, #169611, #169613, #169615, #169725, #169728, #169730, #169732, #169734) (Template documentation)
Breaking
Tuya
The unit of measurement provided by the Tuya API now takes precedence over the default unit assigned by Home Assistant. This makes the reported value match what the Tuya app shows.
If your device reports an invalid or unexpected unit, please submit a bug report with the device details and the unit it reports and adjust it accordingly.
(@epenet - #170338) (Tuya documentation)
Breaking
Velux
The deprecated velux.reboot_gateway action has been removed. Use the reboot button entity on your Velux gateway instead.
2026.6.1 – 2026.6.4: no action items (4 versions)
2026.7.0 2026-07-01
13 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/07/01/release-20267/#backward-incompatible-changes
Breaking
Purpose-specific triggers and conditions
Several entity triggers and conditions, part of the new purpose-specific triggers and conditions, have been renamed so their keys are consistent across all domains. The old keys no longer work.
The following triggers changed:
battery.lowis nowbattery.became_lowbattery.not_lowis nowbattery.no_longer_lowlawn_mower.dockedis nowlawn_mower.returned_to_dockschedule.turned_offis nowschedule.block_endedschedule.turned_onis nowschedule.block_startedtimer.time_remainingis nowtimer.remaining_time_reachedupdate.update_became_availableis nowupdate.became_availablevacuum.dockedis nowvacuum.returned_to_dock
The following conditions changed:
climate.target_humidityis nowclimate.is_target_humidityclimate.target_temperatureis nowclimate.is_target_temperature
If an automation or script uses one of these, it will stop working until updated. To fix it, open the affected automation or script, re-select the trigger or condition (it now appears under its new name), and save. If you edit in YAML, replace the old key with the new one from the list above.
Breaking
BSB-LAN
The BSB-LAN integration has reduced its support for the older version 1 JSON API. If your BSB-LAN device runs very old firmware that only speaks the version 1 API, update it to firmware that supports the version 2 API to keep everything working.
A repair notification will let you know if your device is affected.
Breaking
iCloud
The battery_level attribute has been removed from iCloud device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.
Breaking
Person
Person entities no longer report the latitude and longitude of the home zone when their location comes from a presence scanner associated with the home zone.
If you have automations or scripts that check the coordinates of a person, adjust them. To check whether a person is in a specific zone, use the new in_zones state attribute instead.
Breaking
Rabbit Air
The Rabbit Air fan preset mode values changed from title case to lowercase to match Home Assistant's state convention: Auto is now auto, Manual is now manual, and Pollen is now pollen. The user-facing labels stay the same through translations.
Update any automations, scripts, templates, or action calls that reference the old title-case preset values.
Breaking
Reolink
Reolink Duo PoE and Duo WiFi dual-lens cameras now expose a sub-device per lens. The camera and motion/AI sensor entities that previously had a "lens 0" or "lens 1" suffix in their name are moved to the new lens sub-devices and lose that suffix. Entity IDs and custom names stay the same, so most automations keep working.
If you target these entities through the camera device, update them to use the new lens sub-devices.
Breaking
StarLine
The battery_level attribute has been removed from StarLine device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.
Breaking
Tesla Fleet
The route device tracker (device_tracker.<vehicle>_route) no longer reports the active route's destination name as its state. Its state is now derived from your zones like a normal device tracker (home, not_home, or a zone name), based on the route's coordinates.
The destination name is still available through the new destination sensor (sensor.<vehicle>_destination), which is disabled by default. Enable it from the entity settings if you have automations that relied on the destination name, and update any automations that matched the old route tracker state.
Breaking
Teslemetry
The route device tracker no longer reports the active route's destination as its state or through a location_name attribute. Its state is now derived purely from the route's coordinates (zone-aware, like home or not_home).
If you relied on the destination name, enable the new Destination sensor (sensor.*_destination), which is disabled by default and reports the destination name as Tesla provides it.
Breaking
Tractive
The battery_level attribute has been removed from Tractive device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.
Breaking
Zeroconf
The legacy requires_api_password field has been removed from the Home Assistant zeroconf/mDNS discovery announcement (_home-assistant._tcp). It had been hardcoded to true since the http.api_password authentication mechanism was removed in Home Assistant 2024.7, so it no longer carried any meaning. The official companion apps already ignore it.
Third-party discovery clients that still read this field need to tolerate its absence.
(@agners - #173090) (Zeroconf documentation) (API documentation)
Breaking
Zone
The state (person count) and persons attribute of zone entities are now calculated from the in_zones attribute of person entities. As a result, a person can now be counted in more than one zone at the same time. For example, a person who is home with in_zones: ["home", "near_home"] now counts toward both zone.home and zone.near_home, where previously they only counted toward zone.home.
In addition, the state of position-aware device trackers is now the smallest zone the device is in, instead of the zone whose center it is closest to.
Automations, scripts, or templates that depend on zone person counts or on device tracker zone states may need to be adjusted.
Breaking
Z-Wave JS
This release requires an updated Z-Wave JS server. You need zwave-js-server 3.9.0 or newer (schema 49):
- If you use the Z-Wave JS app, update it to at least version 1.4.0.
- If you use the Z-Wave JS UI Docker container, update it to at least version 11.19.1.
- If you run your own zwave-js-server, update it to at least version 3.9.0.
2026.7.1 – 2026.7.4: no action items (4 versions)
2026.8.0 2026-08-05
9 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/08/05/release-20268/#backward-incompatible-changes
Breaking
AirNow
The station radius option has been removed. The 2026 AirNow API no longer uses a distance parameter, so the radius had no effect on which reporting station was used. Existing entries are updated automatically, and any radius you had set is discarded. No action is needed.
Breaking
Breaking
Edifier Infrared
If you set up the Edifier Infrared integration for the R2000DB or R2730DB speakers, some buttons were mapped to the wrong infrared codes (on the R2730DB, power and mute were swapped). The mappings are now corrected and migrated automatically. If you built automations or scripts around the old, incorrect buttons, update them to match.
Breaking
Ohme
The Ohme energy sensor has been removed. It reported an estimate of the energy stored in the car's battery rather than the energy delivered by the charger, which caused confusing jumps in the energy dashboard, and the vendor's API no longer provides a useful value.
If you tracked this sensor, use an Integration - Riemann sum helper on a power sensor to estimate the energy instead.
(@dan-r - #174664) (Ohme documentation)
Breaking
Paperless-ngx
Paperless-ngx now requires a newer version of your Paperless-ngx server. The minimum supported server version is raised to 2.19, which also restores compatibility with Paperless-ngx 3.0. If your Paperless-ngx server is on version 2.18 or older, update it before you update Home Assistant.
Breaking
Robot vacuums
The deprecated battery_level property has been removed from the vacuum entities of several integrations. If you use a robot vacuum's battery level in an automation, script, or on a dashboard, use the vacuum's battery sensor instead.
This affects the following integrations:
(@gjohansson-ST - #175681, #175684, #175685, #175686, #175687, #175688, #175691, #175764)
Breaking
ScreenLogic
The option to configure the polling interval has been removed from ScreenLogic. Home Assistant now polls the integration at a fixed interval. If you need a different update frequency, you can set your own polling interval or trigger an update with the homeassistant.update_entity action.
Breaking
UniFi Protect
Support for UniFi Protect AI Port devices has been removed. These devices only ever exposed diagnostic sensors, all disabled by default, and are not part of the UniFi Protect public API the integration is moving to. The AI Port device and its sensors are removed automatically when you update. You can still configure the AI Port directly in UniFi Protect.
(@RaHehl - #174378) (UniFi Protect documentation)
Detection scores are no longer available. The detection binary sensors (motion, person, vehicle, animal, and the smart-audio alarm sensors) now take their state from the UniFi Protect public API, which carries no per-event score, so their event_score attribute is gone and automations that filter on it need another condition. The event id and the detected types moved to the new Motion detection, Smart detection, and Sound detection event entities.
(@RaHehl - #174948) (UniFi Protect documentation)
UniFi Protect 7.1 or newer is now required. On an older console the integration reports that the version is too old instead of setting up. Update UniFi Protect to 7.1 or newer to keep using it.
Breaking
Volvo On Call
The Volvo On Call integration has been removed. If you have a supported Volvo, set up the newer Volvo integration instead.
2026.8.1 – 2026.8.3: no action items (3 versions)
2026.9.0 2026-09-02
8 Breaking — show quotes
Quoted from www.home-assistant.io/blog/2026/09/02/release-20269/#backward-incompatible-changes
Breaking
Flexit Nordic (BACnet)
The deprecated fireplace mode switch entity has been removed. If you have automations or scripts that use switch.<device>_fireplace_mode, use the climate.set_preset_mode action on the Flexit climate entity with preset_mode: fireplace instead.
(@magnusoverli - #179272) (Flexit Nordic (BACnet) documentation)
Breaking
KNX
KNX exposes no longer send an entity's first value to the KNX bus. Previously, this depended on timing: if the entity already had a value when the expose was set up, nothing was sent, but if the value arrived later, it was sent to the bus right away.
Now, both cases behave the same way. The first value is adopted locally without sending a telegram, but stays available for read requests and periodic sending. Later value changes are still sent as before.
To send the first value right away, turn on Send on initialization for the expose in the KNX panel, or set send_on_init: true in your YAML configuration.
(@Kolbi - #178793) (KNX documentation)
Breaking
LLM APIs
LLM tool names are now prefixed with the domain of the integration that offers them. For example, GetLiveContext becomes homeassistant__GetLiveContext and HassTurnOn becomes intent__HassTurnOn. If you have a custom prompt that names a tool directly, update it to use the new prefixed name.
Breaking
Persistent Notification
Updating a persistent notification that already exists now triggers an update_type of updated instead of added. If you have an automation that triggers on an update_type of added to catch every new or changed notification, add updated to the list of types it triggers on.
(@davidlang42 - #171067) (Persistent Notification documentation)
Breaking
UniFi Protect
The smart detection switches (for example Detections: Person, Detections: Vehicle, and the audio alarm toggles) are no longer hidden while recording is disabled. They now stay available and follow the same public API as the other camera configuration switches. Their entity IDs and what happens when you toggle them are unchanged.
(@RaHehl - #174963) (UniFi Protect documentation)
UniFi Protect 7.2.105 or newer is now required. On an older version, the integration stops setting up and tells you to update. Update UniFi Protect, then reload the integration.
Breaking
Update
Installing an update, skipping an update, and clearing a skipped update now require an administrator account. These are configuration-level actions, so they are now restricted to admins, like other sensitive actions in Home Assistant.
Automations are not affected, because they run without a user context. A script runs in the context of the user who started it, so a script that installs or skips an update now fails when a non-admin user starts it. Trigger it from an automation instead, or start it as an admin.
Breaking
Vacuum
The deprecated battery_level property has been removed from the base vacuum entity. All core vacuum integrations were already migrated in Home Assistant 2026.8. If a custom integration still sets this property, it no longer reports a battery level; add a separate battery sensor instead.
Breaking
Z-Wave JS
The Z-Wave actions to manage lock users and credentials (set_user, delete_user, delete_all_users, set_credential, delete_credential, and delete_all_credentials) now require an administrator account.
2026.9.1 – 2026.9.4: no action items (4 versions)
Release notes from github.com/home-assistant/core/releases, and the official release blog, checked 18 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).