Dear reader,

Usually, I try to write a small introduction that recaps the release, while
putting a bit of my view in it as well. This release, however, I’m struggling
to find the right words…

So there is DHCP discovery added, which is super nice! And some really
helpful new Blueprint selectors, tons of UI tweaks! But honestly…

Have you heard about Z-Wave JS?!

Well, out of nowhere, a huge bunch of developers came together this month and
spat out a completely new, full-blown, fast, slick, sexy, complete, Z-Wave
integration! 🤯

So, thanks guys! An achievement beyond words, really; You all rock ❤️

Enjoy the release!

../Frenck

Erik Montnemery joins Nabu Casa

Today, we are proud to announce that Erik Montnemery has joined Nabu Casa
to work full-time on the Home Assistant project.

Some of you might know Erik better by his GitHub handle: @emontnemery, or
by one of the integrations he works on: Cast,
Tasmota and MQTT!

We are excited to have you aboard Erik! Welcome!

Python 3.7 dropped, Python 3.9 supported

Support for Python 3.7 has been removed, raising the minimum Python version
you need to run Home Assistant Core to Python 3.8. Python 3.7 was already
deprecated since Home Assistant Core 0.116.0.

This is only a concern if you are running Home Assistant Core directly on
Python. If you run Home Assistant OS, Supervised or Container, you don’t have
to worry about this, as the Home Assistant project takes care of this for you.

However, say hello to: Python 3.9. As of this release, Python 3.9 is fully
supported and tested.

Z-Wave JS

This release brings you the Z-Wave JS integration!

A brand new integration for Z-Wave in Home Assistant, full-blown, created
in just a month by a bunch of awesome people!

More and more people were concerned about the future of Z-Wave with
Home Assistant; meanwhile the
Z-Wave JS project was rapidly growing
and gathering a large community around it. Long story short: Home Assistant and
Z-Wave JS teamed up! And a lot of contributors jumped on the train!

This new integration is based on the same base principles as the OpenZWave
integration: It is decoupled from Home Assistant. Instead of MQTT, the Z-Wave
JS integration uses a WebSocket connection to a Z-Wave JS server.

This means, in order to use this new integration, you’ll need to run the
Z-Wave JS server that sits in between your Z-Wave USB stick and Home Assistant.
There are multiple options available for running the Z-Wave JS server,
via Docker or manually, and there is also a Home Assistant add-on available.

If you run an installation with a Supervisor, the add-on will even be
set up automatically for you.

Current state of Z-Wave JS

The new Z-Wave JS integration is amazingly complete. It supports the following
platforms from the start: Binary Sensors, Climate, Covers, Fans, Lights, Locks,
Sensors and Switches. Scenes are also supported!

Besides that, it is just blazing fast! ⚡️

While fast-growing, it is a new integration and there is still a lot
in progress. Of course, no doubt, there will be bugs. Bugs that will
be squashed and handled. Please, be sure to
report issues in our issue tracker.

What is left? See our Z-Wave JS integration roadmap
for those details.

Thanks to all

Thanks to all of the following people, the Z-Wave JS integration was able
to see the light in just a month!

Yes, that is an awful lot of people! Amazing how this all came together
and incredible work!

What about the old Z-Wave integration?

The old zwave integration has been based on
OpenZWave 1.4, which is really old and does not get any upstream updates
anymore. This also means that it is hard for us to keep it in a working state
for the upcoming future.

Therefore, as of today, the old Z-Wave is marked as being deprecated.

If one is starting with Home Assistant and Z-Wave, the zwave integration is
no longer recommended. For existing users, we recommend migrating to the
Z-Wave JS integration. However, don’t panic,
zwave is deprecated but not removed yet. We currently have no plans for
removing it, unless it can no longer be made to be build for the
latest Python

What about the OpenZWave beta integration?

Over a year ago, Home Assistant started working on the
OpenZWave integration. Based on OpenZWave 1.6 and the
OZW daemon, using MQTT as a transport. This project was promising and something
we put a lot of time and effort in.

Unfortunately, the OpenZWave project itself became a bit stale as most
of the upstream development is done by a single person:
Justin Hammond (Fishwaldo).

Quite a few people were worried about the lesser activity on OpenZWave.
Justin
has responded on our forum on what is happening in his life
and it is sad to read how many people have personally impacted him negatively.

