2020.12: Automate with Blueprints!


Welcome to Home Assistant Core 2020.12!

You are looking at our new versioning schema. From now on, the Home Assistant Core will be using calendar versioning, consisting of the year, month and a patch number to indicate a bug-fix release. This also means our release schedule is changing. Home Assistant Core will now be released every first Wednesday of the month!

As most things are announced at the Home Assistant Conference; more things will be added/tweaked in these release notes the next couple of days.

For me, this has been an exciting year! And thanks everybody for contributing to this amazing project, no matter what and how you contributed. You are all amazing! ❤️

With the Holiday season coming, it is time to slow down a bit, enjoy time with our family. And in a couple of weeks, a new year will start; Let’s make it a good one!

Happy holidays, stay safe and for the last time this year: Enjoy the release!



Say hello; to the major new feature of Home Assistant 2020.12: Blueprints!

Screenshot of the blueprints configuration panel Screenshot of the blueprints configuration panel.

An automation blueprint is a pre-created automation with user-settable options. This allows for a separation of the logic and inputs of an automation. It sounds a bit complicated, but as a matter of fact, it will make things re-usable and easier.

Imagine a blueprint that controls a light based on motion, that allows you to configure the motion sensor to trigger on, and the light to control.

It is now possible to create two automations that each have their own configuration for this blueprint and act completely independently, yet are based on the same automation configuration.

Sharing blueprints

Blueprints are great for sharing your automations and ideas with the community.

We created a Blueprint Exchange forum category where you can post your created blueprints. For others to use!

We believe that the power of blueprint relies in sharing. You can now share complex automations that others can use, even if they are using the UI editors.

For example, a blueprint can be shared for a specific Zigbee remote control that maps all buttons to a light. A blueprint that sends a notification when it found empty batteries. A blueprint for muting music when you pick up your Android phone.

The sky is the limit in the ideas and automations blueprints we can share!

Using blueprints

Let’s cut a long story short, it sounds exciting, but what does it mean?

You can import blueprints by copying the URL of the forum topic or from GitHub into the UI. Then you can create automations from these blueprints by filling out the required inputs.

Screenshot of a blueprint Screenshot of a blueprint.

It is really easy to deploy a blueprint, even multiple times! Blueprints are fully functional in both the UI and for YAML.

Creating blueprints

We created a really nice tutorial on how to make blueprints.

Essentially, a blueprint is just like an automation, with some added blueprint metadata. You can convert any existing automation into a blueprint!

As the last step, be sure to share your freshly created blueprint on the community on the Blueprint Exchange, helping and and inspiring others.

New neural voices for Nabu Casa Cloud TTS

If you have a Nabu Casa Home Assistant Cloud subscription, this release brings in some really nice goodness for you. The text-to-speech service offered by Nabu Casa has been extended and now supports a lot of new voices in many different languages.

This is a great alternative to, for example, the Google TTS integration. The resulting audio is absolutely stunning and the neural voices sound supernatural.

This service is automatically enabled when you are signed in to your Nabu Casa cloud account and can be called using the tts.cloud_say service in your automations.

For example:

  service: tts.cloud_say
    entity_id: media_player.family_room_speaker
    message: These new voices sound absolutely stunning!
      gender: female
    language: en-US

Assign areas to entities and readable area IDs

Areas have been around for a bit already. But, not everything supports areas yet. And using it in for example YAML-based automations, is not really an easy task to do.

Today that changes, as this release works towards making areas more useful by making them more accessible and more universal.

The first change: individual entities can now be assigned to areas.

Previously this was limited to devices only. This also works for entities without a device (for example, entities provided by Helpers). Devices provide entities, and thus it is now possible to override the area with a single entity for a device as well. For example, your in-wall mounted switch controls a light in another room.

Screenshot of assigning a entity to an area Screenshot of assigning a entity to an area.

Second improvement: The ID of a newly created area will now be based on the name of the area instead of a random string.

This makes it easier to use areas in service calls, as you can now use area identifiers that actually make sense for a human! In a YAML automation or script it will look like this:

  - service: light.turn_on
      area_id: living_room

To find the area ID for the area you want to target, go to the Configuration Panel, and edit the area you want to target. In area edit dialog, the ID is shown.

Temporarily disable devices

Do you have your Christmas tree set up in Home Assistant? After the Holidays are over, you store all those decorations for the next season. But what about those devices in Home Assistant?

