Blog

0.118: Grid and logbook cards, quick navigation, native template types

Home Assistant Core 0.118!

The second last release of 2020, while the end of the year is slowly closing in.

This also means we have only one more release left this year… And we plan to finish the year with a big bang! Also announced: the Home Assistant Conference. I am really excited about that one! The last major release of this year will be during the conference on December 13.

Back to 0.118! Some nice additions this release: Navigating around with the Quick bar (oh, I just love that feature), some new Lovelace cards, native types in templates is now the default and the Nest thermostat is back! 🎉

All in all, a fine release, with an exciting one ahead of us.

../Frenck

Table of contents

Home Assistant Conference

Exciting news! Home Assistant is hosting an online conference this year!

An event to celebrate our community, share ideas, history, creations and celebrate major milestones! The event will take place on Sunday, December 13.

Paulus Schoutsen, the founder of Home Assistant, will give the opening and closing keynote, aided by other Home Assistant developers. In between, we have three different tracks of talks (for everyone, advanced users and developers) with a total of 16 different talks.

Check out the conference schedule to see the subjects of the talks and the list of speakers.

The Home Assistant Conference will be hosted on Hopin, an online conference platform. Tickets to attend will cost $1, which will cover the cost of the platform.

Get your ticket

The conference will also be available as a free YouTube live stream. The live stream will be limited to the keynotes and the “everyone” track. You won’t have access to the chat and have that online conference feeling, so we recommend getting a ticket!

For the latest information, check our dedicated Home Assistant Conference page.

Home Assistant Conference header

Edit: We all hate ads! But we do like to show off our users!

For those who don’t keep up with the release notes, we added an announcement about the conference in the Configuration panel. It was always set to disappear automatically when the conference is over, but when you are ready to be rid of it, just press the x!

We realize it is invoking concern of future ads and that it could have had a better execution. In fact, within some of the (yes, sometimes heated) discussions about it during the beta, there were some good thoughts and examples shared for working toward a truer “community news” integration. Such an integration could pull in future and ongoing community events, news, and project highlights, which could be enabled or disabled like any other integration. For now, it is this banner which will be removed on the next release.

Grid Card

Ever since the start of Lovelace, users have been making grids. However, this was not easy as it involved fiddling by combining horizontal and vertical stacks — a confusing and frustrating experience.

@balloob to the rescue! This release adds a new Grid Card. You won’t have to write a complicated YAML soup combining both horizontal and vertical stacks.

The Grid Card offers straight forward options to mimic these setups and adds an option to force each card to be square to boot.

Screenshot of the Grid Card Screenshot of Grid Card.

*Note that the square option won’t work with all cards.

Quick Bar navigation

The Quickbar, which was introduced in Home Assistant 0.117, really took off! We are happy to see you like it.

If you haven’t tried the new Quick Bar yet… you should! It is a quick and easy way to get to entities or run commands. From anywhere in Home Assistant; press e for entities or c for commands.

This release, support for navigating Home Assistant via the Quick Bar was added. You can now jump to any place, from any place. Amazing job @donkawechico

Screenshot of navigating around using the Quick Bar Screenshot of navigating around using the Quick Bar.

Native types support for templates

Announced in 0.117, but now by default enabled. Native template types allow templates to result in not just strings (text), but also other types.

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

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

This is an extremely powerful change to our template engine, that allows 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, be sure to check the backward-incompatible changes section for known possible breaking scenarios.

Logbook Card

Another new Lovelace card this release. @zsarnett added the Logbook Card.

This card allows you to show the logs of one (or more) entities on a Lovelace Dashboard. This can be really helpful if you want to monitor, for example, the motion events of a sensor or a camera.

Screenshot of the new Logbook Card Screenshot of the new Logbook Card.

Header & Footer Editor

Entity cards in Lovelace have support for customizing the header and footer of that card. This is really useful for adding a nice image, a couple of buttons or a graph to the card.

Up until now, you needed some YAML magic to achieve that. Thanks to @zsarnett we now have a Header & Footer editor available in the UI making this feature much easier to use.

Screenshot of the new Header/Footer editor. Screenshot of the new Header/Footer editor.

Supervisor Network Configuration

Expected to be available soon, a new Supervisor version which includes a new network layer with added support for wireless networks, multiple network interfaces and even VLANs.

This should cover most of the feature requests we had around networking.

New Supervisor Network configuration UI New Supervisor Network configuration UI

The next step is that we use all the information from our new network backend to simplify some add-ons. Also, updates for Snapshot/Restore of these network settings are planned.

Home Assistant OS

The last few days, two new Home Assistant OS releases have been published.

While 4.17 continues to make small improvements in the 4.x release series, the latest pre-release 5.5 comes closer to our goals to declare 5.x release series stable. In particular, this pre-release includes the Linux 5.4 kernel for all Raspberry Pis! We also intend to declare 64-bit the recommended installation method for Raspberry Pi 4.

Release 5.5 is also the first release to support Hardkernel’s ODROID-C4, a very cost-effective single board computer featuring the Amlogic S905X3 SoC and 4GB of DDR4 memory (thanks @ubergeek801). Testers welcome!

Other noteworthy changes

  • The new Nest SDM integration now supports thermostats! Thanks, @allenporter!
  • Entity pickers in the UI will now show the full name of the entities. Thanks, @spacegaier!
  • The Roon media player now supports media browsing but also has support for grouping and transferring between different players. Thanks @pavoni
  • @cnorick added a button to duplicate Scripts from the UI.
  • The Shelly integration now has real-time status updates, which has been implemented by @thecode!
  • @apop880 prepared the WLED integration for Christmas by adding a service for loading WLED presets.
  • Date pickers in entity cards have been replaced with a modern, good looking version. Thanks, @thomasloven!
  • @joshmcrty Made numbers shown in the frontend formatted in a way that matches your language settings.
  • @spacegaier has been busy improving the frontend, making it more accessible to people with disabilities. In this case, ARIA (Accessible Rich Internet Applications) labels have been added, so screen readers can use our + buttons. Thanks!

New Integrations

We welcome the following new integration this release:

New Platforms

The following integration got support for a new platform:

  • 1-Wire now supports binary sensors and switches, added by @epenet

Integrations now available to set up from the UI

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