Is OZW Dead – No. I’ll tinker with it, I’ll make changes as time allows,
but it will be at my own pace, to scratch my own itches now.

Let us be straight here: OpenZWave is an 11 year-old project, which is used
by an incredible amount of systems (besides Home Assistant) in this world,
with an even greater track record. So:

Thank you Justin for all you have done in all those years!

The team that was working on the OZW integration have shifted their focus to
the new Z-Wave JS integration. We don’t think the OpenZWave integration will
make it out of beta. We recommend Home Assistant users migrate to the
Z-Wave JS integration.

No more badges in auto generated dashboards

If you are using an auto generated Lovelace dashboard, you probably always had
a ton of badges on the top of your dashboard. If there are just a few it works,
but as more start to appear, it soon becomes cluttered.

Screenshot of the old badges clutter
Screenshot of the old badges clutter that is now gone!

We decided to no longer use badges in the auto generated Lovelace dashboards.
Instead, every entity is neatly grouped by area or domain in an entities card.

If you liked the badges, you can always take control of your dashboard
and add them.

DHCP Discovery

Home Assistant now listens on your network for devices that request a
IP address. Based on those intercepted messages, Home Assistant can now
discover integrations for you to use with the discovered devices.

This really powerful addition has been made by @bdraco, and many
integrations have quickly enriched their integrations to use this new
discovery method.

So as of this release, your Home Assistant might actually find some new
devices it can use! Thanks @bdraco!

New Blueprint selectors

For our Blueprint fanatics, some new goodies to the Blueprint has been added
this release. Thanks to
@thomasloven, we now have two new selectors:

Screenshot of the new text selector
Screenshot of the text selectors.

  • An object selector: Shows an YAML editor in the UI.
  • An text selector: Show a single line text input or text area for longer
    messages in the UI.
  • Blueprint descriptions now support Markdown.

Screenshot of new object selector
Screenshot of the object selector, giving a YAML input field.

Cloud Text to Speech settings

Nabu Casa has been offering an amazing text to speech service for a while now,
yet it was hard to find, and even harder to setup and use.

To fix this, a new settings UI has been added where you can select the default
language and gender to use for the text to speech service, so you no longer have
to attach that to every service call. You can find it in the Home Assistant Cloud
panel.

Screenshot of Cloud TTS options
Screenshot of Cloud TTS options.

We also added the ability to try the chosen settings right in your browser.
Click the try button, enter some text and click play to hear the
text being spoken.

Other noteworthy changes

This release has no big new features, but we do have quite a bit of tweaks
that are definitely noteworthy to mention.

  • We now give you a clearer reason why your Lovelace card configuration is not
    supported in the UI editor thanks to
    @spacegaier.
  • Shelly RGB devices are now fully supported!! Nice @chemelli74!
  • @dmulcahey Added filtering and zoom to node to the ZHA network visualization.
    Very useful to find you Zigbee network issues.
  • The deCONZ integration added support for logging basic event in the logbook.
    Nicely done @Kane610.
  • The Tasmota integration is out of beta! Awesome @emontnemery!
  • @spacegaier Added support for themes on the media card.
  • The items in the shopping list card can be ordered using drag & drop!
    Thanks @ShaneQi!
  • Newly ignored discovered integrations now show a name of the item ignored.
    This makes it easier to undo that later.
  • @balloob made a new framework that can detect significant changes in
    entities, allowing to reduce the amount of update we need to send to both
    Google Assistant and Alexa!
  • Setting up Lutron Caseta was quite a pain, but not anymore! @bdraco added
    one-touch pairing to the integration set up!
  • If you use light profiles,
    @Adminiuga is your man. All parameters of a light profile can now be
    optional and default profiles are always applied.
  • Dropdown helpers (input_select) got some new service capabilities added by
    @l-mb. They can now cycle through the options, and service calls to jump
    to the first or last item have been added as well.
  • If you have a Foscam camera, @joe248 added a service to move to PTZ presets.

New Integrations

We welcome the following new integrations this release:

New Platforms

The following integration got support for a new platform:

Integrations now available to set up from the UI

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

Release 2021.2.1 – February 5

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.

Python 3.7

