Upgrade Path

Home Assistant Core 2021.8.0 → 2021.9.0

9 versions, 28 breaking changes in 1 version, 0 required stops

Version by version, oldest first

2021.8.1 – 2021.8.8: no action items (8 versions)

2021.9.0 2021-09-01

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.

(@AaronDavidSchneider - #54842) (fritz docs)

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.

(@Jc2k - #54673) (homekit_controller docs)

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_speed
  • payload_low_speed
  • payload_medium_speed
  • speed_command_topic
  • speeds
  • speed_state_topic
  • speed_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_time
  • end_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.

(@balloob - #54846) (rainforest_eagle docs)

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

Solar-Log

The Watt-peak unit of measurement has changed to W.

(@Ernst79 - #55110) (solarlog docs)

Breaking

Supervisor

The usage of "snapshot" is deprecated, from now "backup" is used instead.

  • The service snapshot_full is now named backup_full, the service snapshot_full will be removed in Home Assistant 2021.11.
  • The service snapshot_partial is now named backup_partial, the service snapshot_partial will be removed in Home Assistant 2021.11.
  • Using snapshot in the data for the restore_full and restore_partial services is deprecated and will be removed in Home Assistant 2021.11, use slug instead.

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.

(@frenck - #54496) (wink docs)

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.

(@bdraco - #53835)

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/

Full release notes for 2021.9.0

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).