2021.3: My Oh My

Home Assistant Core 2021.3! And my oh My Home Assistant!

I’m super excited for this release! 13 Brand new integrations! Z-Wave JS is moving forward with an almost insane development speed; thank you all for jumping into it as well! 🎉

For me, this release is about two things. My Home Assistant and some super slick new UI features for everything related to service calls. What it is; is explained down below, but both are just a leap forward in: making things easier.

My oh my, enjoy this release!

../Frenck

My Home Assistant

Today we present you:

To be more helpful, we often want to link you to a specific page in your Home Assistant instance. However, each Home Assistant instance is hosted at a different URL. Yours might be http://homeassistant.local:8123, or something completely different.

My Home Assistant allows the documentation, forums, chat, weblogs, or any other website, to link you to specific pages in your Home Assistant instance, without knowing the URL of your instance.

The beauty of this? All the data is stored locally in your browser and My Home Assistant only redirects you to pages that provide you with information about your instance or help you start an action. Following a link from My Home Assistant will never make any changes to your instance.

Long story short! We can do a lot of helpful things with this, for example, the following buttons will bring your places on your instance:

But we can make buttons or links to a lot of screen, and even help you start a configuration for adding an integration, import a Blueprint, link to an add-on page, and a lot more!

Setting up a new integration on your instance, from the documentation using My Home Assistant.

Additionally, we have added a link/badge generator, so you can create your own links, for e.g., adding to a Blueprint on the Blueprint Exchange.

https://my.home-assistant.io/create-link/

Lastly, support for My Home Assistant with our apps is expected to be available soon! Android should be available via an update today and iOS will land soon.

New UI for service calls

This release adds a new user interface for doing service calls!

Screenshot of the new UI in the services tab of the Developer Tools.

The UI may look familiar, as it uses the same UI parts as used by the recently introduced Blueprints. This new UI can be found in multiple places, that all have adjusted with a shiny new UI;

Not all service calls will show this slick new UI yet, as the integrations service descriptions need to be adjusted to with this. But, all common ones have been migrated already. Like doing YAML? Well, the good old YAML mode is available as well!

Suggested areas

Areas are becoming more and more useful in Home Assistant, and this release is helping out with putting them to use a bit!

Recently, it became possible to not only assign devices to areas, but entities as well. And now; Integrations can now suggest areas!

This means, if an integration knows about an area/room/location place it is in, it can suggest an area if the device isn’t in one yet. For example, the Hue integration can now suggest an area based on the Hue group it is in.

The following integration will now already suggest areas as of this release:

Fan speeds: 100%

Got an overhaul! Fans now work with speed percentages instead of the previous “low”, “mid”, “high”, “off”. This makes Home Assistant more interoperable with more fan brands and third-party assistants, like HomeKit.

Don’t worry, everything has been implemented with backward compatibility.

Screenshot of automation editor, showing the % fan speeds!

Did you notice in the above screenshot, the automation editor is now wider? The layout has been adjusted to give you more screen real estate when creating automations.

Z-Wave JS update

Also this release the Z-Wave JS team has been very busy. Several new features have been added and many bugs squashed. Below you can read a summary.

We’ve introduced a protocol schema version in the Z-Wave JS server to allow older clients to connect and talk to a newer server. This prevents compatibility issues for the future!

Home Assistant Core 2021.3.0 will require Z-Wave JS server version 1.10. If you’re using the official Home Assistant add-on, the integration will automatically update the add-on if an older add-on and server version is encountered. Magic! If you’re not using the Home Assistant add-on to run the server you will need to update the server before updating Home Assistant Core.

You can now automate and change the configuration settings of your devices with the zwave_js.set_config_parameter service and create automations using the new zwave_js.refresh_value service, to update a device that doesn’t automatically refresh itself.

But there is more!

  • Garage doors (barrier) and similar covers can now be controlled.
  • Some heating valves and similar devices that can be set to multiple different values will now show up as number entities.

Flexible & variable automation triggers

We now support the use of variables and (limited) templates in automation triggers! This can be really useful, for example, when making Blueprints for MQTT based automations!

automation:
  trigger_variables:
    room: "living_room"
    node: "ac"
    value: "on"
  trigger:
    - platform: mqtt
      topic: "{{ room ~ '/switch/' ~ node}}"
      payload: "{{ 'state:' ~ value }}"

As shortly mentioned, the template syntax for trigger templates and variables are more limited; read more about this in the limited templates documentation.

Oversettelser i Supervisor panelet

Unless you are in the nordics, that title does not mean much, it’s Norwegian and translates to “Translations in the Supervisor panel”. Yes! We have now added translations in the Supervisor panel. 🎉

If you want to help translate that into your native language, join the frontend team on Localize.

But we did not stop there! Now add-ons can provide translation files for configuration options and network descriptions that are shown in the frontend.

Not enough? You want more? Okay then!

  • The communication between the frontend and the backend now relies on WebSockets, which allows the Supervisor to notify the frontend about changes.
  • For add-on authors, you can now use YAML instead of JSON for your add-ons configuration files.
  • New update dialog that will ask you to take a snapshot before you upgrade core/add-ons.
  • Better hardware support to cover more devices.
  • Passwords and secrets in add-on configurations are checked against known breaches with https://haveibeenpwned.com/

