It’s time for the 0.98 release. As Home Assistant grows, some features will sometimes be left partially implemented, leaving things to be desired. In this release we’ve been focusing on tieing up these loose ends, sometimes with new features. Getting better all the time!

Entity Management

One of the things that we’ve been improving in this release is entity management. Historically we’ve let this up to integrations, but that caused users to learn multiple ways and more work for integration developers.

Generally entity management is not that important, you want all the entities created by your integrations! However this was less the case when we started migrating over device trackers. This became clear when we migrated over Unifi.

So in this release we’re introducing a couple of new features that are available for all entities in the entity registry and integrations that are set up via config entries.

The first feature is that it’s now possible to disable entities. If an entity is disabled, it will not be added to Home Assistant when an integration adds it. So now it will be easy to manage which entities will show up. This option is accessible from the entity registry

The second feature is a new option to automatically disable any new entities that an integration discovers. In the case of a device tracker, newly connected devices to the network won’t be added anymore. This option is accessible from the integration details page via a button on the toolbar at the top.

With these two features we are now at feature parity with the filtering features that are available in the device tracker integration. Next step will be polishing of the person integration to get all those shiny new device tracker entities under one roof.

Screenshot of integration system options

Config Entry Options

We introduced config entries last year as our way as a generic way for integrations to store authentication and configuration. By allowing integrations to define the storage format, there are no more breaking changes for anything stored inside config entries!

Config entries also work great with people who prefer configuration.yaml. At startup a config entry is created/updated with the configuration.

With this release @kane610 added a new possibility for integrations to offer options in the UI. Options that previously required you to edit configuration.yaml can now be offered via the interface.

This release adds config entry options to Deconz and Unifi integrations with many more to come.

Screenshot of Unifi config options

Home Assistant Alerts

Devices and services can receive updates that can cause integrations to break. This is frustrating and sometimes the cause can be hard to track down. Usually the users on forums/chat are aware and can help redirect people in the right direction, but that’s not a scalable solution!

So to combat this, we’re launching Home Assistant Alerts. Home Assistant Alerts is a website that will track known issues and explains in user friendly language what is going on. Alerts can be tagged with applicable Home Assistant versions, integrations and Python packages.

In the future we’re planning on integrating this directly in Home Assistant, so that users can be pro-actively notified of issue related to their configuration.

Docker base image change

If you run Home Assistant via Docker (not Hass.io) and are using the homeassistant/home-assistant container, the images are now using the same images as hass.io, which are using Alpine Linux instead of Debian.

The hass.io images are a third of the size of the old images and are heavily optimized thanks to the hard work by @pvizeli.

This change will only impact you if you were extending or customizing the image with Debian packages. If you want to continue to use the Debian based images, you can find the Dockerfile for the old images here.

Release 0.98.4 - September 4

Release 0.98.5 - September 6

We have been notified by Gregor Godbersen that our markdown renderer was vulnerable for an XSS attack if exposed to specially crafted markdown. This was introduced in the Home Assistant 0.98 release. We have verified that Home Assistant 0.98.0 does not render unsafe markdown, yet still wanted to make sure to issue an update as soon as possible.

It’s time for Home Assistant 0.97! It has been a very busy release cycle as we have been fine-tuning our development process, which makes it easier to maintain and contribute to Home Assistant in the future.

Python 3.5 support has been dropped

As per previous announcements, this is the first release that requires at least Python 3.6. If you are on Hassbian and are planning to upgrade Python, please take note of the known issues with the default wheel server.

Docker

This is the last release that bases our Home Assistant Docker image (homeassistant/home-assistant) on Debian. As decided in Architecture Decision Record 0006: Docker Images, the image will be based on Alpine Linux starting with the 0.98 release. These new Docker images will be running same the Home Assistant Docker image that powers Hass.io. You don’t need to change anything unless you have installed Debian packages manually or made any other changes to the running container. However, if that is the case, you’ll need to find the Alpine equivalent of whatever you were doing.

The main driver behind this change is that by re-using images, maintenance becomes easier, and users of the homeassistant/home-assistant image can benefit from the many optimizations that went into the Hass.io images.

Reload scenes from configuration.yaml

Thanks to @balloob it is now possible to reload scenes from configuration.yaml without restarting Home Assistant. This is part of an effort for Home Assistant 1.0 to make scenes a first-class citizen of Home Assistant, including creating/restoring scenes on the fly in the future. To track this effort, follow this page.

