2022.2: Let's start streamlining!

I’m not sure if this is really fitting; it is February already… but since this is the first release of the year, I’m going to say it anyway:

Happy New Year 🥂

And, since we have skipped the January release, this release became a big one. Over 2,500 contributions make this release the largest one we have ever shipped! Including 15 brand-new integrations and 13 existing integrations, which are now available to set up via the user interface.

Now don’t be scared when you look at the breaking changes section. It is a lot, however, most of those are cleanup of old deprecations, or caused by things moving to the UI. No better way to start a fresh year, than by cleaning up 🧹

By the way, in case you’ve missed it, @balloob published a blog post last week about the focus for Home Assistant in 2022: Streamlining Experiences. I’m stoked about it, and am really looking forward to what this year will do for Home Assistant! Go 2022!

What is your new years’ resolution for your smart home this year?

Enjoy the release!

../Frenck

Updates from Nabu Casa

Before we dive into this release, we have some news and updates from Nabu Casa to share with you.

Annual subscriptions now available for the United States

The ability to subscribe to Home Assistant Cloud anually, was one of the most requested features since Nabu Casa was founded and has been announced at the State of the Open Home in December.

As of today, annual subscriptions to Home Assistant Cloud are available for the United States. 🎉

Read more about the announcement on the Nabu Casa website

Improved infrastructure

Nabu Casa’s new payment system is part of revamped cloud system that they are rolling out, and this will bring more improvements to the Home Assistant Cloud services.

They already improved our remote access infrastructure to make sure it’s routing as close to you as possible. Last week they rolled out improvements to the infrastructure that significantly improved the speed of the Google Assistant and Amazon Alexa integrations.

Zack Barett and Mike Degatano join Nabu Casa

We are also happy to announce Zack Barett and Mike Degatano will be joining Nabu Casa to work on Home Assistant.

Zack will be helping out on different aspects of Home Assistant, including the Home Assistant YouTube channel, and the Home Assistant Frontend.

Mike is going to be focusing on extending and improving the Home Assistant Supervisor and the eco system around it (like its internal plugins and add-ons).

Welcome! Excited to have you on board! 🎉

Media improvements

The media browser has been renamed to: “Media”. Nice, simple, and clean.

And, it now has a nice media bar in the bottom to control the media you are playing:

The experience of browsing the media has been improved and extended with new capabilities. The URL in your browser will change when browsing media, so you can now bookmark these pages. An integration can now browse media of supported sources provided by other integrations.

For example, if you have set up the Spotify and Sonos integration, you can now browse your Spotify to play it on your Sonos devices; and Cast now has support for playing Plex media straight from the browser.

Sonos, VLC (via Telnet), and Roku added support for playing local media! Combining this with the VLC add-on can turn your Home Assistant device into a media player for your local media. In the video below, Zack will demonstrate how that works:

Check for updates

A common question, directly seen after a Home Assistant Core, Operating System, or add-on release announcement: “I don’t see the update yet? How do I update?”

Checking for updates is done by your system - every few hours - automatically. However, you sometimes want to check for updates without waiting for this to happen.

This made us realize that doing that was scattered and hidden in several places depending on which part you wanted to check updates for. Therefore, we have added a nice and simple “Check for updates” button in the main configuration screen.

Checking for any update is now just a single click.

This feature is currently available for the Home Assistant OS, and Home Assistant Supervisor installation methods.

Diagnostics for integrations and devices

To make debugging and reporting issues with integrations or devices easier, both in terms of reporting it, and for developers to fix them, we introduce: Diagnostics.

Diagnostics can be provided by integrations and allow you to download diagnostic information about an integration or device you have set up.

Screenshot of the Download Diagnostics button on the device page

The downloadable diagnostics file can be viewed as a text file, and can be shared when reporting an issue in our issue tracker.

Diagnostics data can be extremely helpful in finding the root causes of an issue and getting them fixed. As a matter of fact, it helped us pinpointing and fixing issues during the beta of this release.

The good news is that 61! integrations already added support for this new diagnostics feature, including Z-Wave JS, ESPHome, Sonos, Shelly, WLED, Unifi, Nest, deCONZ, KNX, Tuya, Roku, Samsung TV, and many more!

Finding known issues and where to report new ones

Are you experiencing an issue with an integration? Want to know if your issue is already known and reported? Or, maybe you are not sure where our issue tracker can be found?

We added a small menu option to each integration, helping with that.

Clicking the "Known issues" item will open up our issue tracker for this integration.

This button will bring you to our issue tracker, showing all currently known and open issues for this integration.

Is your issue not listed? Well, if this integration provides diagnostics, download those. Next, go back to issue tracker, using the new known issues link, and click the “New issue” button in the top right corner to report your issue. Fill out the form and attach the diagnostics file by dragging and dropping it into the form.

Improved handling of device tracker entities

