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/tweak in these release notes the next couple of days.

For me, this has been an exiting year! And thanks everybody for contributing to this amazing project, not 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!

../Frenck

Blueprints

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

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.

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:

action:
  service: tts.cloud_say
  entity_id: media_player.family_room_speaker
  data:
    message: These new voices sound absolutely stunning!
    options:
      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 disabling a device.

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:

action:
  - service: light.turn_on
    target:
      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.

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:

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.

Aurora 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) Solar-Log 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) LCN 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) Uptime 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!

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

I gotta say, the versioning scheme change made me laugh :smiley: When everyone was expecting it to jump into “Released” state by going 1.0, it just got changed to date based system.

While I laughed for a few minutes, it’s actually because of how clever this is and what kind of message it sends. It makes for a smoother transition between stages, and also totally draws the right picture, there won’t be a “release-release”, Hass is a working piece of software that’s just under continuous development and improvement. It’s been production ready for a long while now. ANd in the end those are just numbers.

Anyways, exciting updates, can’t wait to try the update out :slight_smile:

12 Likes

Can the developer of the uptime breaking change please make a working example of how to do the calculation of uptime as number of seconds or minutes since boot

It is quite time consuming to debug because you have to restart HA to test

I have this automation that will break with the change

- alias: 'Alarm - Armed'
  initial_state: true
  trigger:
    - platform: state
      entity_id: alarm_control_panel.alarm
      to: 'armed_away'
    - platform: state
      entity_id: alarm_control_panel.alarm
      to: 'armed_home'
  condition:
    - condition: numeric_state
      entity_id: sensor.home_assistant_uptime
      above: 1

A working example how to change that condition in my example would be really helpful to anyone using the uptime for this kind of purpose. I found the existing example myself on the forum so I know others than I have similar automations where you want to prevent triggers when HA starts or restarts

My sensor is defined like this

- platform: uptime
  name: Home Assistant Uptime
  unit_of_measurement: minutes

I do understand why the uptime was changed and appreciate that we will save a lot of pointless logging with the change. We just need a little help in the documentation to change to the new way of working

1 Like

I use this automation too and did it with:

      - condition: template
        value_template: "{{ (((as_timestamp(now()) - as_timestamp(states('sensor.uptime'))) % 3600) / 60) | int > 1 }}"
2 Likes

Completely agree. New release naming stops idiots saying “HA is still not at release 1.0 yet” - a comment that annoyed the hell out of me in Paul Hibbert’s video

5 Likes

You can just reload automations and not restart…

1 Like

That does not set the uptime back to 0, right? The uptime changes from relative to time stamp.

This is a good change because today you get a log entry each time the uptime increases which is silly. A time stamp is static and the calculation in the automation condition will only run 5-10 times per week.

My automation works without but part of my alarm on automation is to announce it on my Amazon Echos, and it is not popular in the little family when I restart HA late night when the wife is sleeping :wink:

VDRainer gave us the syntax and I am thankful. It enables me to upgrade to 2020.12.0 with little effort. @frenck - maybe you could add VDRainers 3 liner example to the release note in the uptime breaking change section

Please, fix that after HA reboot, person at home time count reset. I reboot HA, and it seems that everybody left home

Just updated my Zigbee bridge Rpi 3B+ and I get a HACS cannot loaded error on restart. Tried twice now and the same. Will try my main Pi4 shortly and see if that has the same error.

Smooth update once again, also updated HA OS to 5.8. No issues to report so far :+1:

1 Like

not supervisor host right?

You’re right. Host, not Supervisor. Will edit :+1:

1 Like

The new voices on Nabu Casa are awesome, the new PT-BR worked better than anything else I tried. Thanks a bunch.

How will the breaking changes work with the new versioning scheme? Should we expect that there might be some breaking changes in any new YYYY.MM.0 release or does your breaking changes policy changes somehow?

3 Likes

Many thanks for your work!
I heard my NUC fan for the first time since I bought it. Was a little wondering so I checked after I installed the update. Something has happened to the power the home assistant needs. I do not know what happened but something has happened. Understand me right I love your work but something eats my cpu, and the fan sound I have never heard before.

The old 0.118.5

The new 202012

Hi

Cert Expiry has stopped working since the upgrade to 2020.12.0

Martyn

more things will be added/tweak in these release notes the next couple of days.

Please be sure to call them out, or specifically pin-point what has been added.

1 Like

Which languages are supported by the new TTS?

For the Cloud TTS the docs say “…and send text to a compatible media player” but never lists what is compatible. I just tested it out with one of my Google Home devices and it makes the sound that it’s going to cast, but there’s no message. It’s just silent. Tried it exactly how the nabucasa page says to test it.

There’s a link right in the paragraph where it talks about the new TTS. https://www.nabucasa.com/config/tts/

2 Likes