0.117: Quick Bar, compact header, a YAML editor, XBox and Template types

0.117: Quick Bar, compact header, a YAML editor, XBox and Template types

0.117: Quick Bar, compact header, a YAML editor, XBox and Template types

And the train just keeps on rolling… Home Assistant Core 0.117!

Some big releases lately, and this is a big one for sure. However,
interesting this release is the amount of little improvements! I guess that
is the result of Hacktoberfest!

We have seen a crazy and absurd amount of contributions this October, lots
of new faces too! 500+ pull requests on the documentation, 700+
on the core and 150+ on the frontend processed up until now! Amazing!
You guys rock!

Also, the Home Assistant Conference has been announced! If you
want to speak at the very first, online, Home Assistant Conference, be sure
to submit your talk before 31 October.

And finally, while writing this, I’m enjoying Home Assistant Podcast, as they
have released their episode for 0.117 already. 🎙 Thanks for all
you do guys, always a pleasure to listen to.

Darn, we do have an amazing community, don’t we? 😍


PS: Oh, later today might be fun! We are looking into trying to do a
Home Assistant live stream / mini-release party / Q&A on the
Home Assistant YouTube channel.
So, keep an eye on our social media for the announcement.

Stefan Agner joins Nabu Casa!

Today we are pleased to announce that Nabu Casa hired Stefan Agner to
work on the Home Assistant project.

Stefan is specialized in embedded systems and the Linux kernel, and he will be
mainly working on improving and extending the Home Assistant Operating System.

In his spare time, he loves to hack on all things embedded. From making the ARM
Linux kernel getting built by Clang to building sensor nodes using MicroPython.

If not hacking, he’s probably out and about for a hike or a good beer with

Welcome Stefan! We are excited to have you!

Quick Bar

Let me quickly find that entity that is not on my Lovelace Dashboard…
hold on… Configuration -> Entities, search for it… click the right one…
Got it!

That isn’t efficient, right? @donkawechico to the rescue! He added an exciting
new feature to our frontend: the Quick Bar.

This new dialog allows you to quickly open an entity or run a command.

It can be launched anywhere in Home Assistant; with the keyboard shortcuts
e for entities and c for commands. You can switch between the entities and
command modes by removing or adding the > at the start of the search input.

The Quick Bar is similar to the Command Pallet you might know from Visual Studio
Code. He even copied the filter algorithm from Visual Studio Code, so you can
search what you need even faster.

Screencapture of the Quick Bar.
Screencapture of the Quick Bar.

The commands are currently limited to reloading YAML configuration and
restarting Home Assistant, but expect this to grow rapidly!
The same goes for the keyboard shortcuts; the plan is to add more so you can
quickly perform actions and navigate Home Assistant from anywhere with
a couple of key presses!

Check the documentation for more information and usage tips.

Compact header

@maykar recently archived his immensely popular custom header repository,
promising to bring parts of it to the core of Home Assistant.

Well, he did; this release, our Lovelace header is compact! 🤩

He combined the two bars we had in 1 by replacing the dashboard title with the
tabs that used to be shown below it. He did a lot of work to make the
tabs take up the least amount of space, while still being user friendly.

We think it looks great! And, finally, welcome to core @maykar!

Screenshot of the compact header.
Screenshot of the compact header.

Script and automation YAML editor

@thomasloven added the ability to edit an entire automation or script in the
UI with YAML.

This is the perfect blend for people that want the best of both worlds, editing
in the UI with the normal UI editor and for some more complicated automations,
maybe edit it directly in YAML, all from the UI.

Screenshot of the new YAML automation editor.
Screenshot of the new YAML automation editor.

He also added a very useful copy button to make it easy to share your
automation with the community. You can then easily paste it back in the
YAML editor and continue editing after switching to the UI mode.

Xbox integration

Xbox now has a full blown integration in Home Assistant, which delivers remote
control and tons of other features.

This awesome addition is created by @hunterjm and he made this nice little
video demonstrating his creation:

Counters & Timers available as helpers in the UI

A nice addition to the helpers you can create and manage in the UI:
Counters & Timers are now available! Thanks, @danimart1991!

Screenshot of the new Counter & Timer helpers.
Screenshot of the new Counter & Timer helpers.

Native types support for templates (Beta)

Ever tried to make a list of entities or set a RGB color via an template?
If so, you probably would have learned, that it is not that simple. In Home
Assistant, the result of a template always have been a piece of text (a string),
even if you made a list.

This release adds support for native Python types in templates. This means that
templates now actually can create lists, or return a number!

For 0.117, native template types will be a opt-in beta feature, that will
become the default in the next release.

You can enable it, by disabling the legacy_template rendering in your

  legacy_templates: false

After that, you can do things like this:

    alias: Example
    description: Example script with native lists in templates
        - light.living_room_window
        - light.living_room_table
      color: [255, 0, 0]
      service: light.turn_on
        entity_id: "{{ entities }}"
        rgb_color: "{{ color }}"

This is an extremely powerful change to our template engine, that allow for
more advanced future additions and can significantly reduce the complexity of
existing templates in your set up.

It should be mostly compatible with your existing templates, however, if you
enable this feature, please be sure to check the breaking changes section.

We’d love to hear you experience with using this feature! And, if you run into,
problems, please let us know.

Other noteworthy changes

It is Hacktoberfest, and a lot smaller, but noteworthy changes this release!

First a shout out to @spacegaier, he did a LOT of improvements (29!) this
release. Visual tweaks, quality of life improvements and random fixes, like:

  • Colors in the log for errors and warnings
  • Automatically fill the Lovelace resource type based on the extension of the URL
  • Make more text translateable
  • Make attributes more user friendly
  • Show the number of hidden entities in the entities configuration page
  • And a lot more!

But wait, there is more!

  • @allenporter started working on adding Google Nest Device Access to
    the Nest integration. It is a base to extend on, for example, there is no
    thermostat yet. Looking forward to the upcoming releases!
  • You can now save automations, scripts and scenes with ctrl/cmd + s.
    Thanks, @gilsonmandalogo!
  • @mattmattmatt added the ability to dismiss all notifications at once, and
    the notifications pane will close when the last notification was dismissed.
  • We improved compatibility and Home Assistant is now usable on more, mostly
    older, devices.
  • You can now search for the entity name in the entity picker besides the
    entity id, thanks @zsarnett!
  • Thanks to @cgarwood, you can see the configuration of OZW nodes straight
    from the UI!
  • @bieniu added voltage, power factor and energy sensors to Shelly integration.
  • The Media Player platform now has a repeat_set service that allows for
    changing the repeat mode. Sonos is the first integration that supports this
    service. Thanks @amelchio!
  • @amelchio also added support for playing Spotify URIs with the Sonos
  • Thanks to @timmo001, the WLED integration now supports color palettes.
  • You can now monitor the battery state for your devolo Home Control devices,
    thanks, @Shutgun!
  • The Netatmo integration got some nice weather trend sensors, thanks @cgtobi!
  • Chromecast devices can now play Plex media using the standard play_media
    service. Nice work @jjlawren!
  • The media browser now supports the Squeezebox and Volumio integrations,
    thanks to @rajlaud and @OnFreund.

New Integrations

We welcome the following new integration 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.


The host option for the cast integration has previously been deprecated and
is now removed. Configuring media players via the media_player platform was
also deprecated before, and removed in this release as well.

If you use any of those above, you’ll need to migrate to use the new
configuration method. Please see the cast documentation on how to set this up.