If you run an integration that provides device trackers from your router or something like the UniFi Network integration, you are probably aware those can create many entities!

This has been improved now. As of today, by default, only device tracker entities that match up with an existing - known by Home Assistant - device will be enabled by default. This keeps Home Assistant nice and tidy.

If Home Assistant does not know the device, but you still would like to track a specific one, that is still possible. In that case, you can enable the particular device tracker entities you’d like to have.

Scenes now have a state

Scenes never had a state, well that is not entirely true, it would always say: “scening”.

To make the state of a scene more valuable, it will now have the last timestamp of when the scene was activated. This has a couple of advantages:

  • You can see when a scene was last activated.
  • History of when a scene was activated in the logbook, and who did that.
  • You can now automate on a scene being activated.

The last one is pretty useful as a scene can now be used to trigger even more actions via automations. For example, you could start playing media or send a TTS announcement when a scene activated.

Now the scene has a state; it also got logbook entries.

Search in the configuration panel

There is now a search in the top right of the configuration dashboard, which opens the Quick Bar. This also works on mobile devices.

It allows you to access and search for just about anything within Home Assistant. From accessing add-ons, configuration panels, and even entities and devices.

Tip: Did you know you can press c (for command) and e (for entity) on you keyboard from anywhere in Home Assistant to bring up that same Quick Bar?

Button helper and template

In the previous release, we introduced the button entity. One of the most asked questions about the button has been: “How can I create my own button entity?”

This release introduces the button helper, and those can be created via the UI and using YAML ( as the input_button).

These button helpers can be used to trigger automations and we have ensured they work with Alexa, Google Assistant, and HomeKit.

Additionally, there is now a template entity for buttons available as well. Here is an example:

# Example configuration.yaml
template:
  button:
    - name: "Send message"
      press:
        - service: notify.frenck
          data:
            message: "My button has been pressed!"

Templating enhancements

There are a couple of nice enhancements to this release for the more advanced use cases that stand out.

Shorthand condition notations in actions

Shorthand condition notations are pretty helpful and are now supported in conditions actions; For use in automations and scripts.

For example:

sequence:
  - condition: "{{ is_state('device_tracker.iphone', 'away') }}"

Immediate if (iif)

We now have an immediate if (iif) template function and filter that can be used as a short alternative version to an if/else statement.

These can help shortening a lot of if/else constructs that for example, return a “Yes” or “No” (or similar) value in templates. Some examples:

{{ iif(is_state('light.kitchen', 'on'), 'Yes', 'No') }}
{{ is_state('light.kitchen', 'on') | iif('Yes', 'No') }}
{{ (state('light.kitchen') == 'on') | iif('Yes', 'No') }}

Other noteworthy changes

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

  • When an integration has a single device, clicking on the “1 device” link will now navigate to that device directly and skip the addition page with a table showing 1 item. This makes navigating those cases quicker, thanks @balloob!

  • There is now a tiny menu on discovered devices and services, which allows you to visit the device/service and find the documentation that belongs to this discovered item.

  • Editing trigger IDs in automations has moved into the trigger menu, making the automation editor a little more compact.

  • When viewing backups, it will now display the size of each backup in the table. Thanks, @ludeeus!

  • Thanks to @bramkragten, you can now select the period in the options of the statistics card.

  • The Apple TV integration has been updated to support tvOS 15 and can now launch apps too! Thanks, @postlund!

  • Thanks to @bdraco, a device can now also display its hardware version in Home Assistant. The HomeKit, Xiaomi Miio, Bond, Roku, and WLED integrations have already adopted this.

  • The Google Assistant integration can now be set up to use local fulfillment, thanks to @LoekSangers! Please note that this only applies to manual setups. This is already handled automatically when using the Home Assistant Cloud.

  • ZHA devices now have identify buttons, so you know which light you are dealing with, thanks @dmulcahey! (Tip: also nice for visual notifications)

  • We now enable Low Latency HLS (LL-HLS) by default to lower stream latency, thanks @allenporter!

  • Magic Home (also known as FluxLED) had lots of improvements of love from @bdraco!

  • @Danielhiversen added support for local access to Adax and Mill heaters. Nice!

  • Tuya now supports Pet Feeders (thanks @vauriga), Circuit Breakers (thanks @slydiman), and Alarms (thanks @leeyuentuen). Additionally, support for Fans has been improved.

  • The generic thermostat integration now supports presets, thanks @brianegge!

  • Home Connect added support for refrigerators and cook processors, thanks @BraveChicken1 and @noxhirsch

  • @Shutgun added support for sirens to devolo Home Control.

  • Tibber added sensors for estimated hourly and monthly consumption, costs, and more! Thanks, @Danielhiversen!

  • We now have a slugify template filter, thanks to @ZephireNZ!

  • @Petro31 make is_number available as tests in templates.

  • Volumio has now repeat, repeat, repeat, … support. Thanks, @m4rkireland!

  • @marcelveldt added a service to the Hue integration for setting more advanced scene options. Thanks!

  • Sonos now has a binary sensor that can tell you if the microphone is on or off. Helpful for a notification in case it shouldn’t be on or off. Thanks, @jjlawren!

  • @sebfortier2288 add support for tilt devices to Soma. Nice!

  • Google Assistant now supports the curtain device classes, thanks @emontnemery!

  • If you are using Synology DSM connected cameras, you can now select the quality of the snapshots taken. Thanks, @mib1185!

  • A whole bunch of entities have been added to configure Yamaha MusicCast, really nice @micha91!

  • Environment Canada now has an AQHI sensor. Thanks, @gwww!