Home Assistant Cast opens a whole new world of possibilities for using Lovelace, and we are really excited to learn what cool things you will do with it! If you created something, feel free to share it on social media using the #homeassistantcast hash-tag. We are looking forward to your pictures!

Home automation itself has never been a goal of Home Assistant. Instead, it’s a tool that allows us to have technology improve our life, and that of the people around us. I wrote about this 3,5 years ago, and it’s been our guiding principle in building out Home Assistant.

Today we’re introducing Home Assistant Cast to help with this. With Home Assistant Cast, people in your house can have quick access to see the state of your house and it’s residents, and quickly adjust the most important settings. This is achieved by running on Chromecast powered screens that you already have throughout your house: your Google Nest Hubs and TVs.

You can launch Home Assistant Cast by going to the Home Assistant Cast launcher website. It works with any version of Home Assistant released in the last year. Home Assistant Cast can show any Lovelace view, including support for custom cards and themes. Got no Lovelace configuration? Don’t worry, we’ll generate a view and show that instead.

How it works

You need to authorize Home Assistant Cast to access your Home Assistant instance. Once it’s authorized, you can start Home Assistant Cast on your Chromecast device. Next, your Chromecast device will set up a direct connection to your Home Assistant instance and give you the option to pick a view to display.

Home Assistant Cast can:

Render Lovelace views, including custom cards.

Stream real-time data to make sure that the UI always shows the latest state of your house.

Navigate between views using navigate actions inside an entities card or using weblinks.

About touch

We have been able to get touch controls working on the Google Nest Hub and other Google Assistant devices with a screen. The available configuration options to indicate that we’re a touch-optimized app did not work. We were still able to achieve touch controls by manipulating code that is injected into the Home Assistant Cast website when the Chromecast runs our receiver application.

There is no guarantee that touch controls will keep working, it might be blocked. It might stop this week, next month, next year, or it keeps working forever.

I hope that by releasing it with touch controls enabled, we can show Google that this is something that people want, and are willing to invest in for just this reason.

To make sure everyone sees it, I encourage people to share photos and videos of Home Assistant Cast in action on Twitter, Facebook, YouTube and other social media with the hashtag #homeassistantcast. Let’s share the love!

Coming soon and future plans

On August 7, Home Assistant 0.97 will be released. This release will allow launching Home Assistant Cast from the Home Assistant frontend. You can do this by including a new cast row that can be placed inside an entities card.

There are two potential solutions for this issue, where option 1 are considered the best of them.

Option 1

Upgrade your distribution to Debian Buster.

NB!: This option will upgrade your entire system and might negatively affect other things you might have running.

Before you continue with this, you should make sure that you have a recent backup of your system.

Steps

Change stretch or jessie to buster in these files:

/etc/apt/sources.list

/etc/apt/sources.list.d/raspi.list

/etc/apt/sources.list.d/hassbian.list

Run sudo apt-get update

Run sudo apt-get -y dist-upgrade

Run sudo reboot

Option 2

Disable piwheels prebuilt packages.

This option is a faster method initially, but it has the huge drawback of having to compile the packages locally.
You should only use this option if you run other things on your system that will not work if you use the first option.

Steps

edit /etc/pip.conf and comment out the line containing piwheels, like this:

It’s time for Home Assistant 0.96. It’s a great release, but we also made some changes, so please pay attention.

Last release that supports Python 3.5

This will be the last release that supports Python 3.5. Home Assistant 0.97 will require at least Python 3.6. If you are using Hass.io or Docker, you will not have to do anything. If you are running Hassbian, upgrade instructions are here. If you run Home Assistant inside a virtual environment, please follow the instructions for your OS to update.

Home Assistant has adopted a new Python support strategy. Starting August 1, we will now support the last two minor stable releases of Python. This is currently Python 3.6 and Python 3.7. Python 3.8 is expected to be released near the end of the year. Once that is released, Python 3.6 support is deprecated and removed 2 months later.

Pimp my Sidebar

The sidebar has gotten an improved look! Idea started with a mockup by @JuanMTech on Twitter and grew into a full blown implementation. When visiting Home Assistant on devices with big screens (tablets, laptops, desktops), the sidebar will now always be visible in a minimized mode with the ability to fully hide it via the profile page. The developer tool buttons have been collapsed into a single menu item. The dev tools will now store it’s exact state when you navigate away, included the dev tool that is open. We’ve also taken the opportunity to make notifications accessible from the sidebar, instead of only via the Lovelace UI.

On mobile devices the sidebar will behave like it previously did. Check the demo for a preview.