Release 0.118.1 - November 19

Release 0.118.2 - November 20

Release 0.118.3 - November 23

Release 0.118.4 - November 26

Release 0.118.5 - December 5

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.

Read on →

Home Assistant Companion Android App Release 3.0.0

Hey everyone it’s been a little while since we last spoke. We have a brand new Home Assistant Companion for Android release that we are excited to get into your hands and will roll out over the next day or so in the Google Play store.

Before we get into the release details I’d like to mention that this month marks the 1 year anniversary of the Home Assistant Companion app being offered in the Google Play Store! Just to think how far along the entire app has come from its initial alpha state to what is currently being offered in today’s release. Can you believe it’s already been a year?

It has been pretty busy over on the Android side of things during Hacktoberfest! We have seen a total of 84 pull requests from a wide range of contributors that we are thankful for, so thank you for all of your efforts! In case you missed it we actually had a release shortly after version 2.4.0 but as we did not have an accompanying blog post, we’ll cover whats new since we last spoke in this post. All of the features listed below are already documented on the Companion site, please be sure to check in there for greater details. Before we continue with what’s new lets go over the backward-incompatible changes for this release.

Backward-incompatible changes

In our last blog post we mentioned that we were going to be breaking up some sensors and their attributes. As of 3.0.0 we have completed this task and no longer have non-static attributes as part of any sensor. If you are missing any data please check the Manage Sensors screen under App Configuration and enable the sensor you were previously using as an attribute.

Another major breaking change in this release is that the widgets were refactored to align with the application architecture. Unfortunately this means that some existing widgets may disappear from your home screen and will need to be recreated. We apologize for this and are unable to bring back the existing widgets that were lost. If you forgot what data was there we do have that saved, more on that down below.

Onboarding Improvements

The first big change is that our onboarding screen has changed, we now ask the user to enter their preferred device name that gets attached to all entities that are created by the app. This was a source of frustration for some users as this meant that anytime they logged into the app they would then need to rename their entities to the name that they actually want. By default the device name is the device model but that is not meaningful to some users, especially if they have more than one device of the same model.

Screenshot of the new onboarding flow Screenshot of the new onboarding flow.

New Sensors

We have several new sensors to welcome to the app, all of which are disabled by default. The first set of sensors were actually introduced in 2.5.0:

  • Traffic Stat sensors - Sensors whose state represent the amount of data sent and received by the device. Mobile data may not be accurate, it depends on the data that we get from the API.

The following sensors are new in 3.0.0:

  • Keyguard sensors - Sensors that represent various states from the Keyguard API, such as if a device is currently locked or has a password setup. These sensors will update during the periodic 15 minute interval.
  • Last Notification sensor - A very powerful sensor that requires a special permission you must grant to read all notifications posted on the device. All attributes of the notification are provided as attributes for the sensor. You can think of this sensor as a great way to integrate any app that posts a notification to your device allowing you to automate around it. Personally I have been using it to integrate a food delivery app, to detect when my order will be delivered and automate around it. This sensor will update as soon as a notification is posted.
  • Last Update Trigger - A sensor whose state will represent the reason for the last update that was sent to your Home Assistant instance. This sensor will update anytime an update is sent to your Home Assistant instance.

Sensor Settings

We didn’t stop at just adding new sensors, we also made enhancements to the overall sensor experience. Starting from version 2.5.0 certain sensors have custom settings that can help with what updates actually get sent to your Home Assistant instance.

Screenshot of location settings Screenshot of location settings.

  • Next Alarm - This sensor has a setting for an allow list. This means that if you have an app that reports really odd timestamps as an actual alarm, you can now ignore them by telling the app which packages to send reports from. By default the list is blank. Tasker users are recommended to make use of this setting.
  • Last Notification - This sensor also has an allow list to let the user create a list of apps from which they want notification data from. By default all notifications are sent to your Home Assistant instance. We highly recommend that you set up an allow list as soon as you can think of one to prevent a high amount of updates. You will be surprised by the amount of data that will show up in a short time period.
  • Last Reboot - A bug was discovered where sometimes the timing in the calculation of the device’s last reboot could be off causing an unnecessary update. There is now a deadband setting to allow you to adjust the timing to ignore updates. By default this is set to 1 minute, you most likely won’t need to change this.
  • Location Sensors - All 3 location sensors now have settings to allow you to adjust the minimum accuracy required to send a update to your Home Assistant instance. There is also a setting to adjust the minimum amount of time between updates. This should help a lot of users out who don’t get the location results they expect. We recommend changing this setting after you evaluate all of the location fixes in 3.0.0 as location tracking may already be improved without needing to adjust these.
  • WiFi BSSID - This sensor has a setting that will allow the user to provide an alias for the currently connected BSSID. Not everyone can remember a MAC address let alone dozens of them. This setting is designed to help out those who use this sensor to make better sense of things without the need for secrets or templates. If you live in a household with multiple access points you may find it useful to set up an alias to help with things like room presence. By default this sensor reports the connected MAC address.

Android 11 Power Menu

We now integrate with Android 11’s power menu device control feature. The following domains are currently supported:

  • automation On/Off
  • climate Temperature slider
  • cover Open/Close
  • fan On/Off, speed slider
  • input_boolean On/Off
  • input_number Number control slider
  • light On/Off, Brightness control slider
  • lock Lock/Unlock
  • scene Turn on scene
  • script Turn on script
  • switch On/Off

Screenshot of power menu Screenshot of power menu.

Notification Improvements

There have been several improvements to notifications as well.

  • An event gets sent upon a notification being cleared along with all notification data.
  • Notifications can make use of the alarm stream to bypass a device’s ringer mode setting. This can be useful if there is an important event such as an alarm being triggered. Make sure to check the updated Android examples on the companion site.
  • Text-to-speech notifications, with the ability to use the alarm stream if desired. By default it will use the device’s music stream. There is also an additional option to temporarily change the volume level to the maximum level while speaking, the level would then restored to what it was previously.
  • New device commands to control your phone: broadcasting an intent to another app, controlling Do Not Disturb and ringer mode.
  • Opening another app with an actionable notification, make sure to follow the Android examples.

Other Enhancements

We have also spent time making improvements to all other areas most notably inside App Configuration:

