social

Home Assistant 2021.11: Icon picker, device links and entity categories

social

Point eleven (.11), which means it is November! 🥶 (or 🏖 depending on where
you are in this world, of course.)

It also means: This is the second last release of the year…

Hacktoberfest is over! In the month October, people
contribute to projects (like Home Assistant) to celebrate open source.
I’ve seen lots of new faces and new contributors this month. To those I want
to say: Welcome! Thanks for contributing your free spare time; Thanks for
being a hero! ❤️

And, there is more! Something that isn’t really visible. In the background,
an army of contributors are improving a tremendous amount of Home
Assistant code, which improves stability, readability, and maintainability of
our project’s codebase. As a matter of fact, because of this incredible work,
counted by the number of contributions, this release might just as well be one
of the biggest ever. Work, you generally don’t notice, but is still done.
Weird huh? Another group of heroes! ❤️

For me personally, this has been a crazy month. After the last release, I was
sad to read about issues people had with the new Tuya integration. I went to
different stores, bought many Tuya devices, and spent a lot of time improving
the experience by extending device support. Hopefully, I’ve been able to do
enough to make the Tuya integration acceptable.

This release… a long-time wishlist item of mine is in: The icon picker! 😍
So cool to see this happening, it is amazing, beautiful, super helpful,
and it also supports third-party icon sets! 🤩

Oh, to spoil some inside information, you might want to block your
agenda for the Home Assistant State of the Union 2021 on Saturday 11 December,
8 pm (CEST)!

Enjoy the release!

../Frenck

Daylight saving time bug

If you have already transitioned daylight saving time (DST), you might have
experienced it already. If you have not switched yet, this message is extra
important for you.

Last weekend we experienced a bug with daylight saving time transitioning,
causing Home Assistant to crash or have higher CPU loads than usual.
If you experience this, restarting Home Assistant will resolve this issue.

This release has a more permanent fix for the issue, preventing it from
happening. If you can’t upgrade to 2021.11 right now, we have also published
Home Assistant 2021.10.7, which has the same bugfix included.

So if you still have to transition to a new summer/winter time, be sure to
upgrade!

Visit devices and services

Your device has a web interface, but you don’t remember the (IP) address it
has on your network… So you start guessing a couple of addresses; And end up
checking your router, looking it up in an app, or scanning the network…
Sounds familiar? Annoying, right?

Well, as of today, integrations can provide the URLs to devices or services
where the device can be managed or configured.

Screenshot of WLED that now has a button that links to the WLED web interface of the device directly
Screenshot of WLED that now has a button that links to the WLED web interface of the device directly.

If an integration provides a single web interface to configure multiple devices,
it can even deep-link to the specific device page for that device.

Over 50! integrations have already added support for this feature, which is
fantastic! Just to name a few integrations: MQTT, Tasmota, WLED, Synology, Plex,
Netatmo, Pi-hole, RainMachine, Plugwise, Sure Petcare, Axis, UniFi Controller,
FRITZ!Box, and many more!

If you are a custom integration developer, you can add support for this feature
too; Read all about it on our developer blog.

Entity categorization

Since we introduced the concept of devices, we have been seeing more and
more entities being created, which is great! It means we can automate on a lot
more device features. However, this does impose other issues, like:
clutter on a generated dashboard, unused entities exposed to voice assistants,
or turn on/off things in areas as a side-effect. Let me try to explain the
latter issue with an example.

Let’s consider a wall plug. It can be turned on/off using a switch entity,
however, my wall plug also has a switch to enable a child lock that controls
its physical button. Now, if I had this device in my living room area and
turned off all switches in my living room, it would turn off the switch and
the child lock! This is not what we want, right?

To resolve issues like these (and more), we introduce: Entity categories.

Entities without a category are now considered primary entities: The entities
we daily use and expect from a device, i.e., the power on/off switch.
Furthermore, entities can be categorized as configuration or diagnostic entities.
A configuration entity provides a setting/configuration option for the device,
while a diagnostic entity provides information about the device.

Take a light bulb as an example. The light entity itself is a primary entity.
However, the select entity that provides the power on behavior configuration of
the bulb is a setting of the device and thus a configuration entity. While the
sensor providing the signal strength of the light bulb is a diagnostic entity.

Another, more visual example, from the device page of a Sonos Move speaker:

Screenshot of the Sonos device page that now has entities categorized
Screenshot of the Sonos device page that now has entities categorized.

In the above screen, you can see the Sonos speaker itself is a primary control
entity, while the entities that provide device configuration options and
entities that provide diagnostic information about the device itself are now
separated nicely.

With entities that are non-primary (so are either configuration or
diagnostic entities), we now do the following:

  • Non-primary entities are hidden from generated Lovelace dashboards. This
    reduces the clutter and makes the generated dashboards more useful for daily
    use.
  • Non-primary entities are, by default, not exposed to Amazon Alexa or
    Google Assistant. You, of course, still can expose them, but by default,
    we don’t send them to these voice assistants.
  • Non-primary entities are not called by service calls that target the device
    or area the device is in. They are only called if explicitly called by their
    entity ID.

Please note, the above-listed points are breaking changes, also listed in
the breaking changes section of these release notes.