And honestly, this list is far from complete! There is so much this release. Feel free to check and search the “All Changes” section to find more!

This release adds support for long-term statistics to the following integrations:

And the following integrations now have entity categories:

New Integrations

We welcome the following new integrations this release:

Integrations now available to set up from the UI

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

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat.

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.

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

The configuration of the Energy Dashboard has moved.

Previously this was found as a menu item in the configuration screen, but has now been moved into the “Dashboard” menu item.

This keeps the configuration of all dashboards in a single place.

(@zsarnett - #11386)

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.

(@frenck - #63883)

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.

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)

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 on if 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)

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.

(@frenck - #64621)

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)

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.

The /api/discovery_info endpoint was deprecated in 2021.10, and has since only returned blank values. From this version, the /api/discovery_info endpoint has been removed completely.

(@ludeeus - #64534) (api docs)

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)

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.

(@frenck - #64629) (apns docs)

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.

(@tkdrob - #62317) (aurora_abb_powerone docs)

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)

The lock and devicelock attributes are removed from all entities and now exposed as own sensors.

(@mib1185 - #60426) (fritzbox docs)

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.

(@eavanvalkenburg - #61155) (azure_event_hub docs)

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.

(@rikroe - #63136) (bmw_connected_drive docs)

The custom start_increasing_brightness, start_decreasing_brightness and stop services are now deprecated and will be removed in a future release.

Please use the new button entities, that replace those, instead.

(@bdraco - #64725) (bond docs)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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 is 1 for alert 1, 2 for alert 2, etc.

(@gwww - #58615) (environment_canada docs)

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.

(@bdraco - #59781) (fan docs)

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)

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)

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)

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)

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)

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.

(@tkdrob - #62468) (google_travel_time docs)

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_entities or include_entity_globs fields.
  • 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)

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)

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.

(@zacwest - #61078) (ios docs)

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)

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.

(@DurgNomis-drol - #64203) (launch_library docs)

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)

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)

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)

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.

(@jbouwh - #63814) (mqtt docs)

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)

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)

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)

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)

The previously deprecated YAML configuration of the Nuki integration has been removed.

Nuki 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 - #62470) (nuki docs)

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.

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)

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_generation
  • power_generation
  • energy_consumption
  • power_consumption
  • efficiency
  • temperature
  • voltage

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)

ReCollect Waste no longer stories “next pickup” information as attributes of the “current pickup” sensor; instead, both pickups are now their own sensors.

(@bachya - #62558) (recollect_waste docs)

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)

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)

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)

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)

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.

(@tkdrob - #62472) (sma docs)

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)

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)

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)

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)

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)

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.

(@gjohansson-ST - #62636) (trafikverket_train docs)

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)

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)

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)

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)

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)

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)

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.

(@tkdrob - #62543) (waze_travel_time docs)

WebSocket API / Media Source

This concerns custom integration developers only.

The parameters for async_sign_path have changed. Refresh token is now a keyword parameter. If called as part of a HTTP or WebSocket request, the users refresh token will automatically be used.

(@balloob - #64337)

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)

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)

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)

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)

All changes

Click to see all changes!

This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2022/02/02/release-20222/
13 Likes

204 posts were split to a new topic: I’m unhappy with the removal of GPIO

Why is the “Works with Nest” API being removed? My understanding is it’s not going away? The new API still doesn’t support my Nest Protects, and I have automations to do things - important things - when the Nest Protects alarm goes off.

Please reconsider

22 Likes

@frenck I noticed this link is dead: https://www.home-assistant.io/integrations/diagnostics/.

On the one hand, Rpi hardware is recommended. On the other hand, GPIO will be removed and in my case the cooling of this recommended hardware will stop working. That makes no sense. If it is a sensor, I am able to move it to esp, but not the stackable cooling plate Rpi. I am not a programmer just an ordinary user, so what will be the basic solution?

10 Likes

I can’t comment on its removal but I utilise Homebridge connected to HA via the HomeKit Controller integration as I missed the boat on the original Nest API