Screenshot of settings Screenshot of settings.

  • App language can now be overridden to match a user’s profile, this will impact the name of entities that get added as well as the App Configuration appearance. By default your device will use your phones language however, we noticed some users actually prefer Home Assistant to always be in a different language on their device. With this feature you can now set the language to be one of any that are supported by the app. You can also help us translate the app on Lokalise.
  • History of recently received notifications, along with all data that was sent
  • Notification rate limit information to help you understand if you are about to go over the daily limit.
  • Editable widgets, with the ability to delete missing widgets as mentioned in the backward-incompatible changes. This is really helpful if you ever created a widget and realized you needed to make one more adjustment.
  • Widgets now update when the screen turns on to provide faster updates
  • A new widget to control any media player

Screenshot of media player widget Screenshot of media player widget.

  • Enable/Disable all sensors
  • Events for entering or exiting a zone along with all location data
  • Link to the current release changelog on GitHub
  • File upload support for add-ons or person image upload
  • The ability to opt out of sending crash reports to help the team investigate crashes. If you decide to opt out please make sure to report issues on GitHub otherwise we may not know the issue exists.
  • Lots of location fixes for more accurate reporting
  • Lots of bug fixes and other miscellaneous enhancements

Big thank you to everyone involved. Hope you take the time to digest all the new features. Looking forward to all the new use cases and feature requests everyone has been having.

The full changelog can be found on GitHub.


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? 😍

../Frenck

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 friends.

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 configuration.yaml:

homeassistant:
  legacy_templates: false

After that, you can do things like this:

script:
  my_script:
    alias: "Example"
    description: Example script with native lists in templates
    variables:
      entities:
        - light.living_room_window
        - light.living_room_table
      color: [255, 0, 0]
    sequence:
      service: light.turn_on
      target:
        entity_id: "{{ entities }}"
      data:
        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 backward-incompatible 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 integration.
  • 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:

Release 0.117.1 - October 30

Release 0.117.2 - November 1

Release 0.117.3 - November 4

Release 0.117.4 - November 4

Release 0.117.5 - November 5

Release 0.117.6 - November 11

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.

Read on →

Supervisor 249: Resolution center, Stability & Private container registries

The Supervisor is shipped with our Home Assistant Operating System and controls all hardware and software on your device. Bringing an effortless experience in managing, upgrading, and maintaining your Home Assistant instance via the user interface. It is what allows you to focus on what really matters; automating your home.

The Supervisor generally does not have enough changes that we can fill a blogpost with each release, it also does not have a fixed release schedule. A new Supervisor update is released when it’s needed, but that does not mean that there is nothing going on in this part of the ecosystem! One month ago, we put out the The Supervisor joins the party post that went over the highlights from the past year. Now it’s time for version 249, rolling out to everyone as we speak and it’s full of new goodies, enjoy!

Resolution center

We are introducing a new resolution center. This new feature will be used to identify issues and provide context and suggestions on solving your installation issues. We have big plans for this one!

New in this release is that if the available free space on your device drops below 1 GB, auto-updates will be paused and you will be notified. This should give you time to clean it up.

To help you free up some space, we have added a new page to our documentation to help guide you through that.

If you run Home Assistant Supervised, the system can get marked as unsupported if the host system does not have all the required services running. It was hard to find the reason why a system is marked as unsupported. It is written to the logs during startup, but the logs that you find in the UI do not go back that far. To make it more accessible, the message that your system is unsupported will now allow you to open a new dialog.

unsupported dialog

This dialog will list all the reasons why the system is marked as unsupported. Clicking on the links in that dialog will take you to a documentation page that describes the issue, and there will be a solution you can use to make your installation compliant with ADR-0014 and ADR-0015.

Stability

Stability is something that is always in focus for new Supervisor releases. The Supervisor is the central part of your Home Assistant OS/Supervised installation. Almost every release has some form of stability improvement, and this is not an exception to that.

If Home Assistant fails to start, we will now rebuild the container. This will ensure that a new fresh container is started up if something inside the container has been corrupted. We have also added this feature to our newly added observer plugin.

All auto-updates will be automatically paused if your system is running low on free space. Manual updates are still allowed, but now we will not fill up that space automatically, which in some rare cases could lead to startup issues.

We’ve also added a new check when adding add-on repositories to make sure that it’s actually an add-on repository. This should help avoid confusion.

Landing page

We’ve updated the landing page that you see when you’re installing Home Assistant. We added logs to it, so you can follow along with what’s happening while you are waiting.

And there is more! Our mobile apps are now able to discover the landing page. This means that you can discover a new installation while it’s initializing and already start onboarding in the mobile app.

landingpage

Private container registries

Thanks to @skateman, you can now use private (password protected) container registries in the Supervisor. This allows you to use add-ons and other containers that require you to log in to a container registry to install it.

private registry

You can find this in the store tab of the Supervisor panel, by clicking the three dots in the top right corner. This option is only available if advanced-mode is enabled.

Stricter Network Manager check

With this version more checks have been added to ensure that Network Manager is not only enabled on the system but that it also manages at least one network interface. If you are running our Home Assistant OS, this does not apply to you.

This stricter check allows us to provide a stable way for the Supervisor and for add-on developers to get the IP Address of the host.

The system will be marked as unsupported if Network Manager does not manage at least one network interface on your system. We’ve added a new page in our documentation that will help you get it fixed.


0.116: Entities card row editor, restore snapshots and performance metrics

Home Assistant Core 0.116!

So, how have you been? Fully processed the massive 0.115 birthday release yet?

Honestly, I haven’t. There was soo much in 0.115, and to me, it feels like that release was yesterday. 😅

So, today, a nice size, manageable release that brings some smaller things to the table. Lots of fixes, UI tweaks and improvements; hopefully a smooth sail!

The biggest changes can be found in the Supervisor. @ludeeus has been smashing on his keyboard to add the option to upload and restore snapshots during onboarding. A much-upvoted WTH. As a bonus, he also added performance metrics to the Supervisor UI. Nice work!

As always, enjoy the release!

../Frenck

Entities card editor

You can now edit the entity rows of your entity card. That means you can not only set an entity id, but also set the name, icon and secondary info.

Screenshot of the new editor for the entity card. You can now edit the entity row; adjust the name, icon and secondary info.

