Home Assistant Core 2021.2.0 → 2021.3.0
4 versions, 31 breaking changes in 1 version, 0 required stops
Version by version, oldest first
2021.2.1 – 2021.2.3: no action items (3 versions)
2021.3.0 2021-03-03
Quoted from www.home-assistant.io/blog/2021/03/03/release-20213/#backward-incompatible-changes
Breaking
Custom integrations: Version warning
Custom integrations now require a version key in their manifest file, this also means that all custom integrations now require a manifest file.
If you are using a legacy custom integration like custom_components/awesome.py this now needs to move to custom_components/awesome/__init__.py so you can add custom_components/awesome/manifest.json to it.
For more information about integration, manifests have a look here: https://developers.home-assistant.io/docs/creating_integration_manifest
For now, this will create a warning on startup. But this will eventually be blocked from loading if it's missing a version in the manifest.
If you see these warnings, please report the issue with the author of that custom integration.
Breaking
Fan
The fan entity model has changed to split named speeds into percentages in the range from 0 (off)-100 and preset modes.
Why change?
This change allowed us to expand the number of supported speeds to accommodate additional fan models in Home Assistant.
We had 3 fan speeds and that worked great as long as the fan had no more than 3 speeds.
Over time we received a number of requests to add fans with 4, 5, or even more speeds and preset modes. This put us in the difficult position of having to reject this support because the underlying fan model didn’t support it.
Percentages were chosen because they can represent up to 100 speeds which should accommodate all fans. Additionally, it’s a lot easier to ask your voice assistant to set the fan to 20% then remember that medium-low is actually low-medium or have to learn and remember how to say the speeds for every fan model you want to control.
What to change?
Calls in automations and scripts to fan.set_speed should be replaced:
- Calls that set a speed should use
fan.set_percentage. - Calls that set a preset mode should use
fan.set_preset_mode.
The following speeds existed in core integration and will now be automatically identified as preset modes: auto, smart, interval, idle, and favorite.
Both of the new calls are backward compatible.
Calls in automations and scripts to fan.turn_on that use the speed attribute should be switched to use the percentage or preset_mode attribute once the underlying integration has been updated to support it.
All core fans have been updated to ensure that calls to the fan.turn_on service map percentage or preset_mode to speed for backwards compatibility.
Breaking
Template: Fan
Template fans have been updated for the new entity model that uses a percentage for the speed.
The following configuration options have been deprecated: speed_template, set_speed, and speeds.
The replacement options are percentage_template and set_percentage. There is no replacement for speeds since the percentage is always from 1-100 along with 0 for off.
(@bdraco - #45478) (template docs)
Breaking
Hyperion
Hyperion has fully transitioned to configuration via UI. YAML configuration has been removed. Existing YAML configuration has already been imported automatically in the previous releases and can now safely be removed from your configuration files.
(@dermotduffy - #45690) (hyperion docs)
Breaking
Breaking
CalDAV
For CalDAV custom calendars, now only matching events are shown in the calendar frontend, instead of all events for this calendar.
Although, this is technically a bugfix, if you didn't notice it before, it might now surprise you.
(@inytar - #45701) (caldav docs)
Breaking
Breaking
LG Soundbar
If discovery is used the entity will get a new entity_id derived from the hostname of the soundbar. This means the entity_id can not be changed anymore since there is currently no way to get a unique_id from the device.
Breaking
MySensors
MySensors has fully transitioned to configuration via UI. Existing YAML configuration is automatically migrated and imported, and can now safely be removed from your configuration files after upgrading.
No changes to YAML are applied after the migration has happened. If you need to change anything, use the frontend.
Breaking
MQTT: Covers
MQTT cover value_template is deprecated to use for extracting position, support will be removed in Home Assistant Core 2021.6.
Instead of using value_template, position_template should be used.
MQTT cover tilt_invert_state is deprecated, instead tilt_min and tilt_max should be used. Support for tilt_invert_state will be removed in Home Assistant Core 2021.6.
Breaking
Cameras and Streams
Removes the internal stream components record service.
This service is meant to be used internally only by camera so this is not expected to be a problem in practice as you should be using camera.record instead.
(@allenporter - #45431) (camera docs) (generic docs) (nest docs) (stream docs)
Breaking
HTTP: base_url
The HTTP base_url URL setting was marked deprecated in Home Assistant Core 0.110 and replaced by the new internal & external URL settings that are available in the UI.
This release removes the fallback logic to the old base_url setting. If you still have an base_url configured in the HTTP section of your YAML configuration, please remove it.
Breaking
MQTT: Lights
The MQTT light with template schema will now send a float instead of an int with the transition key.
Lights that require an int instead of a float can restore the original functionality by using the following in the template for specifying the transition:
{{ transition|int }}
(@kangaroomadman - #46385) (mqtt docs)
Breaking
Philips TV
Configuration via YAML is now deprecated and you existing YAML configuration will be automatically imported into the UI on first run. If your TV is not running on first start, you will need to complete the configuration from integration screen once your TV us online.
The previous turn_on_action will not be imported, and must be re-created as a device trigger automation.
(@elupus - #45784) (philips_js docs)
Breaking
ASUSWRT
The legacy device tracker DeviceScanner was replaced with the new device tracker implementation ScannerEntity.
You should remove references to platform asuswrt in device_tracker section in your YAML configuration and update person device tracker with the new entity.
The YAML key dnsmasq, interface and require_ip now are managed as integration options. The values present in YAML are imported in the options the first time that the integration is loaded.
All sensors are initially created as disabled and can be enabled from ASUSWRT device configuration instead of using YAML configuration.
(@ollo69 - #46468) (asuswrt docs)
Breaking
Keenetic NDMS2 Routers
Keenetic NDMS2 Routers are now configured and managed from the UI. Existing YAML configuration will be automatically imported and can be safely removed after upgrading.
The upgraded platform also adds:
- Entities and devices manageable from UI.
- Binary sensors for router connection status.
- Support for monitoring multiple interfaces.
(@foxel - #38353) (keenetic_ndms2 docs)
Breaking
Automations
If an automation trigger template already renders as true on Home Assistant Core startup, it will no longer trigger at startup. This bug fix prevents unintended triggers of automations as startup, but might cause a different behavior than before.
(@amelchio - #46423) (template docs)
Scripts and automations are now more careful about reporting problems with conditions. For example, a state condition that references an unavailable entity will log a message warning about the problem. Depending on the circumstances when such errors happen, the flow of the automation (i.e., stop/continue) might end up different from before.
Breaking
Xiaomi Miio
Xiaomi Miio Switch, and Vacuum platforms should now be set up using the UI, please remove the old YAML configuration from your configuration file.
They are now automatically discovered, if not, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find Xiaomi Miio.
Or click: my.home-assistant.io/redirect/config_flow_start
Select the option “Connect to a Xiaomi Miio Device” and click submit, follow the setup instructions.
Breaking
HomeKit
HomeKit pairings and accessory IDs from Home Assistant Core version 0.109 and earlier are no longer migrated on upgrade.
Users upgrading directly to 2021.3 from 0.109 and older should upgrade to 2021.2 first if they wish to preserve HomeKit configuration and avoid re-pairing the bridge.
This change does not affect upgrades from 0.110 and later.
(@bdraco - #46616) (homekit docs)
Breaking
Google Assistant
Requests for closing/opening covers fully from Google Assistant will now use close/open service instead of set_postion service. This a a revert of an unexpected breaking change.
Breaking
Habitica
Habitica has fully transitioned to configuration via UI. Existing YAML configuration is automatically migrated and imported, and can now safely be removed from your configuration files after upgrading.
(@leikoilja - #38910) (habitica docs)
Breaking
Breaking
Z-Wave JS
Minimum required zwave-js-server version is now 1.1.0. You need to run this server version at mimimum for the integration to work.
(@marcelveldt - #46983) (zwave_js docs)
Breaking
Breaking
Breaking
Honeywell Total Connect Alarm
To support user equipment that requires the entry of a usercode in addition to username and password, now all users must configure a usercode.
This can be done by updating the integration in the User Interface via Configuration > Integrations.
The use of YAML configuration is no longer supported.
Breaking
Tado
Polling interval of 15 seconds causes high load on Tado servers and does not provide enough value to warrant it. Tado plans to introduce a rate limit to prevent such misuse of the API, therefore the polling interval needs to be increased to make sure the integration works well in the future.
Breaking
LiteJet
LiteJet is now configured via the UI. Existing YAML configurations will automatically be imported and can be removed after completing the upgrade.
LiteJet's include_switches YAML option has been removed. Switches can be enabled via the integration's entity list in the UI.
LiteJet's exclude_names YAML option has been removed. Undesired entities can be disabled via the integration's entity list in the UI.
(@joncar - #44409) (litejet docs)
Breaking
Nest
The nest FAN_ON mode now sets the device timer to use the max duration of 12 hours, rather than the default of 15 minutes. If you would like the fan to turn off sooner may use an automation with timer to set FAN_OFF sooner.
(@allenporter - #46489) (nest docs)
Breaking
Breaking
Hue
Hue groups are now disabled by default because they do not have a unique ID. Existing configurations that have previously saved Hue options are not affected.
To enable Hue groups:
- Browse to your Home Assistant instance
- In the sidebar click on my.home-assistant.io/redirect/configuration
- From the configuration menu select my.home-assistant.io/redirect/integrations
- Find the entry for the Hue Bridge
- Select Options and change the setting
Note
Farewell to the following
The following integrations are no longer available as of this release:
- CoinMarketCap has been removed, the used API has been out of service for a long time already. (@frenck - #46615)
- Crime Reports has been removed, as the API is no longer available. (@frenck - #46312)
- Nuimo was in a non working state for a long time now. (@rngtng - #45600)
- Synology has been removed, the Synology DSM integration provides a full replacement. (@thecode - #46482)
- xFinity Was previously marked deprecated. It relies on web scraping to function, which is no longer allowed. (@thecode - #46484)
From www.home-assistant.io/blog/2021/03/03/release-20213/#farewell-to-the-following
Release notes from github.com/home-assistant/core/releases, and the official release blog, checked 17 hours ago. Only text the vendor marks as breaking, or puts in a warning/caution/important note, is shown; read the full notes for anything else. Home Assistant lists its breaking changes in the “Backward-incompatible changes” section of each monthly release post on home-assistant.io (2020.12 onward). Each entry of that section is quoted as “Breaking” on the x.y.0 release, under the integration name the post gives it. The post’s “Farewell to the following” section (integrations removed in that release, 2020.12–2024.5) is quoted whole as “Note”. The post's separate section for custom integration developers is not quoted. Patch releases are listed but their notes (lists of fixes) are not quoted. Versions come from PyPI (package homeassistant).