Blog

Thinking Big

Today marks the 5th anniversary of Home Assistant. I want to spend this post not only reflecting on the last 5 years, but also look at what is ahead of us, where we want to go, what we want Home Assistant to be.

Home Assistant wasn’t born out of ideology. I built it because I got some smart lights and wanted to script them. I made that script open source and it went from there. As Home Assistant has grown, so has the world around us, and so have I.

A lot of IoT products have been introduced since Home Assistant started. Sadly, the trend in these products is to send all data to the cloud and manage your house from there. I’ve come to realize that it’s not in the big corporations interest to make a product that focuses on privacy and local control. Our data is too useful for them.

I don’t like this trend. I don’t like seeing more and more of our data being hoarded by a few giant companies, centralizing it in a few systems and using it to influence how we’ll be treated online. It’s our lives, our data, and we should be in control. Not some algorithm optimized for engagement.

And so I want to introduce a goal for Home Assistant. A goal that will shape how the platform will evolve in the upcoming years.

Read on →

0.78: More auth, Switchmate, Yale Smart Alarm, OpenTherm

It’s time for a new release and oh boy, what a time to be alive! Today marks our 5th (!!!) anniversary. That’s 5 years we’ve been bringing privacy focused and locally controlled home automation to your home. Happy birthday to us.

This release includes two new features for the auth system. The first one is long-lived access tokens. These are tokens that don’t expire and can be used in your scripts instead of API password. Instructions on how to create and use them can be found on your profile.

Also on your profile page is a new list of existing refresh tokens. These are all the tokens that are currently active for your account. If you ran into issues that the remember login dialog didn’t show, you might have a lot. Don’t worry, you can delete them all.

New Platforms

Release 0.78.1 - September 20

Release 0.78.2 - September 21

  • Fix discovery

Release 0.78.3 - September 22

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →

0.77: Authentication system 👮‍♂️ + Hangouts bot 🤖

It’s time for a great new release and it includes a big change: the new authentication system has been activated! We’ve worked very hard on this for the last couple of months to make the transition as smooth as possible. Updating to this release is a non-breaking change (unless you had no API password configured). As can be seen in the video above, when you start Home Assistant after the update, you will be presented with our new onboarding flow. This will ask you to create a new account after which you will be able to log in to Home Assistant.

Once logged in, you will have access to the following new features:

  • Change your password
  • Configure multifactor authentication (TOTP)
  • Manage other users (limited to account created during onboarding)

Although it’s possible to configure authentication, we strongly recommend to stick with the default authentication configuration. If you had auth providers configured in a previous Home Assistant release, we recommend to remove the configuration and start using the default.

It will take some time before all of the Home Assistant ecosystem has been migrated over to the new auth system. Home Assistant will print a warning whenever an application connects to Home Assistant with the legacy authentication. This will help users notify the application developers to transition to use the new OAuth2 authentication. For non-interactive scripts or other applications that are unable to update, we are planning to introduce a migration path for components to adopt url specific auth tokens and also introduce long lived access tokens to replace API passwords. A list of impacted components can be found here.

Our iOS app will soon be updated to work with the new auth. It’s already in testing. The old app will continue to work with the legacy API password support. It will however require a second login when using the webview.

If you are using a proxy server (NGINX etc) in front of Home Assistant to provide authentication, check this blogpost by @DubhAd how to make it work.

I want to say a biiiig thank you to all the people that have been involved in the development and testing of the new authentication system. It’s been a big project and it’s been great to see how we, as a community, have rallied together to tackle it. Especially a big shout out to @awarecan who has done an amazing job on this.

Hangouts

And that’s not it ! @hobbypunk90 has contributed a new integration for Google Hangouts. You can send messages but can also configure intents to handle incoming messages from specific people. Very cool!

Lovelace

You didn’t think we would forget about Lovelace, did you? This release include a new notification drawer thanks to @jeradM. It will collect all persistent notifications and configurator entities and shows it in a new sidebar toggleable from the toolbar.