Also, using special rows will no longer force you use the YAML editor, however, you you can still use the UI editor and edit the special rows. UI editors for the special rows will come in the future.

User and person management combined

We combined the user and person UI, this means that the user configuration panel will only be visible for users that have advanced mode enabled.

The person detail dialog now has a toggle that allows you to give the person access to Home Assistant. If you toggle it on, you can set a username and a password for the person. If you toggle it off, the user will be removed.

This makes it easier to manage the people in Home Assistant, everything in one place.

Screenshot of the person "allow to login" option. The person edit dialog now has a toggle to allow a person to log in.

Restore snapshots

You can now upload snapshots from the UI and restores them. You can do this in the supervisor UI in the snapshots panel. But you can also do this during onboarding!

Screen recording of restoring a snapshot during onboarding. Screen recording of restoring a snapshot during onboarding.

This means you no longer have to set up Home Assistant, add and set up the Samba add-on to then restore your snapshot. Instead, you can just select your snapshot in the first step of the onboarding and it will be restored.

This makes moving to another system a breeze!

Performance metrics in the Supervisor UI

The Supervisor now shows performance metrics in its UI, so you’ll have a better idea of how much resources are used. Thanks @ludeeus!

Screenshot of the new Supervisor performance metrics. Supervisor UI now shows performance metrics.

H.265 stream support for Android

@uvjustin added support for H.265 streaming in the Android app, it will use a native video player that is shown on top of the Home Assistant UI. This player will only work in the more info dialog, and can not be used In Lovelace cards.

Automation editor has now weekday support

@misiu added a nice feature to the automation editor. Using a time condition in the UI, now has the ability to select the weekdays the condition should test against.

Screenshot of the new weekday conditions. You can now select the days to match in time conditions.

Python 3.7 deprecated

Python 3.9 has been released on 5 October. This means that Python 3.7 support is now deprecated and will be removed after two months (which will be effective in 0.118).

This is only a concern if you are running Home Assistant Core directly on Python. You can check the Python version Home Assistant uses by going to the information screen in Configuration -> Info.

If you run Home Assistant OS, Supervised or Container, you don’t have to worry about this, as the Home Assistant project takes care of this for you. As a matter of fact, if you use one of those methods, you are already running Python 3.8.

We are currently working on ensuring Python 3.9 is fully supported and tested.

Other noteworthy changes

  • MQTT now supports tag scanning, thanks to @emontnemery.
  • The Hyperion integration had a large overhaul by @dermotduffy, ensuring this integration now actually works!
  • @Misiu ensured the OpenWeatherMap integration supports all languages it can provide.
  • The utility meter now supports a bi-weekly cycle, thanks to @hareeshmu.
  • @timkoers added uptime sensors for network clients to the UniFi integration.
  • The Shelly integration now shows power and energy sensors for roller mode devices, thanks to @firstof9.
  • You can now filter history by using glob matching filters. For example, you can now exclude sensor.*_temperature from being recorded. Thanks @bdraco!
  • deCONZ has a new option; You can now disable the automatic addition of new devices. Furthermore, @Kane610 also added a service to clean up up orphaned devices. Thanks!

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:

Release 0.116.1 - October 8

Release 0.116.2 - October 9

Release 0.116.3 - October 15

Release 0.116.4 - October 15

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.

Read on →

Hacktoberfest 2020

October has started, which means: Hacktoberfest!

Hacktoberfest is a worldwide, month-long celebration of open source. An event open to everyone. Whether you’re a developer, student learning to code, documenter, designer, you can help drive the growth of open source projects, like Home Assistant.

By participating in Hacktoberfest, and by contributing four GitHub pull requests, you will earn either a free t-shirt or, new this year, have a tree planted. All backgrounds and skill levels are encouraged to complete the Hacktoberfest challenge.

Just like all other years, Home Assistant participates in Hacktoberfest.

What to work on?

So, you’ve decided to earn yourself that free Hacktoberfest t-shirt? Great! We’ve collected a bunch of tasks/suggestions/bugs that we’d love to get some help on. You can find those by filtering/searching for issues with the hacktoberfest label.

Or view all our Hacktoberfest issues across all Home Assistant projects.

Additionally, we recently held the month of “What the heck?!”. During this month a lot of suggestions and annoyances got reported by our community. While, those topic may not be approved as a change yet, it might be a great source of inspiration to contribute something the community wants. Check out the WTH community forum posts.

But, I’m not a developer?!

If you are not a developer, new to git, GitHub or open source in general, documentation can be a great way to get started. A relatively easy way to contribute, is by reviewing the documentation of integrations you use or are familiar with, checking if everything is still up to date and is free of spelling/grammar mistakes.

Every single documentation page on our website has a “Edit this page on GitHub”, on the top right corner. Using that link, you can change the text on that page and provide a suggestion for improvement.

On our Community forum, there is a good, step-by-step, guide on how this works: Editing the Documentation and Creating a Pull Request on GitHub.

So, what are you waiting for? Sign-up on the Hacktoberfest website and start hacking! If you have any questions, please, drop by on our Discord chat server. We have dedicated developer channels and are happy to assist you.

Happy Hacktoberfest 🎉


Community Highlights: 6th edition

It has been waaay too long since we had a Community Highlights blog.

Honestly, it is my fault. And then the month of “What the heck?!” happened, and one of the raised WTH topics was:

Where are the “Community Highlights”?

Bas, and all the voters on that WTH topic, let’s resolve that WTH topic right now!

A nice way of closing our birthday week by showing some cool things our community does while resolving a WTH. 🥳

A nice side project

OmegaX-NL shared a nice little project on our subreddit, that really fits the new style of working that many of us have to adapt too during this pandemic.

It looks great, OmegaX-NL! Does it work for the kids?

Nice side project! from r/homeassistant

Illuminate your stairs

A regularly recurring project is the illumination of the stairs. It can give a nice, futuristic touch to your home. Good illumination of the steps also greatly improves safety.

Winter is coming, daylight will become shorter; it might be the time to take care of some proper lights on the stairs outside.

JayBigGuy shared an excellent blog article on building stairs connecting his driveway with the deck, of course, full of smart lights.

Scan of a concept drawing of the stairs with smart lights A scan of the sketch/idea of what Jay had in mind of building.

