2021.12: New configuration menu, the button entity, and gorgeous area cards!

Comments

Home Assistant Core 2021.12, the final release of the year 2021; And I really think this release will contain a holiday gift for everyone!

With the holiday season coming, it is time to slow down a bit for the project, and enjoy time with our family. In a couple of weeks, 2022 will be here!

All I want to add to these last release notes of 2021 is: Thank you.

Thank you for hanging out with the project. Thank you for contributing, and thank you for reporting an issue. Thank you for helping out a fellow Home Assistant user on the forum, chat, Reddit, or anywhere else. Thank you for sharing your experiences, ideas, automations, scripts, YouTube videos, and blogs; and above all: Thank you for using Home Assistant ❤️

Happy holidays and for the last time in 2021: Enjoy the release!

../Frenck

PS: We are skipping the January release because of the holidays. So, the first release in 2022, will be Wednesday, 2 February 2022.

Brand new configuration panel

The configuration panel has been revamped. Everything is more compact and categorized. A bit of added color so you can recognize the item you need more quickly.

Screenshot of the new areas panel

The Supervisor panel and its sidebar item have been removed, and the panel has been merged into the configuration panel. All OS, Core & Add-on updates are now shown in the top of the configuration panel.

If you are using our Android, iOS, or macOS Companion apps, the sidebar menu to configure those has also been moved into the configuration panel.

All configuration related items, neatly organized in a single place 🤘

The button entity

Introducing a new entity: the button entity. Yes, it’s a button. What can you do with it? Press it!

We already have a switch entity in Home Assistant, but a switch has a state; switches are either on or off. A button, however, is a push-button, like a stateless or momentary switch.

Button entities can be provided by integrations and can be used for things like:

Examples use cases of button entities Examples use cases of button entities.

These are all things that can be triggered from Home Assistant but do not really have explicit on or off states.

We have added support for this button entity to Google Assistant, Alexa and HomeKit; allowing you to “press” those buttons from your favorite voice assistant.

For this release, MQTT & KNX added support for providing buttons. The Shelly, WLED, Elgato, Litter-Robot, TOLO Sauna, Tuya, Renault, and NAM integrations have added button entities.

Additionally, ESPHome 2021.12 has added full support for buttons too! Besides adding a restart button, you can now create button entities from ESPHome to trigger something on your DIY project from Home Assistant.

Redesigned area panel and the area Lovelace card

The area panel has been redesigned. Instead of a list of areas, it now shows a card for each area. The card shows a picture of the area.

Wait, a picture? Yes! You can now upload a picture for your area straight from the Home Assistant frontend. So, you can make it look something like this:

Screenshot of the new areas panel

But that is not all, @zsarnett created a brand new area Lovelace card. This card will use the picture you’ve uploaded for your area, and it automatically populates with entities of devices you have assigned to that specific area.

Screenshot of a new area Lovelace card Screenshot of a new area Lovelace card.

Users that can only log in from the local network

This new feature allows you to make users that are only allowed to log in from the local network and not from the internet or cloud.

This can be useful if you have users that are not always at your home or a dedicated user for a wall tablet that never needs to log in remotely.

Screenshot of user configuration in Home Assistant with local only enabled.

Z-Wave JS SmartStart and entity categories

Setting up your Z-Wave device with Home Assistant is now easier than ever, as Z-Wave JS now supports Z-Wave SmartStart!

When you have a SmartStart capable Z-Wave stick and device, you can now set up the device by simply scanning the QR code on the device, using your webcam, or using your mobile phone with the Home Assistant Companion app.

Including devices to your Z-Wave network has never been easier.

Screenshot of scanning the QR code to add a Z-Wave SmartStart device in Home Assistant.

Additionally, Z-Wave JS had added support for entity categories, so all your Z-Wave sensors are now neatly organized.

Blueprint scripts

This was actually in Home Assistant Core 2021.11 release, but we forgot to mention it completely… Shame on us… Retry!

You can now create, provide, share Blueprints for scripts! This works the same as with automations, except… well, it provides a script instead.

Script blueprints can be shared and imported, exactly like we do with automations now. These can be really helpful to provide to other Home Assistant users, as these scripts can be re-used in, e.g., other automations.

Triggering on any, but only state changes

Until now, writing automations that trigger on any state change of an entity, but not on any attribute changes, was nearly impossible without adding additional conditions.

We have now added a way to trigger on any state change, regardless of the state, without triggering on attribute changes. If you set from or to, and leave it empty, it will match any state but ignore attributes.

automation:
  trigger:
    - platform: state
      entity_id: media_player.living_room
      to: ~

The above example will only trigger if the state of the living room media player changes, but not if any of its attributes change.

The same syntax is also supported for attributes. To trigger on all changes of a specific attribute, you can use a similar syntax:

automation:
  trigger:
    - platform: state
      entity_id: media_player.living_room
      attribute: volume_level
      to: ~

The above example will only trigger if the volume level of the living room media player changes.

Cast issues resolved

You might be aware of issues with using the Google Cast features in Home Assistant. For example, casting a Lovelace dashboard didn’t work as reliably as it should have been.

We have some good news, these casting issues have been resolved!

Although a bugfix, we think the impact was significant enough to warrant its mention in the release notes.

Other noteworthy changes

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

  • The Hue integration now only uses the v2 API when talking to compatible hubs. This means that all light updates and remote presses are instantly available in Home Assistant, and scenes are now also natively supported. Amazing job, thanks @marcelveldt!
  • @farmio completely rewrote the Fronius integration adding support for all the latest, and greatest Home Assistant offers. Nice!
  • Besides supporting the new button entity, ESPHome now also supports setting the mode and unit of measurement on number entities. Thanks, @jesserockz!
  • Magic Home (Flux LED) got lots of love from @bdraco, adding support for new devices and features along the way.
  • @jbouwh improved the as_datetime template method, which now supports the UNIX timestamp.
  • The motionEye integration added sensors and service, thank you @dermotduffy.
  • WLED devices can now be restarted and upgraded from Home Assistant.
  • @chemelli74 added the climate platform support for Shelly, and @mib1185 added support for rebooting and upgrading Shelly devices.
  • Entities provided by the Vallox integration now have unique IDs and can be adjusted from the UI. Thanks @viiru-!
  • The Pi-hole integration now has a binary sensor to indicate an update is available, added by @andreasbrett.
  • System Bridge has two new services for sending keyboard events to the remote machine, added by @timmo001.
  • @klada added support for media player groups to Denon HEOS.
  • The REST platform now supports templates for its headers and query parameters. Thanks, @koying.
  • Mill now supports its 3rd generation heaters, thanks @Danielhiversen
  • @hmmbob added support for ms-MY, nl-BE, pa-IN to Google TTS.
  • Nanoleaf now pushes updates into Home Assistant, thanks @milanmeu.
  • @micha91 extended Yamaha MusicCast with number entities for controlling equalizers, dialogue volume/lift, and the display brightness.
  • The Levoit Core 400S air purifier is now supported by the VeSync integration, thanks for that @jparchem.
  • The state of number helpers is now exposed to Prometheus. Nice, @alim4r!
  • @tschamm added support for shutter controls to Bosch SHC.
  • Notifications for Android TV can now send a notification with custom icons; Awesome adding @redahb!
  • MQTT has seen multiple improvements in this release:
    • The select and number platforms now have command_template support (@jbouwh)
    • Switches now support device_class (@koying)
    • MQTT platforms can now set the object_id option (@Smeagolworms4)
    • Selects can now have a single or no options (@emontnemery)
    • Added ‘trigger’ support for Alarm Control Panels (@XaF)
    • Added lock.open support (@Hypnos3)

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 integration this release:

Integrations now available to set up from the UI

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

Additionally, KNX can now partially be set up via the UI. The connection is done via the UI, the entities are configuration in YAML; just like before. Done by @marvin-w.

Release 2021.12.1 - December 12

Release 2021.12.2 - December 15

Release 2021.12.3 - December 17

Release 2021.12.4 - December 20

Release 2021.12.5 - December 23

Release 2021.12.6 - December 27

Release 2021.12.7 - December 29

Release 2021.12.8 - January 4

Release 2021.12.9 - January 10

Release 2021.12.10 - January 17

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.

customize.yaml UI (customization)
Add-ons, Backups & Supervisor
Companion App
Advantage Air
BMW ConnectedDrive
Brunt Blind Engine
Fronius
Guardian
HomeKit Controller
Hue
KNX
Kostal Plenticore
Litter-Robot
Material Design Icons (MDI)
MQTT
Notifications for Android TV
Pentair ScreenLogic
Phone Modem
RainMachine
Renault
SimpliSafe
SMA Solar
Sonos
Statistics
Templates: `timestamp_local` and `timestamp_utc`
Trafikverket Weather Station
Twente Milieu
Velbus
Viessmann ViCare
WLED
Yamaha MusicCast
Z-Wave JS

Updates for custom integration developers

If you are a custom integration developer, we have some updates in this release that you may want to take into account for your integration.

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

mqtt.async_publish is now a coroutine
homeassistant.const.HTTP_* removed
homeassistant.util.get_local_ip() removed
Timestamp/Date device class value changes
Customization API removed
NumberEntity MODE_* constants deprecated
DEVICE_CLASS_* constants deprecated
sanitize_filename and sanitize_path util removed
SSDP ATTR_HA_MATCHING_DOMAINS value changed
MQTT/DHCP/ZeroConf/USB/SSDP Discovery

Farewell to the following

The following integrations are no longer available as of this release:

  • Dyson has been removed. The integration has been broken for a long time now, so its time for it to go, (@epenet - #59401)
  • IOTA has been removed. The protocol is no longer compatible/usable with this integration. (@lambtho12 - #59380
  • Loop Energy has been removed. Loop has shutdown their API in November 2020. (@cgarwood- #61175)
  • myChevrolet has been removed. It has been broken for 6 months and GM keeps actively hardening their authentication; preventing the integration to work. (@sdague - #59629)

All changes

Click to see all changes!