0.93: Essent, AmbiClimate, VS Code debugging

It’s time for our 0.93 release and it is a whopping cool one. It’s a day later than usual as I am travelling. Frenck streams his work on Home Assistant / Hass.io each Tuesday and Friday, and last Tuesday I decided to surprise him and visit his house during the stream 😛. We ended up talking about everything Home Assistant with the viewers for over 3 hours. For the full conversation, check out Frenck’s blog. Clip of me walking into the stream:

Last week we also wrote about our updated plans for Home Assistant for this year. If you haven’t read it yet, worth the read!

If you are a Nest user, we have some sad news: Google announced that they are shutting down the Nest API at the end of August. This will cause Nest hardware to no longer work with Home Assistant (╯°□°）╯︵ ┻━┻. Update: they have changed their plans, will only impact new users.

As always, this release is accompanied by a new episode of the Home Assistant podcast. Rohan and Phil discuss the new release, the Nest API and a lot more. This episode is their 50th episode already, congratulations on this milestone!

Pascal has updated the way we are building Hass.io. It is now keeping the build up to date while we develop Home Assistant, which means that the Hass.io build was ready before the release blog post was up!

Home Assistant 1.0

As we mentioned in our updated plans post, we’re working hard on Home Assistant 1.0. Over the next releases we will work on polishing the UI, the backend architecture, and everything in between.

One of the new things that we introduced is a new step in our onboarding allowing users to set up integrations. We will automatically highlight discovered integrations. Once the user finishes the onboarding flow, entities will be automatically grouped by the areas that they are in. Neat!

We’ve also been working on polishing parts of our config UI. The automation editor will now show all automations, the last time they got triggered, and allow users to enable/disable them.

Screenshot of the updated automation editor.

Sonos

The Sonos integration has a number of changes in this release, some of them breaking existing configuration.

First, the Sonos custom services have been moved to the sonos domain. The new service names are as follows:

The last four of those services no longer target all entities by default since that is usually a mistake. The entity_id attribute is thus becoming mandatory for those services. If you really do want to target all you can use entity_id: all.

Next, YAML configuration of Sonos under the media_player: key is no longer accepted. While auto-configuration through the Integrations UI is now the preferred way, static configuration can still be specified under a sonos: key, for example:

sonos:
media_player:
hosts:
- 192.0.2.25
- 192.0.2.26

For those of you that like to power down your Sonos, Home Assistant should now handle that without logging errors. Also, speakers that are powered on will be added to Home Assistant without needing a restart.

The IQVIA component no longer provides historical data for allergen and asthma conditions. Tactically, this means all historical sensors – including “Yesterday” sensors – will no longer appear; users will need to update any automations that previously relied on these sensors. (@bachya - #23258) (iqvia docs)

Example configuration:

iqvia:
zip_code: "12345"

Sonos

Configuring the Sonos integration as a media_player: platform in configuration.yaml was deprecated in 0.72 and has now been removed. Please see the notes above in this release post as well as the component documentation for further info. (@amelchio - #23385) (sonos docs)

Sonos-specific services have been moved from the media_player domain to the sonos domain. For example, media_player.sonos_join has become sonos.join. Services sonos.set_sleep_timer, sonos.clear_sleep_timer, sonos.update_alarm and sonos.set_option now require the entity_id parameter and will not target all when it is missing. You can use all to target all. (@amelchio - #23670) (sonos docs)

Nmap - In Linux, and when running a setuid nmap, MAC addresses are reported with a leading zero in each byte. Under Mac OS X, when running the arp command, there is no leading zero. This makes it annoying to share config files between a Mac and Linux setup. This change fixes this by forcing MAC addresses to be zero padded, “breaking” Mac detection on a Mac by aligning it to the convention on Linux (@mikeage - #23492) (nmap_tracker docs)

Frontend - This change converts the frontend to do client-side modern JS detection. It is no longer possible to force the frontend version that is shown to a browser by specifying a javascript_version option. Instead, we use feature detection to make sure that each browser receives the latest supported version. Because of feature detection, we no longer have ES5 specific index pages, which means the option extra_html_url_es5 no longer does anything. All usages of extra_html_url should be migrated to use Lovelace imports.(@balloob - #23618) (frontend docs)

Epson Workforce - This change adds the option to add photo black cartridge as a setting. It also corrects the spelling of “Inklevel” to “Ink level”(@ThaStealth - #23433) (epsonworkforce docs)

SNMP - The configuration of the SNMP device tracker was aligned with the other SNMP switch and the sensor configuration. If you are using authentication key and private key then change your configuration to auth_key: and priv_key:. (@fabaff - #23678) (snmp docs)

Sesame Smart Lock - The Sesame smart lock’s 1.0 API uses a username/password pair to authenticate, and may be deprecated in the future. The V3 API uses an API key, so it will require users to update their HA config. (@zanglang - #23621) (sesame docs)

Example configuration:

lock:
- platform: sesame
api_key: !secret sesame_api_key

Z-Wave - Not a breaking change perse, just a note: Open Z-Wave has released version 1.6. The configuration files are not compatible with Open Z-Wave 1.4, the version that we are currently using. Don’t copy config files over! We’re waiting for Open Z-Wave Python bindings to update before we can update our code.