Picture of the end result of the stairs with smart lights Jay build. And this is the end result, nice job there Jay!

Jay was not the only one, debsahu added some lights to the deck steps as well!

Thermostat with a wow factor

Thingsbeliketheydo shared probably one of the prettiest thermostats I’ve ever seen. Using an old cell phone and a frame from the dollar store, he turned Lovelace into a beautiful thermostat. 🤩

DIY Fireplace Thermostat with Shelly from r/homeassistant

Got a tip for the next edition?

Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?

Click here to send us your Community Highlight suggestion.

Also, don’t forget to share your creations with us via Social Media:

See you next edition!


Summing-up the month of 'What the heck?!'

A month ago, I wrote a blog post, starting our first month of “What the heck?!” (WTH) ever! An experiment and without any expectations, as we never had done anything like this before. But WTH, why not. 😁

And today, I think we can actually say: All good things come to an end.

It has been an amazing month! A whopping 746 topics have been created in the WTH forum, that together collected over 4,500 posts. The contents of all these created topics are amazing! And apparently, you all agreed on that, as a stunning 2,600 likes have been given on all those posts.

About the content, it is amazing! There was some really good feedback in there. Annoyances made many people think: “Yeah! What the heck?!” and more importantly, developers chimed in as well!

Developers dived in and started resolving and fixing stuff! At the moment of writing, a whopping 68 pull requests with code changes to address those WTHs have been made. A lot of these are already shipped with the 0.115 birthday release.

So, what was fixed?

Let’s take a quick peek at stuff that was reported and fixed/addressed/improved (in no particular order):

This list isn’t even complete, but gives a nice idea of what went on. We think it is an impressive accomplishment. If you are a bit into GitHub, you can find all pull requests made for the month of WTH, as they are all labeled with “WTH”.

Closing the WTH forum & Hacktoberfest

As said, all good things come to an end. We are going to close the WTH forum. This means that no new WTH topics can be created, but everything will remain visible.

Hacktoberfest is right around the corner and all current data in that forum can really help drive it. It is a great resource for developers to find opportunities to contribute on during the October month. So, while we close it down, we hope more will be addressed.

Why not run this WTH all the time? Well, it looses its power over time. This is already visible right now when comparing the velocity at the beginning and end of the month.

However, let’s see if we can do it again next year. Maybe, we should combine it with Hacktoberfest in 2021?

How did you experience the month of WTH? Should we do it again?


One more thing…

Wow, what a birthday week it has been! We’ve had a new supervisor release, one of the largest and most user-driven core releases, thanks to the month of What The Heck?!. We even got RFID tags right into the heart of Home Assistant, but we’re not done yet! We have “One more thing…”

Introducing Home Assistant Companion for macOS

Home Assistant Companion is a new application for Mac to control your Home Assistant instance, exposing your Mac sensors to Home Assistant and to receive notifications.

Like many recent updates to the iOS app, we have @zacwest to thank for this. Zac has ported the iOS app over to Mac and added some great new features specifically for the Mac.

If you’re a Windows user, don’t worry, you can integrate your PC with the great IOT Link tool.

Rendered image of the Home Assistant Lovelace interface running windowed on a 16-inch Mac Book Pro Home Assistant Companion running on a 16-inch Mac Book Pro

Trigger automations with your Mac

Home Assistant Companion for macOS adds several new binary sensors for your Mac, showing whether it is active and whether a particular microphone or webcam is in use.

Each camera and microphone has its own binary_sensor showing whether it is active or not. These can enable some really useful automations, especially for those home working at the moment. You could automatically turn off the radio when answering a call or close the blinds behind you to improve your video quality. To see just how useful this can be in the real world, check out this video of how our very own Frenck is using these sensors in his streaming set up.

The “active” sensor reports whether the Mac is being actively used. In other words that it is not sleeping, not showing a screensaver, not locked and not just sat idle. You can configure the “Time Until Idle” in one-minute steps from a minimum of 1 minute. You’ll find this option in the Sensors section of Preferences.

One huge advantage of running on a Mac compared to a mobile device is the much larger battery. This means we are not constrained by battery-saving measures and can address one of the most common gripes with the iOS app, update intervals. On a Mac, entity updates are immediately triggered when something changes. You will see this reported by the sensor.DEVICE_NAME_last_update_trigger reporting Signaled.

Home Assistant Widgets (Big Sur only)

Home Assistant Companion for macOS already supports widgets in Big Sur. Right now, we have an Actions Widget where you can have up to eight actions. You can also create multiple widgets with different sets of actions. If you have an idea for other widgets you’d like to see, pop over to the community forums and let us know.

Screenshot of a large Home Assistant Actions widget in Big Sur The large Home Assistant Actions widget in Big Sur.

Interface

The Mac app is definitely a Mac app. The App Configuration page has been removed from Home Assistant’s sidebar. Instead, the configuration options and preferences are on the menu bar right where you’d expect to find them for any other app and all the standard shortcuts work too (like ⌘, for Preferences). You can even open multiple Lovelace windows via File > New.

Screenshot of two Lovelace windows open side-by-side You can have multiple Home Assistant Companion windows open.

In the menu bar, you will also find an option to manually send an update to Home Assistant and a new Actions menu where you can see all your actions and fire them.

Notifications

Just like the iOS app, you can send notifications to your Mac with services like notify.mobile_app_DEVICE_NAME. One small difference is that critical notifications are not yet available for the Mac app. However, all our other notifications features like actionable notifications work on the Mac app. To see what is possible, take a look at the docs.

Documentation and Support

We are updating the Companion App docs with details for the Mac app. You can also pop over to the Discord channel. If you find a bug or have an idea for a feature, please open up an issue on the GitHub repository.

Getting the beta

You can get the beta right now from the home-assistant/ios repository: download the home-assistant-mac.zip file from the latest release, unzip and drag it over to your Applications folder. Done!

That’s it. All that’s left is to wish Home Assistant Happy Birthday one last time and to wait and see what amazing developments the next year brings.

Tom


0.115: B-Day release! Media browser, tags, automations & WTH

Happy Birthday Home Assistant!

There's a party goin' on right here 🕺
A dedication to last throughout the years 🥳
So bring your good times, and your laughter too 😂
We gonna celebrate our party with you 🎁

