Home Assistant Core 2021.4.0 → 2021.5.0
7 versions, 30 breaking changes in 1 version, 0 required stops
Version by version, oldest first
2021.4.1 – 2021.4.6: no action items (6 versions)
2021.5.0 2021-05-05
Quoted from www.home-assistant.io/blog/2021/05/05/release-20215/#backward-incompatible-changes
Breaking
Container udev
We no longer run an udev instance inside our containers. This was used by the Supervisor which now is using the host udev in all containers.
For now, we have a fallback environment variable USING_UDEV=1 which you can set on your container to get the old behavior. This gives you time for using the Docker way to map/use devices.
If you run a system that uses the Supervisor, this is automatically taken care of.
Breaking
Custom integrations
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
Custom integrations that do not have this will be blocked from loading if it’s missing a version in the manifest starting with Home Assistant 2021.6.
If you see these errors, please report the issue with the author of that custom integration.
Breaking
Events
An event fired with an event_type of more than 64 characters would previously result in recorder errors but the event would otherwise work. Now, firing an event with more than 64 characters in the event type will raise immediately.
If you are using long events in your automations or scripts, you should adjust to this change. Custom integration authors should review their event types.
Breaking
Breaking
AVM FRITZ!Box Tools
The AVM FRITZ!Box Tools integration is now configured via the UI. Configuring the integration via YAML is now deprecated. Existing YAML configuration is automatically imported on upgrade and can be safely removed after upgrade.
(@chemelli74 - #48287)
Breaking
AVM FRITZ!SmartHome
YAML configuration for AVM FRITZ!SmartHome has been removed, after it has been deprecated for 12 months. Configuration via UI is fully integrated. Existing YAML configuration has already been imported automatically in the previous releases and can now safely be removed from your configuration files.
Breaking
DHT Sensor
The pin configuration option is currently an integer but will need to be prefixed with D for Raspberry Pi platforms.
Please adjust your YAML configuration for this change.
Breaking
ecobee
ecobee climate devices will change the reported temperature precision for their current_temperature attribute from whole degrees to 0.1 degree increments. Automations which rely on whole-number precision may need adjustments.
Setting a fan hold in the ecobee integration will no longer also set a temperature hold. If any automations assumed that the temperature would be set when calling the set_fan_mode service on an ecobee device, those automations will need to add the appropriate set_temperature service call.
Breaking
Enphase Envoy
Enphase Envoy has fully transitioned to configuration via UI. YAML configuration will be removed in an upcoming version. Existing YAML configuration will be imported automatically, and can now safely be removed from your configuration files.
All sensors are now configured by default. Each inverter has a unique ID and can now be disabled in the UI.
Breaking
Ezviz
The Ezviz integration is now configured via the UI. Configuring the integration via YAML is now deprecated. Existing YAML configuration is automatically imported on upgrade and can be safely removed after upgrade.
All camera state attributes were removed and replaced by binary_sensors, sensors or switches.
List of old camera state attributes with their new replacements:
- "privacy": switch entity, camera_name.privacy
- "audio": switch entity, camera_name.sound
- "ir_led": switch entity, camera_name.infrared
- "state_led": switch entity, camera_name.light
- "follow_move": switch entity, camera_name.tracking
- "alarm_notify": camara status, "Recording"
- "alarm_sound_mod": sensor, camera_name.alarm_sound_mod
- "encrypted": binary_sensor, camera_name.encrypted
- "local_ip": sensor, camera_name.local_ip
- "detection_sensibility": sensor, camera_name.detection_sensibility
If you are using one of these attributes in your automations or scripts, you will need to adjust to this change.
(@RenierM26 - #45722)
Breaking
Garmin Connect
The unit of measurement from Garmin Connect timestamp sensors has been removed. It used to be set to empty string. If you have automations, scripts or external data recvorder that rely on unit of measurement for these sensors, you might need to adjust to this change.
Breaking
GNTP (Growl)
The GNTP (Growl) integration has been deprecated and is going to be removed in Home Assistant Core 2021.6.
The Growl project has now fully retired, see: https://growl.github.io/growl/
Breaking
Breaking
Hive
The existing Hive service heating_boost will be deprecated in Home Assistant release 2021.6 and a new service to replace it has been created called heating_boost_on.
If you use the heating_boost Hive service please update your configuration to the new service. A deprecation warning will be printed to the logs when the deprecated service is used.
Breaking
Breaking
Light profiles
When a light entity has a default profile associated, the default profile will only be applied for the light.turn_on service call when the light state is off or no data is sent with the service call.
The transition attribute from the default profile in light_profiles.csv will also be applied when light.turn_off is called.
(@karliemeads - #49376) (light docs)
Breaking
Litter-Robot
reset_waste_drawer, set_sleep_mode, and set_wait_time now have their own services. Previously, they were triggered by using send_command. If you used any of those commands in your automations or scripts, you'll need to replace them with their service counter-part.
(@natekspencer - #48300)
Breaking
Modbus
A new option SWAP replaces REVERSE_ORDER, however REVERSE_ORDER is still accepted and silently converted to SWAP=WORD.
Note: REVERSE_ORDER will be removed in a future release.
Old configuration example:
modbus:
sensors:
- name: "sensor1"
address: 17
reverse_order: true
...
- name: "sensor2"
address: 17
reverse_order: false
...
New configuration example:
modbus:
sensors:
- name: "sensor1"
address: 17
swap: word
...
- name: "sensor2"
address: 17
swap: none
...
Swap allows none/byte/word/word_byte options.
(@janiversen - #49719)
Breaking
Breaking
Recorder
Database migrations are now done in the background and no longer prevent Home Assistant from starting.
The migration is started shortly after the started event since they are CPU intensive (mostly just sqlite since it's in the same process) and we do not want to compete with startup.
Events created by your system are queued and processed when the migration is completed. There is a safety to start discarding events if more than ~30000 events happen before migration is completed to avoid memory exhaustion.
During migration, Home Assistant will prevent being started or stopped and this will also disable the homeassistant.stop and homeassistant.start services until the migration has been completed.
The sqlite database recovery logic can now recover at point after setup including purge, migration, and event insert. In short we can always (hopefully) recover and start a new db without a restart.
The quick check is no longer performed on unclean shutdown since we can always recover live. The db_integrity_check option has been deprecated.
If you are using a PostgreSQL database please verify that your connection URL starts with postgresql://. In case you use still an old URL starting with postgres://, please replace it with postgresql:// otherwise you will get an error to set up the recorder.
Breaking
RoonLabs music player
The RoonLabs music player media_player previously had integration specific services for roon.join and roon.un_join. These have been removed removes and replaced with the media_player.join and media_player.unjoin services.
If you use these services in your automations or script, you need to adjust those.
Breaking
Breaking
SimpliSafe
The unpublished SimpliSafe cloud API no longer provides a functioning websocket. Therefore, the integration will no longer be able to receive SIMPLISAFE_EVENT or SIMPLISAFE_NOTIFICATION events, nor will it be possible for stage changes performed outside of Home Assistant (e.g., via the keypad) to be reflected in Home Assistant in near-realtime.
(@bachya - #49876) (simplisafe docs)
Breaking
SMA Solar
The SMA integration is now configured via the UI. Configuring the integration via YAML is now deprecated. Existing YAML configuration is automatically imported on upgrade and can be safely removed after upgrade.
Using custom sensors is deprecated and not possible using the UI. Feel free to submit additional sensors to be added as standard sensors to the pysma library.
The pv_power sensor is now reporting DC power of solar panels side A and named pv_power_a for new installations. grid_power is the total power supplied to the grid.
Breaking
Breaking
Breaking
System Monitor
The unit of measurement from System Monitor timestamp sensors has been removed. It used to be set to empty string. If you have automations, scripts or external data recorder that rely on unit of measurement for these sensors, you might need to adjust to this change.
Breaking
Tasmota
Tasmota lights no longer supports deprecated white_value, use rgbw_color instead.
(@emontnemery - #49599) (tasmota docs)
The Tasmota Wi-Fi RSSI sensor unit was wrong, it is dBm and not dB. If you rely on the unit of measurement from this sensor, you might need to adjust to this change.
(@thecode - #49263) (tasmota docs)
Breaking
Breaking
ZeroConf
If the default_interface is not set, the value is auto-detected based on the system routing next hop for the mDNS broadcast address (224.0.0.251).
If the next-hop cannot be detected or is a loopback address, zeroconf will broadcast on all interfaces. If the next hop is a non-loopback address, zeroconf will only broadcast on the default interface.
Setting the default_interface to true or false will override the auto detection.
Note
Farewell to the following
The following integrations are no longer available as of this release:
Both integrations were in a broken state and using webscaping methods to gather their data, which is not allowed for core integrations.
From www.home-assistant.io/blog/2021/05/05/release-20215/#farewell-to-the-following
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).