Like the previous visit device or service feature, this new organization
capability has been adopted by many of our maintainers: 60+ integrations!
To name a few: Sonos, Z-Wave JS, Shelly, SwitchBot, deCONZ, Neato, Netatmo,
August, MQTT, Hue, Roomba, Tibber, AirVisual, KNX, motionEye, and many more.
Oh, and soon, we can add ESPHome to that list!

If you are a custom integration developer, you can add support for this feature
too; Read all about it on our developer blog.

The icon picker

Adding nice and matching icons to your entities, makes all the difference for
how your Home Assistant interface looks and feels.

Finding those icons was somewhat clumsy. You’d go to the
Material Design Icons website to find one,
remember its code and add the mdi:<code> to your entity. Not a great
experience, especially with the number of icons available your browser doesn’t
always like that website.

Thanks to the great work of @piitaya, we now have
a beautiful, super easy, smart and fast icon picker! Yes, you can now search
and choose icons, straight from the Home Assistant interface.

Screen capture showing the new icon picker in action
Screen capture showing the new icon picker in action.

When you start typing, it not only looks for icons that match the MDI code, it
also looks for aliases and categories of the icons. That way, you’ll always
find the icon you’re looking for.

Third-party custom icon sets can also utilize this feature; however, the author
of that set needs to add compatibility for it. For example, the
Hue icons by arallsopp
added support for this feature already.

Tuya update

Our previous release included an update to the Tuya integration, making it use
the official API instead of a soon-to-be-removed API. Sadly, this update did
not live up to our standards, for which we want to apologize.

Tuya had initially planned to deprecate the old API in December, giving users
2 months to migrate. That’s not a lot of time, so we decided to move forward
with releasing the updated integration. Tuya pushed back the timeline for
sunsetting the old API with 6 months; but it was too late for us to change course
and ship the old integration.

The updated Tuya integration had some bugs and also was missing some features
compared to the previous integration and various available custom components.
This caused some users to have a poor experience. To make up for this, @frenck
spent a good chunk of time on bringing the Tuya integration up to the latest
standards and adding a ton of new features and bug fixes.

Almost all Home Assistant entity platforms are supported now, including
(binary) sensors, covers, vacuums, and even cameras! However, be aware that
Tuya has a lot of devices and variations, so there is still work left to be
done; We have done everything we can to provide a solid base this release.

As a final note: Some people complained about that this integration relies
on the cloud. We have always supported integrations with both local and
cloud APIs. Integrations with cloud APIs allow people to adopt Home Assistant
without having to replace all devices in their house. Although we recommend
local, using devices that require the cloud, or are fully local,
is a choice everyone should make for themselves.

Some nice new template filters

For some of our more advanced users, this release has some helpful template
improvements included as well!

Let’s start with the new today_at filter/function that @Petro31 added. It
allows you to quickly get a DateTime at a certain time of today. This can be
really helpful if you need to compare against another DateTime. For example:

# Is the current time past 10:15?
{{ now() > today_at("10:15") }} 

Next up is @raman325, who added the area_entities and area_devices filters
and functions which allow you to get all devices or entities that are in an area.
The methods return a list, which you can loop on.

{{ area_entities('Living Room') }}  # ['light.ceiling', 'media_player.tv', ...]

Lastly, @Petro31 added another one: the average filter and function. It does
what you think it does… It calculates the average of a list of items you pass
to it.

{{ [1, 2, 3, 4, 5] | average }} # Result: 3

Other noteworthy changes

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

  • Debug traces of automations and scripts are now stored! So you no longer
    lose them when you restart Home Assistant. Thanks @emontnemery
  • @frenck adjusted the number entity and it can now be displayed as a slider
    instead of an input box. Home Assistant will automatically figure out which
    is the best to use.
  • Add support for fan groups! Thanks @bdraco!
  • Thanks to @ludeeus, the Supervisor integration now has binary sensors that
    can tell you which add-on is running or not.
  • @allenporter blew our minds this release by adding initial support for
    WebRTC streams and cameras to Home Assistant.
  • But had a good reason, he added support for Nest Battery Cameras
    and Nest battery Doorbell Cameras to Home Assistant! Thanks @allenporter!
  • When you log in to Home Assistant, there is now a “Keep me logged in”
    checkbox! Awesome @MartinTuroci
  • @goyney updated the Material Design Icon to
    version v6.4.95 ensuring we have all the latest icons available in our new
    beautiful icon picker.
  • Sure PetCare now supports the Felaqua devices, thanks @benleb!
  • The MQTT number platform now has support for providing a unit of measurement
    and resetting the number field (by @frenck and @emontnemery).
  • The Broadlink integration added sensors for voltage, current, overload,
    and total consumption. Thanks @felipediel!
  • WLED now has the much requested sliders for speed & intensity controls.
    Thanks, @rytilahti!
  • OpenGarage has seen lots of updates and love from @Danielhiversen, adding
    lots of sensors in the process.
  • With the recent improvements made to the VLC media player integration and
    add-on, there is now a way to get TTS working by connecting some speakers to
    your Blue, ODROID or Raspberry Pi. Thanks, @mib1185 & @MartinHjelmare!

Adding support for long-term statistics is a much requested feature; This
release adds support for long-term statistics to the following integrations:

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:

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…


Visto en