New Platforms

Release 0.77.1 - August 29

Release 0.77.2 - August 31

Release 0.77.3 - September 3

Frontend changes only:

  • Ask “save login” after hass connected PR @awarecan
  • Show an error when invalid client id or redirect uri PR @balloob
  • Disable autocapitalization of username field PR @timmo001
  • Upgrade MDI icons PR @balloob
  • Update translations

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →

0.76: Auth almost done, FleetGo, PJLink, RMV public transport

Note

This release has a migration, initial startup can take ~20 minutes (depends on size DB)

This release includes a database migration to allow us to store context in the database. This will make it possible in the future to introduce attribution. For example, we’ll be able to say which user opened the garage door or which automation triggered the party mode at 3am.

The auth system is entering release candidate status 🎉. If nothing major is found, it will be enabled by default starting the next release (0.77) with backwards compatibility modus turned on. If you want to get ahead of the pack, you can already easily enable it now:

homeassistant:
  # add this part
  auth_providers:
   - type: homeassistant
   # uncomment this to enable backwards compatible API password support
   # - type: legacy_api_password

For iOS users, your frontend should be a lot faster. We had an issue that forced us to serve the frontend in compatibility mode, which is slower. We haven’t been able to solve the issue, but found a workaround. Race on 🏎.

Warning. If you are using the internal MQTT broker, we’ve had to make a change how the password is set. In the past it would automatically start the broker with the user homeassistant and a password equal to the API password. This is no longer the case and you need to configure it yourself now:

mqtt:
  password: mypass

New Platforms