It's a celebration! 🎉

~ Kool & The Gang - Celebration

7! Siete! Soch! Syv! Sieben! Seitsemän! Cедем! Sept! Sju! επτά! Zeven! Sette! Seven! Years old today! And ooooh, are we going to party and celebrate with you!

You might have noticed, this release is a bit late, two weeks late. Our regular release cycle is 3 weeks, this time however, we took 5 weeks. Sure, the reason was, of course, related to our birthday today, but what is a better gift than a jam-packed release that has something for everybody?

Thankfully, a lot of you have been sharing their gift wishlist items during the month of “What the heck?!” (WTH). I love you all! What a good and amazing set of great ideas, annoyances and other suggestions have been made in that forum this month!

And it is not just that, a lot of people jumped in fixing these things as well! What a community! The month of WTH is almost over now, after that we will close the category on the forum, until the next WTH month.

Besides that, two totally new and big features are added this release, which we really wanted to polish before releasing it.

I usually write some things about the release in my personal introduction note right here, but honestly, I have no idea where to start… it is just too darn much! I love the new automation features, but there are so many of those in this release as well. 😅 I’m not going to try writing this. 😂

So, let me close with a thank you to our founding father:

Paulus, thank you so much for what you have imagined, started and created 7 years ago. Your idea has changed the lives of many, including my own. Thank you.

Of course, it is not just Paulus, but everybody else who contributes to the project in any way. Code, text, support, chat, YouTube video, live streams, blogs, articles, community guides, documentation, tweets, issues, bug reports, feature requests, ideas, questions or even if you just use it. Thank you for contributing! ❤️

Happy birthday and enjoy the release!

../Frenck

Table of contents

Alright, this release is massive, so here is a table of contents for helping navigating you around this release.

Media Browser

This release includes an exciting set of features around media. If the media player supports it, you can now browse the player’s media library and quickly change what you’re listening to. No need for two apps anymore if you want to change the lights and pick some music.

Any media player can enable this new feature. This release adds media browser support to Arcam FMJ, Kodi, Philips JS, Plex, Roku, Sonos and Spotify!

Thanks to @jjlawren for the initial implementation and to @cgtobi, @ctalkington, [@martinhjelmare], @elupus for the work on the various integrations and backend refining.

But a media browser isn’t just backend, it also needs to look good. Thankfully, we had @zsarnett on the case, with the help of @bramkragten. They came up with a beautiful design so you can browse your media in style.

When @hunterjm saw the new media browser, he got an idea. What if the user can use the media browser to browse media offered by any integration and play it on any of their media players? And so the media source integration was born.

The first media source that has been added is to allow users to play local media. Local media can be motion detection events from your IP camera or a bunch of music files to be used with Home Assistant Tags.

Home Assistant, by default, will look at the /media path. If you’re using Home Assistant OS (the default install), you can use the Samba add-on to upload media. If you use Docker, you need to mount a volume at /media and if you use a Python virtual environment, the default is <config>/media.

You can also specify your own media paths with a new configuration option in configuration.yaml:

homeassistant:
  media_dirs:
    motion: /media/motion_events
    music: /media/music

Media Source is not limited to local media. Any integration can offer its media. @cgtobi has upgraded the Netatmo integration, which will now offer its recorded motion events to play.

Media player integrations that want to play media sources will need to be updated. In this release, we’ve updated the Chromecast integration. If you click its media browser button, you will be presented with the available local sources.

Sometimes you just want to play your media without having to turn on the TV. To cover that case, @zsarnett added a new media browser to the Home Assistant interface, which can be used to play your media. That way, you can quickly see what that motion event that you just received was about.

Home Assistant Tags

Photo of the Home Assistant tag reader made by Adonno The Home Assistant tag reader, made by Adonno with the help of MagnusO.

Home Assistant now has native support for tags! With Home Assistant Tags, we’re making scannable tags (NFC/RFID) a first-class citizen in Home Assistant. Easy to read, write and automate!

We have a beautiful UI for it in the frontend, our mobile companion apps have been updated to work seamlessly with tags and there is now even an open-source scanner available, as shown in the image above.

For all details, read the dedicated blog post about Home Assistant tags!

Customize the sidebar

One of the most requested functions of What the heck was customizing the sidebar: You do want history for your entities in the more info dialog, but you don’t use that history panel. Or you do want calendars for automating, or in the new Lovelace cards, but don’t want a calendar panel with all your calendars.

Now you can hide panels from the sidebar and rearrange them, by just drag and drop them.

Screen recording of customizing the sidebar Screen recording of customizing the sidebar.

You can enter edit mode by pressing and holding the sidebar’s header or from your profile page. You can then drag the items in the order you want them or remove them by clicking the x next to it.

The removed items will be visible at the bottom of the list, by clicking the + button, you can add them back to the sidebar.

These settings are stored on your device in the local storage of your browser, this means that this setting is device-based and will be cleared when you logout.

Person image upload

You can now upload images for a person in the frontend!

Select or drop an image in the input field and then crop it to a square. The image is stored on your Home Assistant instance.

We will use the image in the frontend for your persons and the sidebar for the user linked to this person.

This feature is powered by the new image integration and opens up for future possibilities. For example, uploading images, for use in your Lovelace picture cards, would be nice!

Updated more info dialog

The more info dialog is updated. In case an entity has controls, for example a light, the more info dialog will now have 2 tabs. One for controls and one for history.

On the history tab, you can find the history graph you are used to and now also a list of logbook entries of the specific entity.

Screenshot of the update more info dialogs The updated more info dialogs, showing the two tabs: details & history.

For entities without controls (like a sensor), no tabs will be shown like before.

More information in the logbook panel

The logbook will now show what automation or script caused the change and what action was used to make the change happen.

This solves yet another WTH request. It will be really helpful to find those cases that are: WTH turned on this light?

Screenshot of the logbook showing the sources of the events. The logbook shows which automation changed the state of my stream light.

Automation & Scripts updates

The month of “What the heck?!” brought in a lot of topics that evolve around automations and scripts, of which quite a few have been addressed this release. Furthermore, we already had quite a bunch of improvements pending. If you like doing automation in YAML, you’ll probably just love this release.

Before starting on the list of newly added features, let’s talk about the Home Assistant frontend. You can now duplicate an automation and, the long present but always disabled, duplicate condition, trigger, and action function are now also finally working!

New action: Wait for trigger

This is a special new action than can be used in an automation action or script sequence that allows you to pause the execution until a certain trigger is been fired. It can be helpful for automations or scripts that consist of multiple stages.

In this example, a notification is sent when one passes through two gates to enter the garden, but only when both gates are passed within 10 seconds.

automation:
  - trigger:
      - platform: state
        entity_id: binary_sensor.gate1
        to: "on"
    action:
      - wait_for_trigger:
          - platform: state
            entity_id: binary_sensor.gate2
            to: "on"
        timeout: 10
        continue_on_timeout: false
      - service: notify.notify
        data:
          message: Someone just entered the yard!

This example is simple and probably fairly useless for most of us. However, let’s say you left your garage door open and you leave the “Home” zone. Home Assistant could send you an actionable notification, saying: “Hey, you left the garage door open, shall I close if for you?” with 2 choices: Yes/No.

Where you previously would have needed 3 automations for this. The first for sending a notification and two others for handling the “Yes” or “No” answer. Using the wait_for_trigger this could be done in a single automation.

Right after sending the notification, the wait_for_trigger could halt the script from continuing, until it receives the “Yes” or “No” answer and continue after that and run the actions you’d like based on the answer received.

This new feature is not just for our YAML uses; it also is added to our automation editor in the UI.

Screenshot of the new wait_for_trigger in the automation editor The automation editor can also use the new Wait for trigger action.

Triggers & Conditions on entity attributes

Ever tried to create an automation trigger or condition on an entity attribute, like the temperature of a climate or weather entity?

You used to need to use a template for that. Either by extracting the attribute from an entity using a template sensor or by writing a template condition. A reason for a lot of you to put it up as a “What the heck?!” entry. And you know what? You guys are right, this was difficult.

Screenshot of using attributes in the automation editor The automation editor now supports attributes on triggers and conditions.

So, Home Assistant now supports the use of attributes in triggers & conditions. Both the state and numeric state, triggers & conditions now have an attribute option that can be set with the attribute to use. The UI got a nice field for it, as shown in the above screenshots, but of course, it is also available when you are using YAML for your automations.

Some example triggers and conditions using attributes in YAML:

trigger:
  - platform: state
    entity_id: climate.living_room
    attribute: hvac_action
    to: "heating"
  - platform: numeric_state
    entity_id: weather.outside
    attribute: temperature
    above: 20.5
condition:
  - condition: state
    entity_id: climate.living_room
    attribute: havc_mode
    state: "heat"
  - condition: numeric_state
    entity_id: weather.outside
    attribute: humidity
    below: 80

Use input_datetime helpers in automation triggers

Using dates and times in your automation can be hard. If often needs quite a bit of Jinja templating and is actually really hard to do. @pnbruckner noticed, and he added the possibility to use your input_datetime helper entities directly in time trigger!

Assume you have an input_datetime.bedroom_alarm_clock_time helper entity, that is in your Lovelace UI, which you can set a time in. Great! You can now just use it in your automations to trigger on:

trigger:
  - platform: time
    at: input_datetime.bedroom_alarm_clock_time

Yes, he made it that elegant. It also works for multiple, or mixed variable and statically set times.

trigger:
  - platform: time
    at:
      - "10:00"
      - input_datetime.bedroom_alarm_clock_time
      - input_datetime.some_other_time_entity

More about the time trigger, can be found in our documentation.

Use input_* helpers in conditions

@pnbruckner set a standard in the above, and we used that to start working on making this something that would work on more places. As of this release, all input_* entities can be used in conditions.

The time condition can accept input_datetime helper entities, similar to the trigger shown above.

conditions:
  - condition: time
    after: input_datetime.house_silent_hours_start
    before: input_datetime.house_silent_hours_end

The numeric_state condition now accepts input_number helper entities for the above and below options.

conditions:
  - condition: numeric_state
    entity_id: climate.living_room_thermostat
    attribute: temperature
    above: input_number.temperature_threshold_low
    below: input_number.temperature_threshold_high

And finally, the state condition accepts any input_* helper entity in its state option.

conditions:
  - condition: state
    entity_id: sensor.happy_birthday
    state: input_text.too_you
  - condition: state
    entity_id: sensor.happy_birtday_song
    state: input_select.notify_on_song
  - condition: state
    entity_id: light.living_room
    state: input_boolean.expected_state

We are confident this will greatly improve the power and ease of the helper entities. The conditions documentation has been updated with more examples.

Here is an idea: You can now easily create a set of helper entities representing your automation settings and adding those to a separate Lovelace dashboard. You now have your own automation configuration panel, helpful for tweaking things like times or adjust temperature thresholds, without touching your automations.

Shorthand notation for template conditions

A neat little trick added this release: Allow for shorter, cleaner YAML code, if you use templates quite a bit: A shorthand notation for condition templates have been added.

All places that accept conditions, now accept templates directly. Some examples:

automations:
  - alias: "My automation"
    ...
    condition: "{{ (state_attr('device_tracker.iphone', 'battery_level') | int) > 50 }}"
    ...
- choose:
    - conditions: "{{ is_state('sensor.mode', 'on') and (state_attr('climate.room', 'temperature') | int) < 10 }}"
      sequence:
        - ...

Or in a list of conditions:

condition:
  condition: or
  conditions:
    - "{{ is_state('device_tracker.iphone', 'away') }}"
    - condition: numeric_state
      entity_id: "sensor.temperature"
      below: 20

More examples can be found in the conditions documentation.

Use templates directly in data and service fields

More WTH input! Those data_template, and service_template fields in service calls are so annoying! Why not accept templates in the normal data and service field?

Good question! And even better suggestion. As of now, you can!

action:
  - service: "notify.{{ state('input_select.active_notify_platform)' }}"
    data:
      title: This is notification!
      message: "The time is {{ now() }}"

Don’t worry, the old format still works as before, so this is not a breaking change. However, you can start removing those data_template’s by renaming to (or merging them with) data.

The keys inside a data block, can be templates now too!

service: kef_custom.set_mode
  data:
    "{{ attribute }}": "{{ now() }}"

Variables