Edit: I’ve just checked and the HomeBridge Add-On is deprecated, so this may not be a viable option for all - I run HA & HomeBridge via Docker

Works with Nest connections will continue to work for those users who have a non-migrated Nest Account in the Nest app for as long as our partners support them, these integrations will remain on maintenance mode.

Guess I need to give up having six Nest Protects in HA and switch to the more expensive billing plan. I’ll admit this was eventually expected but I really thought Google Nest would be the ones ending it.

7 Likes

Many thanks to everyone who contributed to this feature-packed release. :+1:

There’s a lot to unpack in this one; it’s going to be fun exploring/implementing the numerous improvements.

Thanks again to all and keep up the fantastic work.

7 Likes

I’m holding off on this one for now

[15:15:46] INFO: Checking your configuration against this version...
[15:17:56] ERROR: The configuration check did not pass!
[15:17:56] ERROR: See the output below for more details.
Testing configuration at /tmp/config
INFO:homeassistant.helpers.storage:Migrating core.device_registry storage from 1.2 to 1.3
INFO:homeassistant.helpers.storage:Migrating core.entity_registry storage from 1.4 to 1.5
ERROR:homeassistant.config:Invalid config for [automation]: Integration 'zha' not found (See /tmp/config/configuration.yaml, line 15). 
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/device_automation/__init__.py", line 135, in async_get_device_automation_platform
    integration = await async_get_integration_with_requirements(hass, domain)
  File "/usr/local/lib/python3.9/site-packages/homeassistant/requirements.py", line 75, in async_get_integration_with_requirements
    raise IntegrationNotFound(domain)
homeassistant.loader.IntegrationNotFound: Integration 'zha' not found.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/automation/config.py", line 103, in _try_async_validate_config_item
grep: write error: Broken pipe
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

here’s one of the automations I believe is tripping this

alias: cube - volume up
description: ''
trigger:
  - device_id: 2985c99c4f7d790002a51f5d306320e6
    domain: zha
    platform: device
    type: device_rotated
    subtype: right
condition: []
action:
  - service: media_player.volume_up
    data: {}
    entity_id: media_player.kitchen_speaker
mode: single

Docker image doesn’t seem to have been pushed yet…

The Works with Nest integration is the only way to get the Nest Secure status (via the Home/Away state), so it’s really disappointing to see this get removed even though the APIs will continue to work.

12 Likes

I have HA Core installed in WSL (Win10). After updating to 2022.2, the daemon doesn’t start anymore:
hass: error: unrecognized arguments: --pid-file /var/run/hass/hass.pid --daemon

Was working fine until now. I followed this KB: Autostart using init.d.
I assume script will need a little re-work (not from me though). Any help will be much appreciated :slight_smile:

3 Likes

Why I do not see this version 2022.2 ?
My System Info still says “newest version : core-2021.12.10” :frowning:

Very disappointed in the decision to deprecate and relatively quickly remove the works with nest integration. The alternative requires payment and while that is not within the home assistant teams control, deprecating an alternative before the manufacturer does doesn’t seem helpful at all.

Any background on this decision? The PR on GitHub has absolutely no discussion or explanation for the removal.

Thanks!

18 Likes

It’s still building.

Just finished!

Result of the actual Cofiguration check against new version (starting from core-2021.12.10, supervisor-2022.01.1, Home Assistant OS 7.2):

[21:14:12] INFO: Installed Home Assistant 2022.2.0

[21:14:12] INFO: Making a copy of your configuration for checking…

[21:14:13] INFO: Checking your configuration against this version…

[21:21:57] ERROR: The configuration check did not pass!

[21:21:57] ERROR: See the output below for more details.

Testing configuration at /tmp/config

INFO:homeassistant.helpers.storage:Migrating core.device_registry storage from 1.2 to 1.3

INFO:homeassistant.helpers.storage:Migrating core.entity_registry storage from 1.4 to 1.5

Failed config

General Errors:

  • Component error: ifttt - No module named ‘aiodiscover’

Successful config (partial)

UPDATE; SOLVED 2022.2.0 installed and working fine! Thanks,

1 Like

Well, I still see the same "newest version : core-2021.12.10”.
Don’t quite understand how somes here were able to update already ?

Your question is answered by release notes itself. With previous versions, home assistant is checking against new version regularly (in every couple of hours), you were not lucky enough, probably, your latest check just had happened before new release.

With new release, there will be an option to force check the update.

1 Like

From the release notes:
"A common question, directly seen after a Home Assistant Core, Operating System, or add-on release announcement: “I don’t see the update yet? How do I update?”

Checking for updates is done by your system - every few hours - automatically. However, you sometimes want to check for updates without waiting for this to happen.

This made us realize that doing that was scattered and hidden in several places depending on which part you wanted to check updates for. Therefore, we have added a nice and simple “Check for updates” button in the main configuration screen."