Climate

This release includes a major clean up of our climate integration, correcting some architectural flaws from the past. The goal of this clean up was to a better job at providing an abstraction layer that fits many devices. This will improve compatibility with services that interact with Home Assistant (like Alexa/Google) and will allow us to make sure the UI works for everyone. We’ve done a lot of testing during the beta, but there might still be things that don’t work as expected. If you notice anything, please report by opening a bug report.

operation_mode has been renamed to hvac_mode to emphasize what the mode is for.

We split HVAC mode auto into auto and heat_cool. If it’s heat_cool, the user has set a temperature range the device has to use heating and cooling to stay within. Auto mode is now limited to devices that are running on a schedule or AI.

The state of a climate entity is now always equal to the HVAC mode.

hvac_action is introduced for integrations that know the current action: heating, cooling, idle.

set_away_mode and set_hold_mode have been merged into set_preset_mode. So instead of turn_away_mode_on(), we will now call set_preset_mode("away").

The is_on property has been removed. If a device is able to turn off, it should include the HVAC mode HVAC_MODE_OFF.

Property names have been aligned, anything ending with “_list” is now named “_modes”.

Integrations are only allowed to represent functionality that is present in the API. It is not allowed to add your own fake away mode.

Huge thanks to @pvizeli who drove the core implementation and to the following people for helping getting it past the finish line:

Advanced mode

As part of Home Assistant 1.0 effort, we’re simplifying the default user interface. We’re doing this by hiding certain configuration options like the customize panel behind a new “advanced mode” toggle. You can find this toggle on your profile page.

Advanced mode is only available to admin users and is a per-user setting. Enabling it for yourself won’t enable it for other admins.

In other news…

Raspberry Pi 4 support has arrived in beta. @pvizeli has been hard at work and the first beta release is available. If you flash this image, you will be able to update to a stable release later from within the UI.

Big shout out to @frenck who has been doing a lot of clean up on the website. Like, a lot lot. He has removed over 20.000 unused lines of code, and has simplified how we render code blocks, pages and headers. It takes Jekyll now a mere 14 seconds to generate the whole website! It used to be 6 minutes! 😲

Last week @balloob showed a preview of the upcoming Home Assistant Cast, a new interface for Home Assistant that runs on Chromecasts and Google Assistant devices with screens.

Today is my birthday. I’m turning 33. And to celebrate, I want to share a preview of a project that I have been working on: Home Assistant Cast. It’s the Home Assistant Lovelace interface, but for Cast-enabled devices like Chromecasts or Google Assistant devices with screens.

Photo of the Google Nest Hub running the Home Assistant Cast interface.

It will work with any Cast enabled device, and if available, will allow the user to use the touch screen to interact with the interface. The interface is built with Lovelace, so it’s the same powerful features and real-time interaction that you are used to today.

Chromecast apps are usually launched from a browser or a mobile app on Android or iOS. But we wouldn’t be Home Assistant if we had just one solution. Home Assistant has been integrated with Chromecasts for over 5 years. This means that you will be able to launch Home Assistant Cast as part of your automations. For example, you will be able to show information on your TV if a visitor has been detected at the frontdoor. Nice!

It is time for release 0.95, and guess what? It’s good! First things first, did you see the new Raspberry Pi 4? 3x as fast as the model 3, gigabit ethernet port actually supports gigabit speeds now, faster memory read/write, oh well, faster everything! The benchmarks are impressive. Best of all? The base price stayed the same. However, you can now also pay more for upgraded models with more memory, which is great if you like to install all the hass.io add-ons.

Talking about Hass.io support, we’ve received ours and work to add support will start shortly 🚀. Since we’re discussing Raspberry Pi’s, can we talk SD cards really quick? Quality matters. When you buy SD Cards get the pro variants, preferably the ones that are class A1 or, even better, class A2. The A stands for application and they are optimized for running apps, like Home Assistant.

RV Assistant

With this release, we’re making integrating Home Assistant into moving vehicles so much easier. In the last release, we introduced support for the core config to be updated without restarting Home Assistant. This release brings it a step further and introduces a new service homeassistant.set_location. With this service, you can automatically change the location that Home Assistant is located. Once updated, it automatically updates all the things that rely on the location, like your sunset triggers and your current weather (only Met supported now).

AdGuard Home - local ad-and-tracker blocking