Another WTH item, “Why can’t we have variables?!”. This WTH is not fully solved, but a good start is made this release by adding support for variables to automation and scripts.

Here is an example automation:

automation:
  trigger:
    platform: sun
    event: sunset
    offset: -00:30
  variables:
    notification_service: notify.paulus_iphone
  action:
    - service: "{{ notification_service }}"
      data:
        message: Beautiful sunset!

While the above example, it doesn’t add that much value, it does shows how it works. Variables can be templates too! For example:

variables:
  person: frenck
  notification_service: "notify.{{ person }}_iphone"

Both scripts and automation actions support this syntax now. Additionally, we added a new action! The variables action. This unlocks the potential to change variables during the runtime of a script.

variables:
  notification_service: notify.paulus_iphone
action:
  - variables:
      notification_service: notify.frenck_iphone
  - service: "{{ notification_service }}"
    data:
      message: This message actually went to Frenck, not Paulus.

For a more extensive example, check out the example written in the blog article about Home Assistant Tags.

Other scripts and automation changes

But wait! There is more! 😂

There was no way of knowing if a wait template was timed out or if it continued normally. Now, we do know this. After each wait template, a new variable is available: wait. It provides wait.completed (indicates if the template evaluated to true before the timeout expired) and wait.remaning (remaining time out).

sequence:
  - wait_template: "{{ is_state('binary_sensor.abc', 'on') }}"
    timeout: 10
    continue_on_timeout: true
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ not wait.completed }}"
        sequence:
          # Handle timeout case

The new script and automation run modes are amazing! But in some cases, they might be polluting your logs. For example, you have a automation in single mode, but it does get triggered multiples times sometimes and you are not interested in the log. You can now control that with the max_exceeded option.

The example below silences the automation and it will not log when it gets triggered while it was already running:

automation:
  - trigger: ...
    max_exceeded: silent
    action: ...

Calendar card

Like promised, when we introduced the calendar panel, we now also added a Lovelace calendar card!

This allows you to create as many calendars as you want with the entities you want.

If you want multiple calendar panels, create a Lovelace dashboard with a panelmode view with a calendar card!

Screenshot of the new calendar card Screenshot of the new calendar card.

Template developer tools

The template developer tools are very useful for checking if the template you made works and does what you want it to do. But people had some annoyances with the tool; the editor is always filled with sample data, that can give a lot of response. It would be more useful to have your previously used template there. Yes, you guessed it, another WTH!

The template would also not automatically re-render after the state of an entity is changed, causing you needing to change the template in order to re-render it.

We addressed both these issues. We save your last-used template and will show that instead of the example when you visit the template developer tools.

Screenrecording the live state changes in the template development tools. Templates you write in the developer tools, are now updating live!

We will also listen for changes of the entities you used in your template and automatically re-render your template. As a bonus, we will show which entities Home Assistant detected you are using in your template.

Reload everything YAML

WTH, do we still need to restart Home Assistant for applying YAML configuration? That was one of the WTH raised. It is being worked on!

This release, @bdraco found a way to reload some of the internal integrations and boosted this capability to a lot of integrations. For those, you can just reload the YAML in the configuration server control page (you will need advanced mode).

As of this release, besides the integrations that already could be reloaded, the following integration can now reload their YAML configuration without a restart of Home Assistant:

You can also reload an integration that is setup with the UI! This can be useful when it lost its connection or is in an otherwise failed state. You can find the reload button in the overflow menu on the integration card.

Screenshot of reloading an UI configured integration. UI configured integration can now be reloaded as well!

User password change

Another What the heck, that sounded so obvious: Being able to change a user’s password as the owner of the system. Right?!

You can now change every user’s password from the UI when you are the owner of the system!

Screenshot of change a password of a user account. As a owner, you can now change a password of a user.

Improved ways of exposing entities via Home Assistant Cloud

This release brings an update to the way you can expose entities to Google Assistant and Amazon Alexa via Home Assistant Cloud.

With the new panel, you can now set on a domain level if entities should be exposed/not exposed by default. You can still override this on a per-entity level for fine-grained control.

The default expose rules have also been updated to expose entities that work best with voice assistants.

Screenshot of expose options on an entity.

Add card by entities

Are you a bit overwhelmed by all the different types of cards Lovelace has? You can now just select the entities you want to use for a card, and have Lovelace suggest a card for you.

Screenshot of add card by entity selection view in Lovelace UI. Select one or more entities to populate the card.

Screenshot of add card by entity confirmation view in Lovelace UI. A confirmation dialog is shown before adding the suggested card.

In the add card dialog, we added a second tab with a list of all your entities. Select the entities you want to use and click continue. We will suggest a card for you and you can then fine-tune the configuration.

Order entities in Lovelace UI editor

You can now sort the entities in Lovelace UI editors by just dragging them. No more clicking the up and down buttons over and over again, simply drag the item up or down.

Screenrecording of dragging and dropping entities to re-order Drag and and drop the entities in the order you want.

Other noteworthy changes

  • The OpenZWave beta integration is coming along nicely. First signs of some control panels in the UI are visible this release. You can see the status and information of your network and nodes. There are also buttons to put your Z-Wave network in inclusion and exclusion mode and to refresh a node. Thanks @cgarwood!

  • The code editor in the UI is now theme-able, so make them look nice!

  • The stream component now supports audio! Amazing job @uvjustin!

  • Slack notification now supports change username/icon on the fly, which was a great WTH suggestion! Thanks for adding that @bachya.

  • The Met.no now supports hourly forecasts, very nice @bruxy70!

  • The MDI icons are updated to version 5.5.55, this adds another 100 icons you can use!

  • The Google Assistant integration got some updates:

    • @elupus added support for asking for the previous or next input source.
    • Basic support for controlling light effect has been added by @mjg59.
    • @blueshiftlabs added capabilities to control media player muting and relative-volume controls.
  • The Netatmo integration was re-engineered, which reduced the number of API calls and added webhook events to improve overall responsiveness. It now supports controlling the outdoor camera floodlight and got services to set the occupants’ home/away status and the outdoor camera mode.

  • We no longer automatically alphabetically sort the keys in YAML files written by the UI, as a result from a WTH request. Much better!

New Integrations

A lot new integrations added 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.

Read on →