New Features

  • Add and restore context in recorder (@balloob - #15859) (new-feature)

Release 0.76.1 - August 19

Release 0.76.2 - August 21

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →

0.75: Spider, Tuya, Brunt, Magicseaweed API

And just like that, it’s August. Time is flying by. People all over the world have been busy to create this release for you. This release again a ton of cool new stuff.

First, let’s talk entity IDs. Entity IDs are how we identify entities in automations and scripts. They start with the domain and end with an object id, for example: light.kitchen. Or, if you’re unlucky light.node_2_2_abc. With this release, it will now be possible to manage entity IDs of entities via the UI! Just as with changing the name, it requires that the integration is able to supply a unique ID for each entity.

Screenshot of the user interface to change entity identifiers. Screenshot of the new user interface to change entity IDs.

This release also includes a bunch more Tuya integrations thanks to @huangyupeng. And thanks to @peternijssen we’re now also able to talk with Spider thermostats and plugs.

New Platforms

Release 0.75.1 - August 4

Release 0.75.2 - August 6

Release 0.75.3 - August 9

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →

0.74: Tuya, Cloudflare DNS, Push Camera and Users UI

It’s time for Home Assistant 0.74! 🎉

This week we heard that Guido van Rossum, the founder of Python, is taking a permanent vacation as the leader of Python after being at the helm for almost 30 years. Guido has not been directly involved with Home Assistant. However he created Python and was part of the team that built asyncio, technologies that power the foundation of Home Assistant and what makes us so fast and robust. Under Guido’s guidance, the Python community has grown out to be very friendly and open. A great inspiration for us and other tech communities out there. Thanks for all you have done Guido!

Photo of Paulus, founder of Home Assistant, and Guido, founder of Python. Paulus & Guido at PyCon US 2018

All right, back to Home Assistant. The last release introduced a tech preview of the new user system. The initial preview still required creating users via the command line. In the last two weeks, we’ve worked hard on adding support for an onboarding wizard and a user management interface. A walkthrough of the new features can be found below. Thanks to @awarecan and @jeradM for all their work!

To try it out today, read these instructions. The user system is still in tech preview. We’ve moved fast to get where we are today. The next step is that we need to take a step back and look at the system as a whole to make sure it’s robust and ready for prime time.

We keep seeing great examples of UIs built with Lovelace. Follow us on social media (FB, Twitter) where we will keep sharing great examples.

To help our development and design teams, we’ve also introduced a Lovelace card gallery.

Thanks to @c727, @jeradM and @ciotlosm for leading this effort ❤️

I’m happy to announce that this release introduces support for Tuya thanks to @huangyupeng. Tuya produces cheap cloud-enabled devices that are sold under a wide variety of brand names across the globe, and now they work with Home Assistant too!

New Platforms

Release 0.74.1 - July 24

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →

0.73.2 - Security Incident

Today we are releasing 0.73.2 to fix a security incident. We’ve discovered that 9 months ago, with the release of Home Assistant 0.56, we misconfigured the SSL context that aiohttp used (PR). By trying to do the right thing (use an up to date cert store instead of relying on the system certs), we ended up doing the complete opposite: SSL verification was disabled for outgoing requests that were done using the shared aiohttp session. This is our fault, and not aiohttp’s faults. The impact of this is that certain integrations in Home Assistant have been susceptible to man in the middle attacks.

A man in the middle attack is when an attacker is able to inject itself between you and the server you’re communicating with, allowing it to read and alter the communication. The odds of this happening at home is very rare, yet we wanted to be transparent about this incident.

After research, the following integrations have been impacted. Although the odds are extremely small, we still suggest that if you use any of these integrations, to create new API keys or change your password.

Also impacted, but integrations are read only:

If you are running Home Assistant on a system with Python 3.4, we’ve created a new release 0.64.4b0 with the patch applied. We have made it available as a beta. To install the pre-release run python3 -m pip install homeassistant==0.64.4b0.

Read on →

New Hass.io images, based on HassOS

After 4 months of hard work, we are happy to announce our new images for Hass.io, based on HassOS. HassOS is a brand new operating system that we have created specifically for the purpose of running Hass.io. And yes, this supports the Raspberry Pi 3 B+!

What is new

We have built HassOS on top of the [Buildroot] framework. The focus of the system is to be a very small and highly efficient operating system to run Docker like a hypervisor. It has just enough software installed, to run a supervisor. We have also focused on security, there are, for example, no default passwords and we use [AppArmor] to protect the applications and containers on HassOS.

Key features:

  • Safe and secure updating with [Rauc] over USB or internet (OTA)
  • Uses an LZ4 compressed root filesystem and parts of the memory
  • Read-only root filesystem, designed to run on embedded systems
  • Dbus connected hosts services
  • Latest LT Linux kernel
  • Latest Docker-ce version
  • Fully supported NetworkManager
  • Bluetooth support using Bluez
  • Supports lot different hardware

Migration

The design of HassOS is different from ResinOS. Because of this, we can’t provide an OTA update from the old ResinOS system to the new HassOS based system.

You need to perform the following steps to upgrade:

  1. If you have installed the Bluetooth add-on, please remove it, since it is no longer required.
  2. Make a Hass.io snapshot of your current system and download it to your computer.
  3. Download the latest [Hass.io stable][installation] version.
  4. Flash the downloaded Hass.io image with [balenaEtcher] to your SD card.
  5. Raspberry Pi: In case you have modified the config.txt (in the boot partition), you will also need to apply these changes to HassOS. Do NOT simply copy the file from your old setup into HassOS! Apply those changes manually!
  6. If you use a custom network configuration or have configured SSH development access, you need to create a configuration [USB stick]. Copy the resin-sample into the network folder on a USB stick and insert it into your device.
  7. Take the freshly flashed SD card with HassOS and place it into your device, and boot it by turning it on.
  8. Copy the snapshot into the host with the SSH or Samba add-on.
  9. Restore your snapshot via the Hass.io panel.
  10. Done!

Future

HassOS is a wonderful base system and allows us to start working on integrating all kinds of amazing features into Hass.io (and bring them to the UI as well). For example, we are planning on bringing network and Bluetooth configuration possibilities into the UI. The goal is a full featured hub system that allows anybody to use Home Assistant.

The Hass.io API is extensive, and we are going to adopt more of its features into Home Assistant as well. For example, sensors that allows you to monitor the system usage of an add-on or even Home Assistant itself.

A big shout out to all people who donated money for us to buy hardware! Thank you! We have already started on making HassOS compatible with all kinds of hardware and are currently aiming to release support for new devices every 7-14 days and keeping this up until we support all major IoT boards.

Feel free to jump into the project and help us to improve the documentation or other tasks that are going to help us moving forward.

[Rauc]: Safe and Secure Updating [Buildroot]: https://buildroot.org/ [AppArmor]: https://gitlab.com/apparmor/apparmor/wikis/home/ [USB stick]: https://github.com/home-assistant/hassos/blob/rel-1/Documentation/configuration.md#automatic [installation]: /hassio/installation/ [balenaEtcher]: https://www.balena.io/etcher


0.73: Preview version new user system, Rachio cloud push and Lovelace goes wild

Today we’re releasing Home Assistant 0.73. First, let’s talk security. Home Assistant has a lot of power. It can control all devices in your house and know what you’re up to. That’s why securing it is very important. It’s absolutely wrong to connect your instance unsecured to the internet and hope no one will find it. All ports on all computers are regularly scanned by bad actors. Please read our guidelines thoroughly and follow them.

In the meanwhile, we’re also working hard on the new authentication system. A preview version is included in this release, more info on our developer blog.

This release also includes a TON of love for the new Lovelace UI. Yes, it’s still experimental but daaang, it’s already so awesome that you should probably just go ahead and try it out. Thanks to all the devs who have jumped on this: @c727, @ciotlosm and @jeradM.

We don’t have time to go through all the changes in this release, but @ciotlosm has been keeping a very detailed changelog. I’ll just leave this screenshot by @arsaboo of the new picture-elements card and the Lovelace configuration:

Screenshot of a floorplan with sensor info and light/camera controls overlayed. The new picture elements card.

And last but not least, @Klikini has upgraded Rachio support from cloud polling to cloud push! Now you’ll be able to get instantly notified of changes to your sprinklers. NICE!

New Platforms

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →

0.72: Lovelace UI, KIWI Doorlocks, Wireless Tags, Insteon X10.

I am super excited about this release as it brings some great examples of how we are refining the system to become more customizable and, at the same time, user friendly. The first thing that I am really excited about is a new experimental user interface that we call Lovelace. Check this awesome rundown of all the features by @ciotlosm. The TL;DR: a faster, more customizable and more extensible UI with the same look and feel as the old one.

Be aware, this is experimental, so things will change. However, we felt like we didn’t want to keep this away from you any longer. Check the Lovelace UI docs on how to get started. Make sure to share your creations!

Thanks to all the people that have been hanging out in the #beta channel on Discord helping development, finding and squashing bugs and making suggestions. Especially thanks to @c727 for all his development work and @arsaboo for being the first guinea pig.

Example user interface created using Lovelace. Example user interface created using Lovelace ([source](https://gist.github.com/ciotlosm/9508388876edf92c4c1f3579e740fbd5#file-ui-lovelace-yaml))

Another change is that Nest, Sonos and Cast will now have to be configured using a config entry. Config entries can be created via the integrations page in the config panel. This is a concept that we have been developing for a couple of months now and it’s our goal to eventually use this as the way to configure all components.

Screenshot of a browser showing a dialog to link a Nest account to Home Assistant. Screenshot of the Nest config entry.

And as if this releases even needs more cool stuff, the Insteon integration now supports X10 thanks to @teharris1. It was a frequent requested feature from the Insteon community.

And finally, we’ll be extending the open beta for Home Assistant Cloud until the first of September.

Enjoy this release and have a good weekend all!

New Platforms

Release 0.72.1 - June 25

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

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 →