Here at Home Assistant, we’re big fans of privacy and we’re always working on improving it. So this brings us to AdGuard. AdGuard Home is a local DNS server that automatically blocks any device looking up a domain that is used to serve ads, spreads malware, or isn’t appropriate for your kids. Thanks to @frenck, starting release 0.95, it has a top-notch integration with Home Assistant:

Home Assistant automatically detects the Hass.io add-on and offers to set it up. (It works with standalone installs too, see the AdGuard integration documentation on how to configure it.)

DONE!

One cool new feature: because parental control is now available as a switch, you can control AdGuard via Alexa and Google: “Hey Google, turn on parental control” 😲.

Frenck shows a demo of the AdGuard integration during his stream. See the demo.

Life360

More goodies. Keep paying attention as we’re not done yet. Also new in 0.95 is the Life360 integration thanks to the hard work by @pnbruckner. This integration started its life a little over 360 days ago on the forums as a custom integration and has now become part of Home Assistant. Life360 is an app to allow friends or family members to share location with each other.

Improved Alexa integration

One more thing… This release improves the Home Assistant Cloud Alexa integration. Just like Google Assistant, it is now possible to manage which entities are exposed to Amazon via the user interface. Alexa actually offers some cool features around this. Any change you make is instantly reflected inside Alexa. Add an entity? Control it instantly via Alexa.

However, we didn’t stop there. The manual installations of Alexa has had optional proactive state reporting since earlier this year, and this is now available for Home Assistant Cloud users too. If you choose to opt-in to this, every state change of your exposed entities is sent to Amazon as soon as they happen. It allows Amazon Echos with displays, to instantly reflect the state and allows you to create routines inside Amazon powered by your Home Assistant entities.

More icons available

Austin Andrews, the lead designer of Material Design Icons, informed us that Material Design Icons 3.7.95 has been released. It includes a handful of the top requested Home Assistant icons (and a total of 100 new icons!).

Noteworthy breaking changes

For the last couple of releases, we’ve been printing warnings if your configuration contained invalid slugs or extra keys. Starting with this release, these warnings are now errors. No procrastination anymore, you’ll need to fix it now.

We have also realized that the default database clean up task never automatically ran as intended. Instead of running every night, cleaning up your history so that it only contains the last 10 days, it never ran. Oopsie. We’ve fixed it in this release, so now the defaults kick in. Want to adjust how much history you want to retain? Check the docs.

It is time for the 0.94 release and there is some seriously good stuff in this release. We’re working hard on polishing everything and getting ready for the big Home Assistant 1.0 release. And we’re getting closer. So close actually, that this is the first release that can be installed and configured without touching a text editor! Onboard, configure integrations, manage automations and scripts all from the UI.

This milestone has been achieved thanks to the hard work by @emontnemery who contributed the ability to store the core config in storage: name, location, unit system, time zone. We still allow users to store their core configuration in configuration.yaml, which will take precedent when defined. This means that it is a non-breaking change. Core config is now set during onboarding and can be edited in the general page of the config panel.

Another cool new feature is the total revamp of how you manage which entities are exposed to Google Assistant via Home Assistant Cloud. From the cloud UI you can now click “Manage Entities” and you are brought to the Google Assistant entity manager. From here you can enable which entities are exposed and, if you deem appropriate, choose to disable the two factor authentication on your garage door (the asking for a pin).

Screenshot of the new user interface to manage which entities are exposed to Google Assistant.

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.

Update May 16: Nest just announced in a blog post that they changed their plan. It will still retire the Works with Nest program at the end of August, but it will no longer cut off existing users of the API. It will however still stop accepting new users at the end of August.

Currently each Home Assistant user is required to create their own developer account to configure their Nest integration. We will reach out to Nest to see if we can become a partner so that users joining Home Assistant after August can still use Nest.

Sigh. Another one. This time it’s not a small one either: Nest is disabling their APIs.

We already saw the writing on the wall in January, but now it’s official: Google announced that the Nest API will be turned off at the end of August, 2019. This means that in a little over three months, you will no longer be able to get your own data, that Google has collected in your home, and use it like you see fit.

Notice posted on the Nest developer website.

The reason for shutting down the API is that the Nest team is focusing on making “Works with Google Assistant” the most helpful and intelligent ecosystem for the home. However, and this is crucial: the Google Assistant ecosystem is a one way street. You can put data in, but you can never get data out. They acknowledge this in their FAQ:

FAQ Nest developer website.

Cherry on the Cake

Google also announced that they are transitioning the Nest ecosystem into the Google world, making you link all your Nest devices to your Google account. How that will work? We’re just going to leave this snippet from this article from the Financial Times here: