2022.7: A stunning performance

Home Assistant Core 2022.7! ☀️

This was one exciting and busy month! In case you’ve missed it, there was a Matter in Home Assistant workshop and a Let’s get loud! event about bringing audio to the Open Home. If you have missed those, it is worthwhile to check those recordings out.

Meanwhile, preparations are happening for the upcoming Matter and of course, the soon-to-be-released Home Assistant Yellow! 💛 More about that soon™.

This release is definitely representing the “streamlining experiences” motto we have been using. The performance improvements in this release are once more: stunning! Furthermore, there are some wonderful new features to explore too.

This release has the perfect mix! I’m sure there is something in here you like. So without further due: Enjoy the release!

../Frenck

Don’t forget to join our release party live stream on YouTube today at 12:00 PDT / 21:00 CET!

Improved stability and performance, and Python 3.10

The quest to improve the performance of Home Assistant continues. For many releases, @bdraco has been analyzing every single aspect of Home Assistant and manages to make it faster every single release.

Usually, we have a section at the end of our release notes informing you about the performance improvements made. The improvements in this release, however, are a big deal.

Our YAML & JSON tooling improved, using faster libraries and methods. JSON is used internally and for communication with the frontend, which is A LOT snappier now. If you use lots of YAML, you will undoubtedly notice this when starting Home Assistant or reloading things like your automations 🚀.

Devices with an integration error during startup that can self-recover will now do that instantly as soon as the device is discovered.

We now use a better and faster encryption method for the HomeKit Accessory Protocol (HAP). It improves the performance of the HomeKit, HomeKit Controller, and Apple TV integrations and prepares Home Assistant for iOS 16.

Lastly, @pvizeli has been working hard to ship Home Assistant on Python 3.10! Which also brings quite a performance improvement. If you run the Home Assistant Operating System or use our container installation method, you will automatically get this; there is no need to do anything. 🚀

Update Z-Wave devices directly from Home Assistant

All software has bugs, including the software on your Z-Wave devices. But how to update those? Have no fear! As of today, we have a solution for this!

Thanks to the hard work and collaboration between @AlCalzone from Z-Wave JS and @raman325 from Home Assistant, you can now install updates on your Z-Wave devices directly from the Home Assistant interface!

Screenshot showing the new upload firmware item on the device page of a Z-Wave device page

On the device page of your Z-Wave device, there is now a menu item allowing you to install Z-Wave firmware updates onto your device manually.

Get a software update for your Z-Wave device from the manufacturer, and start an update in Home Assistant, which allows you to upload the update file you got from the manufacturer. The rest is pure magic!

Screenshot showing the a Z-Wave device that has firmware installation in progress

During update installation, you’ll be presented with the update’s progress.

It is that easy 💪

The about page is now beautiful too!

Have you ever looked at the about page in the Home Assistant settings menu?

It was probably one of the least visually appealing pages still in our menus, and @zsarnett seemed to agree. He made it a lot more cleaner and functional.

It now clearly shows the versions of the different components your instance is made up of, and provides a clean menu to all kinds of Home Assistant related links.

Screenshot the new about page from the settings menu

Change any weather unit to your preference

Home Assistant has many weather services that can be integrated; it is great to have a choice! The differences between those are often their accuracy for your region and the units of measurement used for the different weather data points.

But what if you’d like the barometric pressure unit to be in mbar instead of hPa? Or maybe use m/s or knots instead of km/h for wind speed? No problem!

You can now change the units each weather entity uses! Not just temperature, but for all of the values a weather entity provides. When changing a unit, Home Assistant will take care of converting the values for you.

Screenshot showing energy usage being compared from last week with the week before that

On a similar note, number entities that represent a temperature are now converted to the temperature unit used by the configured unit system.

Thanks @emontnemery and @gjohansson-ST for adding this and updating all existing weather integrations to support this 👍.

Labels instead of values for gauge cards segments

When displaying an entity gauge card on your dashboard, it would show the gauge with the sensor value. For example, if you’d use a humidity sensor, it shows the humidity percentage in the middle of the gauge.

In the 2022.5 release, we added segment support to our gauge card. In this release, @kristjanbjarni added label support to those segments!

This means that if your segment has a label, the gauge card will show that label instead of the sensor value when it is in that range.

Screenshot showing the new gauge labels

For more information, check out our gauge card documentation.

Code editors now auto-complete MDI icons

All of our code editors in the frontend now have auto-completions for MDI icons. Just start typing mdi: and it will help you find the exact icon you need.

Screenshot demonstrating auto-complete for MDI icons in the code editors

Like the normal icon picker, it supports searching on parts of the icon name, its aliases and categories. Additionally, it will show a little preview of the icon you are about to select, so you know you got the right one.

Thank you @bramkragten, this is a really nice addition!

Filter the history panel

If you have lots of devices and entities then the history panel can be long! Actually, it would become so large, that it becomes unpractical. You could always filter it down to a single entity, but that is fairly limited as well. For this release, @D3v01dZA improved these filters.