Support for Python 3.7 has been dropped, after being deprecated since
Home Assistant 0.116.

This is only a concern if you are running Home Assistant Core directly on
Python. You can check the Python version Home Assistant uses by going to the
information screen in Configuration -> Info.

If you run Home Assistant OS, Supervised or Container, you don’t have to worry
about this, as the Home Assistant project takes care of this for you.
As a matter of fact, if you use one of those methods, you are already
running Python 3.8.

(@frenck#43805)

Z-Wave

The old zwave integration is now considered legacy and deprecated. This
integration is still based on OpenZwave 1.4, which has been out of active
maintenance for quite some time now.

Alternatively, you can move to one of the other Z-Wave solutions Home Assistant
offers:

  • OpenZWave (currently not maintained)

  • Z-Wave JS (introduced in this release, recommended)

PTVSD

The PTVSD extension has deprecated a couple of releases back and is now removed.
The debugpy integration is a full replacement for this integration.

(@frenck#44748)

Tado

Tado’s primary functionality has fully transitioned to configuration via UI.
YAML configuration has been removed except for device_tracker. Existing YAML
configuration has already been imported automatically in the previous releases
and can now safely be removed from your configuration files.

The device_tracker platform continues to use YAML, and will be updated at a
later date when the device tracker platform is modernized.

Tado zone sensors have been replaced by their corresponding binary_sensors.
Therefore, you’ll have to update Lovelace panels, scripts and automations
referring to the following sensors by their corresponding binary sensor
(replace sensor with binary_sensor):

  • sensor.ZONE_early_start is replaced by binary_sensor.ZONE_early_start
  • sensor.ZONE_link is replaced by binary_sensor.ZONE_link
  • sensor.ZONE_open_window is replaced by binary_sensor.ZONE_open_window
  • sensor.ZONE_overlay is replaced by binary_sensor.ZONE_overlay
  • sensor.ZONE_power is replaced by binary_sensor.ZONE_power

The following state attributes have been removed:

  • sensor.ZONE_overlay: termination
  • sensor.ZONE_open_window: open_window_attr

(@Noltari#44576) (@bdraco#45384) (tado docs)

KNX

Some knx_events changed the name of event_data fields:

  • address renamed to destination
  • Added source
  • Added direction
  • Added telegramtype

Additionally:

  • fire_event in the knx configuration is deprecated.
  • fire_event_filter in the knx configuration is renamed to event_filter.

(@farmio#44749 #45248) (knx docs)

RainMachine

RainMachine services now require an entity_id, an area_id, or
a device_id parameter to be provided. You need to check your automations
to make sure all RainMachine service calls have those.

(@bachya#44139) (rainmachine docs)

ecobee

The current state of the ecobee integration always behaves as if the
selected hold duration is Until next scheduled activity.

With this change the following settings are now respected:

  • 2 hours
  • 4 hours
  • Until I change it

If you rely on the previous behavior may need to update your automations
to account for the support for the new settings.

(@jamincollins#40520) (ecobee docs)

August

August has fully transitioned to configuration via UI. YAML configuration
will be removed in an upcoming version. Existing YAML configuration has
already been imported automatically in the previous releases and can now
safely be removed from your configuration files.

(@bdraco#45039) (august docs)

Roomba

Roomba has fully transitioned to configuration via UI. YAML configuration is
no longer supported. Existing YAML configuration has already been imported
automatically in the previous releases and can now safely be removed from
your configuration files.

(@bdraco#45037) (roomba docs)

Plex

The plex.play_on_sonos service has been removed and functionality moved
to the built-in media_player.play_media service.

Existing service payloads can be used as-is after prepending the
media_content_id with plex://.

(@jjlawren#45066) (plex docs)

Lutron

The Lutron Integration ID attribute changed to lutron_integration_id,
so any automations, template sensors, etc. using that attribute will need to
be updated accordingly.

(@TimothyLeeAdams#45114) (lutron docs)

DoorBird

DoorBird has fully transitioned to configuration via UI. YAML configuration
will be removed in an upcoming version. Existing YAML configuration has already
been imported automatically in the previous releases and can now safely be
removed from your configuration files.

(@bdraco#45139) (doorbird docs)

Logitech Harmony Hub

Harmony has fully transitioned to configuration via UI. YAML configuration
has been removed. Existing YAML configuration has already been imported
automatically in the previous releases and can now safely be removed from
your configuration files.

(@bdraco#45140) (harmony docs)

Mikrotik

Mikrotik now uses the device_tracker standard attributes for ip and mac.
The mac_address and ip_address attributes have been removed.

(@bdraco#45255) (mikrotik docs)

RoonLabs music player

This PR changes how the play_media call works for roon players.
The previous implementation was very limited – but anyone using it in
automations will need to change their calls to the new structure.

Please refer to the integration documentation for more information.

(@pavoni#45221) (roon docs)

Network UPS Tools (NUT)

Network UPS Tools (NUT) has fully transitioned to configuration via UI.
YAML configuration has been removed. Existing YAML configuration has already
been imported automatically in the previous releases and can now safely be
removed from your configuration files.

(@bdraco#45276) (nut docs)

Dyson

The speed of the Dyson Pure Cool Link fan is now one of low, medium,
and high instead of the original auto and integer 1 to 10.

In order to set the fan speed more precisely and switch auto mode, you
should use the services dyson.set_speed and dyson.set_auto_mode.

(@shenxn#45331) (dyson docs)

Viessmann ViCare

The current power sensor has been removed since it was not provided by the
Viessmann API anymore.

(@oischinger#45301) (vicare docs)

MyQ

MyQ has fully transitioned to configuration via UI. YAML configuration has
been removed. Existing YAML configuration has already been imported
automatically in the previous releases and can now safely be removed from
your configuration files.

(@bdraco#45375) (myq docs)

Nexia

Nexia has fully transitioned to configuration via UI. YAML configuration has
been removed. Existing YAML configuration has already been imported
automatically in the previous releases and can now safely be removed from
your configuration files.

(@bdraco#45379) (nexia docs)

Hunter Douglas PowerView

Hunter Douglas PowerView has fully transitioned to configuration via UI.
YAML configuration has been removed. Existing YAML configuration has already
been imported automatically in the previous releases and can now safely be
removed from your configuration files.

(@bdraco#45376) (hunterdouglas_powerview docs)

Rachio

Rachio has fully transitioned to configuration via UI. YAML configuration has
been removed. Existing YAML configuration has already been imported
automatically in the previous releases and can now safely be removed
from your configuration files.

(@bdraco#45383) (rachio docs)

Tesla Powerwall

Tesla Powerwall has fully transitioned to configuration via UI. YAML
configuration has been removed. Existing YAML configuration has already been
imported automatically in the previous releases and can now safely be removed
from your configuration files.

(@bdraco#45381) (powerwall docs)

Light Profiles

Nominally a breaking change. A default profile for the light, now is always
applied, so controlling a light from UI would set all the parameters defined
in the profile.

For example, if the default profile for a particular light is set to:

  • Color: Green
  • Brightness: 255
  • Transition: 5

And the current light status is: Color – red, brightness – 20 and in UI you
change the brightness to 100 with the intention to only change the brightness,
then the default profile would also apply the color and transition.

(@Adminiuga#45450) (light docs)

MQTT

MQTT allowed passing an arbitrary speed that was not in the speed_list.

With the conversion to percentages in upcoming releases, this aberration from
the spec could not be converted to a percentage. Since it does not
conform to the entity model, it is not possible to preserve this exception.

(@bdraco#45445) (mqtt docs)

NuHeat

NuHeat has fully transitioned to configuration via UI. YAML configuration has
been removed. Existing YAML configuration has already been imported
automatically in the previous releases and can now safely be removed from your
configuration files.

(@bdraco#45380) (nuheat docs)

Rheem EcoNET Water Products

EcoNET has swirtched over to EcoNET’s new API.

Water Heaters will no longer report current tank
temperature. The add/remove vacation services are also removed,
alternatively, you can use away mode now.

(@w1ll1am23#44427) (econet docs)

Intents

The method for matching entities in intents has changed slightly to prefer
shorter matches before ordering.

This means some intents and/or entity names may need to be adjusted to maintain
consistency in some edge cases. For most uses, this should only improve
the quality of matches.

(@CtrlZvi#43672)

Farewell to the following

The following integrations have been removed:

All changes

Click to see all changes!