Screenshot of the new update dialog that asks for creating a snapshot.

Other noteworthy changes

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

  • Shelly now supports battery-operated devices, thanks to @thecode!
  • You can now use the color homeassistant as a color_name in your light service calls, just because we can 😎
  • @emontnemery, added support for using alias to virtually any step in scripts/automations. This is really helpful when debugging and documents your sequences as well, as it annotates each step.
  • @emontnemery didn’t stop there, he also added support for enabling/disabling integration configuration entries! So you can, e.g., temporarily disable a whole integration.

Screenshot of disabling an integration entry.

  • Thanks to @Nixon506E, you can now set a transition time when activate Hue scenes.
  • In the States tab of the Developer Tools, there is now a small copy to clipboard button with each entity. Thanks, @KTibow!
  • @postlund added support for repeat, shuffle and volume stepping to the media player integration of the Apple TV integration.
  • @larena1 reduced the amount of rendering history charts cause, so that will speed things up! Thanks!
  • We now have a select selector! Great for adding dropdown choices to Blueprints, thanks @EPMatt!
  • @raman325 extended the Universal Media Player with a lot of new capabilities.
  • When adding a new integration, the UI will now show discovered devices for that integration as well! Thanks, @bramkragten!
  • We updated CodeMirror to the latest version, which provided the YAML code editors in our UI. It should now be better, faster and has improved support for mobile devices.

New Integrations

We welcome the following new integrations this release:


This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2021/03/03/release-20213/
16 Likes

Nice blog post title :smile::+1:

1 Like

Great Job!!! :tada:

what does ''temporarily" mean in this context?
Can I use this feature to disable core integration (ie Shelly one)

Any security aspects of the linking to an instance? I hope it’s not possible, for example, to link to a factory reset.

The beauty of this? All the data is stored locally in your browser and My Home Assistant only redirects you to pages that provide you with information about your instance or help you start an action. Following a link from My Home Assistant will never make any changes to your instance.

That is the intention at least. If you find a case where that is not true, please report it immediately :slight_smile:

What an update - nice job!

A question for the “My” stuff (and for the apps, I guess): Any way to support more than one Home Assistant instance? I have HA installed at two locations myself…

No, that is not possible. It is limited to a pre-defined set of links. See the FAQ on the my website for more information on how it works and which links it supports.

3 Likes

This might have been discussed elsewhere but not really sure what to search for so I’ll try here.

With this update I see that more of my integrations (Xiaomi and Philips) is being moved from config in YAML to UI. Three benefits i see in using YAML is ease of backup, version control and sharing.

When doing config in the UI, in what file(s) are my settings saved then? Thanks in advance!

3 Likes

This has been discussed to death already here.

Your config from the UI is stored in the hidden directory .storage

6 Likes

The new UI for service calls is great!

Thanks for another update.

Edit: There’s some fix for a “generic-x86-64 build”, it’s that a new image/instalation method?

Updated but I had climacell in sensors.yaml but when I try to add climacell via integration it says it’s not possible and then went to this page.

Is it not possible if you had the yaml in sensors.yaml ?

Also my android phone battery % is unknown now and so is the state of it. It was healthy before update.

I also can’t see what WiFi I am connected to also.

I’ve read all above and can’t see anything that stands out.

Thanks

Martyn

“My Home Assistant” smells like a bit like a data leak when used in a DNS rebinding attack.

Couldn’t you lure home assistant users to a website that internally queries stuff available through “my home assistant” and send it elsewhere?

1 Like

Nothing is stored there, nothing is browsed there, it only contains links.

I know FRs aren’t supposed to go here. But here’s some more configuration option ideas for My Home Assistant. Some of the ones I could think of would be:

  • Open in new tab (on load, run window.open, then window.history.back, configurable by both user and link)
  • Always open without needing to accept.

Updated from 2021.2.3, and I am now getting invalid config for:

Again a great update! Thanks!

Although I appreciate the advise… how do I get rid of these messages popping up every hour or so…

My homeassistant is on my local network and I do not really care about these standardish passwords. Should I?

5 Likes

Exactly the same here:

The following integrations and platforms could not be set up:

    cloud
    mobile_app
    default_config

With the following in the log:

2021-03-03 21:02:27 ERROR (MainThread) [homeassistant.setup] Setup failed for webhook: unknown error
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/setup.py", line 166, in _async_setup_component
    component = integration.get_component()
  File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/loader.py", line 491, in get_component
    cache[self.domain] = importlib.import_module(self.pkg_path)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/components/webhook/__init__.py", line 14, in <module>
    from homeassistant.util.aiohttp import MockRequest
  File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/util/aiohttp.py", line 26, in <module>
    class MockRequest:
  File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/util/aiohttp.py", line 51, in MockRequest
    def query(self) -> MultiDict[str]:
TypeError: 'type' object is not subscriptable

great job !
But some bug in snapshot name now… (and save as “tar” name)
image

great update, once again, didnt know about the temporary disabling of integrations, and needed that today… :wink: so cool. O, and did anyone mention how smooth these updates go as of late. THANKS!

btw, nice release party going on right now.