Thanks to @emontnemery, you can now disable devices in Home Assistant. So, next year, when you unpack all decorations, enable them again and you’re ready to go for another Holiday season!

Screenshot of disabling a device Screenshot of disabling a device.

Of course, besides seasonal things, it can also be helpful if you have a broken device or temporarily taking down any other device.

Other noteworthy changes

  • The Apple TV integration now supports tvOS version 13 and above and can be setup from the UI, thanks @postlund!
  • @thecode has been busy with the Shelly integration and added support for inputs, so you can now use the Shelly i3 and Shelly’s in detached state.
  • Thanks to @adrum, the HomeKit controller integration now has support for (de)humidifiers.
  • deCONZ now supports tilt on covers, and preset and fan for climate devices, thanks @Kane610!
  • @frenck added support for setting the repeat mode to the Spotify integration.
  • The Nest integration now supports camera and doorbell events, thanks @allenporter!
  • Changes made to your KNX integration’s YAML configuration, can now be reloaded without restarting Home Assistant. Thanks @spacegaier!
  • The number formatting in the frontend is more consistent, thanks to @joshmcrty!
  • @dmulcahey has been improving the user experience of ZHA. The feedback when pairing a new Zigbee device in the frontend is improved, discovered devices are shown earlier with their progress, and the ZHA configuration panel now has a Zigbee network visualization tab! This allows you to see your network and find connection issues.
  • The rest integration can now handle request parameters, nicely done @boxcee!
  • Learn new RF commands using a Broadlink remote! Thanks, @felipediel!
  • @mLupine extended templated binary sensors and these now support templating the delay_on and delay_off!

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 2020.12.1 - December 16

Release 2020.12.2 - December 30

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.

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.


Configuring Aurora sensor via YAML has been removed (it was non-functional already). The Aurora integration can now be configured via the UI.

(@djtimca - #43045) (aurora docs)

Certificate Expiry

In order to optimize stability and performance of Home Assistant, time based sensors should use only absolute time values (store the date of the event) and not relative time values (seconds from event), so the value doesn’t change each second.

The Certificate Expiry integration has both of them, so to adhere to Home Assistant architectural design rules, the offending relative time sensor is now removed.

If your configuration was based on the relative time sensor, please switch to the other one.

(@chemelli74 - #42338) (cert_expiry docs)


Per ADR-0010, this release deprecates YAML configuration for the Solar-log integration. If you already use the Solar-log integration you do not need to take action, as your configuration has already been imported into the UI.

(@Ernst79 - #43484) (solarlog docs)


The logic operation sensor states are renamed from (not, or, and) to (none, some, all).

The renaming is more consistent with the LCN naming convention. When using the states in an automation ensure they are correctly renamed.

(@alengwenus - #43710) (lcn docs)


In order to optimize stability and performance of Home Assistant, sensors should use only absolute time values (store the date of the event) and not relative time values (seconds from event) so the value doesn’t change each second.

The Uptime integration is one leftover, so to adhere to Home Assistant architectural design rules, the sensor is now changed to a timestamp.

As a side effect of this change, the unit_of_measurement option of this integration is now deprecated and can be removed from your configuration if you used that.

Please review your Automations and Lovelace configuration to reflect this change.

(@chemelli74 - #43623) (uptime docs)

Keyring & Credstash

Support for storing secrets in Credstash and Keyring is deprecated and will be removed in March 2021.

(@balloob - #43854)

Apple TV

The Apple TV integration has been completely rewritten. Support for YAML is removed, so old configuration must be removed and devices re-added via the integrations page.

Furthermore, the old services apple_tv.apple_tv_authenticate and apple_tv.apple_tv_scan are deprecated and replaced by the configration flow.

(@postlund - #31952) (apple_tv docs)

Telegram Bot

The telegram bot integration now allows/accepts messages when either the allowed group (Chat ID) OR the User ID of the sender matches.

This is a different behavior compared to before as before both Group (Chat ID) AND User ID needed to be allowed. This allows members of a group to talk to the bot, even if they are not specifically listed as a user.

If you use Telegram groups, make sure you adjust your configuration accordingly.

(@wicol - #43241) (telegram_bot docs)

Farewell to the following

The following integrations have been removed:

These integrations where using webscraping, which is no longer allowed.

All changes

Click to see all changes!