The history can now be filtered by one or more entities, by all entities of one or more areas, or by all entities of one or more devices.

Screenshot demonstrating the history panel; it is now possible to select what you want to see

This is super helpful, as you can now view the history of all entities in, for example, your living room area quick and easy.

Easily convert values to booleans in templates

If you are into templates, @pyos has a surprise for you: We now have a bool function that can be used as a filter too!

If you are a bit into coding, this is not the standard bool(), but one that is very specific for Home Assistant, making it very useful.

This bool method converts a value into a boolean and considers Home Assistant’s specific rules for truthy values. Some examples: "on" will be considered true, and "disabled" will be considered false.

Screenshot demonstrating auto-complete for MDI icons in the code editors

Using bool as a filter and combined with and iif filter, you can quickly change, for example, binary sensors values into any text you’d like.

For more information, check out our Templating documentation.

Other noteworthy changes

There is much more juice in this release; here are some of the other noteworthy changes this release:

  • The Material Design Icons have been updated to v6.9.96, giving you 100 and another 100 brand new icons to use 🤩 .
  • You can now control the loudness and various additional surround-related settings of your Sonos speakers, thanks @jjlawren! 🔊
  • You can now trigger Alexa routines from switches, toggles, and buttons without the need to wrap them into a binary template sensor first. Fantastic addition, @mdegat01!
  • The logbook live feeds will now automatically pause when you start scrolling and resume when you are back at the top again. Thanks, @bdraco!
  • @matrixd2 extended YoLink; It now supports thermostats, valve controllers, locks, and vibration, CO, and Smoke Sensors!
  • Jellyfin now supports movie collections in the media browser, thanks @j-stienstra!
  • Thanks to @dmulcahey, the widely discussed Aqara FP1 sensor is now supported by ZHA!
  • @ghedo has been busy improving the Area Card. It can now show moisture/flood alerts, humidity, and shows an icon for temperature. Nice!
  • @kingy444 added support for Top/Down, Bottom/Up to Hunter Douglas PowerView. Additionally, buttons to calibrate and jog (identify) have been added. @bdraco added support for polling in case the device is mains powered.
  • Thanks to @thrawnarn, you can now send polls via Telegram bot!
  • The Home Connect integration now has whole collection of new services that can be used to control and configure options of device programs. Really nice, @BraveChicken1!
  • If you have WiZ power plugs with power monitoring, these are now supported, thanks to @bdraco ⚡️.
  • @gjohansson-ST added lots of love to Sensibo this release. Support for (split) timers, Pure Boost, improvements to setting temperature, bug fixes, and many more. Nice work!
  • @iAutom8 made his first-time-ever open source contribution ❤️; And added support for additional temperature sensors in ViCare.

New Integrations

This release does not include new integrations.

Integrations now available to set up from the UI

The following integrations are now available via the Home Assistant UI:

Release 2022.7.1 - July 7

Release 2022.7.2 - July 8

Release 2022.7.3 - July 10

Release 2022.7.4 - July 13

Release 2022.7.5 - July 14

Release 2022.7.6 - July 20

Release 2022.7.7 - July 26

Need help? Join the community!

Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!

Our very active Discord chat server is an excellent place to be at, and don’t forget to join our amazing forums.

Found a bug or issue? Please report it in our issue tracker, to get it fixed! Or, check our help page for guidance for more places you can go.

Are you more into email? Sign-up for our Building the Open Home Newsletter to get the latest news about features, things happening in our community and other news about building an Open Home; straight into your inbox.

Backward-incompatible changes

Below is a listing of the breaking change for this release, per subject or integration. Click on one of those to read more about the breaking change for that specific item.

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)

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:

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)

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)

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 is km/h.
  • If the unit system is imperial, the default pressure unit is inHg, and the default wind speed unit is mi/h.

(@gjohansson-ST - #73707) (documentation)

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)

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)

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)

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)

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)

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)

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.

(@MasonCrawford - #71153) (documentation)

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

  1. Edit the known_devices.yaml file 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.
  2. 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.)
  3. 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:

  • circles
  • members
  • error_threshold
  • warning_threshold
  • max_update_wait (including the life360_update_overdue & life360_update_restored events)
  • 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)

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)

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)

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)

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.

(@MartinHjelmare - #72761) (documentation)

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)

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)

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)

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)

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)

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)

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)

SmartThings

The following power entity attributes from the climate entity for SmartThings Air Conditioner have been removed and added as separate sensors:

  • power_consumption_start
  • power_consumption_end
  • power_consumption_power
  • power_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)

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)

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.open service, 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)

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)

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)

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.

(@AngellusMortis - #73765) (documentation)

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)

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)

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)

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)

If you are a custom integration developer and want to learn about breaking changes and new features available for your integration: Be sure to follow our developer blog. The following are the most notable for this release:

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.

All changes

Of course, there is a lot more in this release. You can find a list of all changes made here: Full changelog for Home Assistant Core 2022.7