(@emontnemery#41402) (cast docs)


Cloudflare is now available exclusively via the Integrations UI. This means its
no longer configured in YAML. Existing configurations are not imported as API
Tokens are now used to authenticate. Refer to integration documentation on how
to setup via UI.

(@ctalkington#41167) (cloudflare docs)


The bypassed attribute of a zone sensor is removed as it is no longer used.
The bypassed status of a zone can be determined when the logical_status of
a zone has a value of bypassed.

Auto-configure now only configures elements that have a name or description
associated with them. The previous mechanism for automatically detecting if
element are configured on the ElkM1 panel was to note any element that have
attributes different than the elkm1-lib’s defaults. This is error prone and
made the library fragile when defaults change.

(@gwww#41584 #42064) (elkm1 docs)


This update to PyISY adds native support for decimal precision in ISY Variable
sensors, any template sensors created to adjust the rounding or precision shown
in Home Assistant should be updated/removed.

The way logging is handled in PyISY has been changed. If you previously set a
different logging level for homeassistant.components.isy994 in your logger
configuration, you will also need to set the level for pyisy and/or

Two changes may cause some entities to change platforms; however, this should
only affect NodeServer nodes:

  • ISY Nodes that use the ON/OFF unit of measurement and cannot be
    categorized/sorted by another method have been moved from switch to
    binary_sensor since it cannot be confirmed if the device supports DON/DOF
    commands. The isy994.send_node_command service may be used to control these
    devices if you know they are controllable.
  • The status of all nodes is now downloaded before sorting devices, as a result
    some nodes which defaulted to sensor will now be correctly sorted.

Sensor values which use the ISY994’s “index” unit of measurement (UOM=25) now
report the “formatted” text value shown in the ISY Admin Console, instead of the
integer index. If you have any automations or templates relying on these values,
they must be updated.

(@shbatm#42043 #42050) (isy994 docs)


Climate configuration was moved from the platform directly into the Modbus
integration. This change was required to meet the latest architecture requirements
of Home Assistant.

Example of previous YAML configuration:

  - platform: modbus
    name: Watlow F4T
    hub: hub1
    slave: 1
    data_type: uint
    data_count: 1
    scale: 0.1
    offset: 0
    precision: 1
    max_temp: 30
    min_temp: 15
    temp_step: 1
    target_temp_register: 2782
    current_temp_register: 27586

Example of new YAML configuration:

  - name: hub1
    type: tcp
    port: 5020

      - name: Watlow F4T
        slave: 1
        data_type: uint
        data_count: 1
        scale: 0.1
        offset: 0
        precision: 1
        max_temp: 30
        min_temp: 15
        temp_step: 1
        target_temp_register: 2782
        current_temp_register: 27586

(@vzahradnik#32439) (modbus docs)


MQTT Discovery is now enabled by default.

(@emontnemery#41361) (mqtt docs)


Sensors for raw battery values and string representation have been dropped.

(@cgtobi#41321) (netatmo docs)


Despite the project name, the owfs package (which depends on fuse and exposes
filesystem calls in the appropriate directory to this program itself) is NOT
recommended for any real use, it has well known issues with races etc.

The owfs/fuse implementation is therefore deprecated in favour of the owserver

Before this release:

  - platform: onewire
    mount_dir: /mnt/1Wire

After this release:

  - platform: onewire
    host: localhost

(@epenet#42041) (onewire docs)


Per ADR-0010,
this PR deprecates YAML configuration for RainMachine until 0.119. If you
already use the RainMachine integration, you do not need to take action.
Your configuration has already been imported into the UI.

(@bachya#41971) (rainmachine docs)


The integration is now set up via the UI. YAML support has been limited to
an (automatic) one-time import. You can safely remove the YAML configuration
after upgrading.

Options are now set through the UI (global options/add device/remove device/change device options).

For newly added or detected devices, device_class cannot be set.

Instead, it should be set by customizing entities:

The debug key is removed as option for the integration. Instead, log level
for the library can be set by configuring the logger (see below).

    RFXtrx: debug

No configuration changes are necessary, to keep existing configs working, the key is still accepted.

(@RobBie1221#39117) (rfxtrx docs)


Per ADR-0010,
this PR deprecates YAML configuration for SimpliSafe until 0.119. If you already
use the SimpliSafe integration, you do not need to take action.
Your configuration has already been imported into the UI.

(@bachya#41896) (simplisafe docs)


Sonarr has fully transitioned to configuration via UI. YAML configuration is
now no longer supported after being deprecated for several releases already.

(@ctalkington#41904) (sonarr docs)

Templates – Auto-updating now()

The entity_id: attribute was recently removed from template entities because
the templates are now able to find all referenced entities automatically. This
removal introduced a new problem where templates using the current time could
no longer use entity_id: sensor.time to ensure periodic updates.

With apologies to those who have spent the last couple of releases adding
workarounds to their templates, we are now introducing an auto-refresh feature
to time-based templates.

It is thus no longer necessary to reference sensor.time, sensor.date or manually
update template entities when now() or utcnow() is present in the template.

The template will automatically be updated when:

  • A referenced entity changes state.
  • At the start of each minute when now() or utcnow() is present in the template.

Please note, if you have a time-based template where you do not want it to
update periodically it will now have to be reworked to not use now().

(@bdraco#41147 #42225)

Templates – Native types (BETA)

Template results can now rendered to native Python types, but only when the
legacy template rendering is disabled.

  legacy_templates: false

This feature will be opt-in for this release, the breaking changes below
only apply if you explicitly enable this new feature.

A template would always result in a string (text). This made it hard
to use things like lists, or numbers as a result of a template. For example,
returning a list of entities or a RGB/HS/XY color.

This change may impact your existing templates, as templates now can return
other types; For example, string, float, integer, boolean, lists or dictionaries.

The following templates can be impacted by this:

  • Entities with templated attributes. Attributes keep their native Python type,
    thus if the attribute is used/processed in a template again later,
    the type might be different.
  • Templates working with lists or mappings (dictionaries). Previously, such
    collection would be returned as a text, for example [1, 2, 3, 4, 5]. We’ve
    seen examples where such results are decoded using text processing again
    (e.g., by splitting the result on a , to get the separate values). The
    additional processing is no longer needed, as the returned value will be a
    collection now.
  • Note: The entity state in Home Assistant is always a text (string). Even with
    native types being supported in Templates now, if a results is stored as a
    entity state, they will be converted to an string.


Templates – Rate limits

Previously we implemented a rate limit of 1 update per minute for
states.DOMAIN in templates. This has been changed to an update once every second.

Templates using states (without a domain) still have a rate limit of 1 update per minute.



The UpCloud integration is now configured via the UI. Existing YAML configuration
is automatically imported after upgrading and can be safely removed afterward.

(@scop#37941) (upcloud docs)

Farewell to the following

  • The Australian Bureau of Meteorology (BOM) integration has been removed.
    It was using webscraping to gather its data, which is not allowed.

All changes

Click to see all changes!

Visto en