Blog

Hass.io 2018

We noticed that there is some confusion in the community about how Hass.io relates to Home Assistant and what impact the upcoming Hass.io changes will have. We will try to clarify it all in this blog post.

What is Hass.io

Hass.io is a complete solution to run Home Assistant, by the authors of Home Assistant. The goal of Hass.io is to provide an easy to use and secure system, entirely managed from within the Home Assistant user interface.

Hass.io is a complete solution, which means that it comes with its own highly secure and optimized operating system, a supervisor application to maintain and configure that system, and of course Home Assistant itself.

When using Hass.io, you’ll see a new Hass.io panel inside the Home Assistant UI. From here users can configure the system and install Home Assistant updates with a simple click of a button. Users are also able to make snapshots of their system, making it easy to migrate all their configuration to a new system or restore their system to a previous state.

We wanted to be able to provide the convenience of seamless updates and configuration via the UI to other applications too, and so we introduced Hass.io add-ons. Any application can be packaged up as a Hass.io add-on, allowing any user to install and manage it easily. Since the introduction, we’ve seen an amazing growth in users sharing their add-ons with the community. It’s now possible to install an adblocker for your network, an MQTT broker or Tor with a single click.

Upcoming changes to Hass.io

We’ve introduced Hass.io last July. Since then, we’ve noticed some room for improvements in making Hass.io easier to use, lighter to maintain and easier to integrate with other host systems.

Note that the descriptions of upcoming improvements can get quite technical. Feel free to jump to the conclusion.

Automatic add-on configuration

Home Assistant has recently introduced configuration entries. We’re going to hook into this new functionality and allow add-ons to configure their related integration in Home Assistant automatically. For example, if a user installs the MQTT broker add-on, we will automatically set up Home Assistant to connect to it.

Host management

To control the host system, we currently use a custom service called HostControl. This allows the user to manage here host and restart/shutdown the computer from within Home Assistant. Instead of relying on our own system, we’re going to change to use D-Bus. D-Bus is a standardized mechanism for services and applications to communicate. Using a defined standard means that all parts of the host can now be remotely configured: sound, network, etc, etc. We will be extending the Hass.io panel in Home Assistant with controls to configure various parts of the host.

Hass.io OS

Hass.io is currently using a forked version of ResinOS as our operating system. ResinOS has been designed to run a minimal environment for Docker, simple over the air updates and connect to the ResinIO cloud. Our fork removed the ResinIO logic. Over time, ResinOS has been evolving but not in a direction that is aligned with our goals, resulting in the maintenance of our fork to take up a lot of time.

The ResinOS build system is based on the Yocto Project. This is a very powerful system, but also requires specific support for each hardware platform need to be specifically added and maintained (like each version of Raspberry Pi), which caused long build and development times for Hass.io.

All these factors made us decide to build our own, custom, operating system. We’re obviously not starting from scratch, but instead, are basing it off Buildroot as the foundation and use RAUC for over the air updates.

Some things that the new operating system will be able to do:

  • Easier to add support for new hardware.
  • Updating will be atomic and has a Fail-safe. If a system fails to boot after an OS upgrade, it will fallback, by booting the previous working version.
  • Updates are required to be securely signed by the Home Assistant team, adding a whole new level of security.
  • Compressing the root file system, making it faster on SD cards and slow IO-Interfaces.
  • Compressing parts of the memory so that we can store more information.

What Hass.io users should do to prepare for these updates

At this moment: Nothing.

The new Hass.io supervisor still supports the old ResinOS builds (our official downloads for Raspberry Pi and Intel NUC) and generic Linux installations. If you’re using a generic Linux installation on SUSE Linux or Ubuntu, you have to update your local AppArmor profile if you want to use the new functionality (instructions will be provided upon release).

Once our new installation images with HassioOS are released, you have to reflash your device once. You can do this without losing any configuration by using our Snapshot feature:

  • Create a snapshot of your current installation and download it to your PC.
  • Flash the SD card with the new Hass.io OS image.
  • Restore your snapshot.
  • Enjoy a new and improved Hass.io

0.67: Mastodon, Tahoma switches, Nanoleaf Aurora Light Panels

Release 0.67 is here! In case you missed the announcement from yesterday, Ubiquiti is paying me to write these release notes. Ooooooh yeah. With more time on my hands I’m going to be focusing on major improvements that we have been postponing for a while, first up will be a user system.

This release includes a security fix. The error log was accessible via the API without requiring authentication in previous releases. Although not a leak on its own, combined with a faulty component that would log sensitive information to the error log could lead to that being exposed (we don’t know of any component that does this). Thanks to Matt Hamilton for disclosing this issue to us.

New Platforms

Release 0.67.1 - April 17

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 →

Home Assistant 🤝 Ubiquiti Networks

TL;DR: Ubiquiti Networks has hired Paulus Schoutsen, the founder of Home Assistant, to support Home Assistant’s goals of making Home Assistant easier to configure for users, improving the integration with device makers and making it easier to create, maintain and evolve integrations.

Home Assistant is an open source project that thus far has been run by people in their spare time. In the last four and a half years it has grown from just me building a tiny framework with a handful of integrations to having our own operating system, over a 1000 integrations, superb performance, contributions by over 900 people, and our main Docker image has been pulled over 10 million times!

Observing this growth and passionate community, Ubiquiti Networks approached us.

Ubiquiti Networks currently focuses on 3 main technologies: high-capacity distributed Internet access, unified information technology, and next-gen consumer electronics for home and personal use. Their enterprise quality combined with their affordability has made them very popular among our users. They also share another passion of ours: trying to avoid clouds. Take for example their UniFi Video IP surveillance solution: it is a completely local hosted solution.

They recognize great potential in Home Assistant becoming the defacto platform for the home: fast, open source and local. They also want to deepen the integration of Ubiquiti Networks products in Home Assistant and may even support hosting Home Assistant instances on their hardware.

And so we have agreed that I (Paulus, founder Home Assistant) will join Ubiquiti Networks as a full time employee to focus on growing Home Assistant. I’ll now be able to devote my full energy to making Home Assistant easier to configure for users, improving the integration with device makers and making it easier to create, maintain and evolve integrations.

Ubiquiti Networks will not acquire any ownership of Home Assistant. We will remain an independent and open source project, just improving faster than ever with the support of Ubiquiti Networks.

I’m very excited about this opportunity and 2018 will be a really really great year for Home Assistant!

Photo of Paulus, the founder of Home Assistant, standing in front of a Ubiquiti Networks logo wearing a Home Assistant t-shirt. Paulus Schoutsen, founder of Home Assistant, at the NYC Ubiquiti office.


0.66: VeSync switches, HomematicIP, and a group cover.

This is the first release with our new release schedule. During the extra week we had a total of 4 beta releases with a total of 26 fixes. So this should be the most stable release yet!

It’s also a release that is full of goodies. 80 people contributed over 223 fixes, improvements and new integrations during the last 2 weeks of this release 😎 I want to highlight the work of two people who are doing an amazing job: @NovapaX has been doing a great job triaging and fixing weird quirks and bugs in the frontend. And I want to give a shout out to @armills who has enabled backend translations. This means that a bunch of things that did not have translations yet, will now soon be translatable. We’re planning some cool things with this!

A quick note if you are using Philips Hue and a Hue custom component: it will no longer work due to the internal changes to the Hue platform. Remove the custom component to ensure that your Hue lights keep working.

New Platforms

Release 0.66.1 - April 1

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 →

Using Fedora Atomic with Home Assistant

The Hackerspace Eastermundigen is often my real-world playground for Home Assistant-related topics which sometimes more belong in the industrial automation area than in a home. Also, it gives me access to devices which I don’t have like 3D printers, laser cutters, connected power strips and a like. In the past the local Home Assistant instance there was running on an old CubieBoard2 with Fedora ARM. It was one of several systems which were running 24/7. To reduce the electricity costs we decided to consolidate the physical systems to only two. One for storage and one for all other services.

Read on →

Updated release schedule

So this weekend we’re going to shake things a little up. Instead of releasing a new version today, we’ve released a beta version of the new version: 0.66.0.beta0. After a week of being in beta, the version will be promoted to be the new stable release. While the beta is live, we will accept contributions on the dev branch for the next version as usual.

Diagram showing the updates release cycle containing a week extra time before release. Diagram of the new release schedule

The goal is to create a more stable first release without the need for a quick follow up hot fix. So if you want to be able to access the new features faster but don’t mind the risk of running into the occasional bug, get yourself on the beta channel today:

  • Hass.io users will be able to enable the dev channel in the system settings.
  • For Docker users, the beta’s will be published under the rc tag.
  • Beta’s are also published to PyPi. Because it is a beta release, it will not be installed by Pip unless explictely specified in the install command: pip3 install --pre --upgrade homeassistant.

The documentation for the beta version can be found at https://rc.home-assistant.io/.

If you find issues with either the code or the docs of the pre-release, please open an issue in the appropriate place or, even better, submit a pull request to fix it.


0.65: Rename entities, new filter sensor, UpCloud and Channels

Release 0.65 has arrived and oh boy, is it awesome. First off, in case you have missed the previous release notes and announcements: Starting with this release, Home Assistant has dropped support for Python 3.4. The minimum supported version is now Python 3.5.3. If you are on Hass.io or Docker, you’ll automatically be running the latest and greatest. If you’re on an older Hassbian installation or did your own Linux setup you’ll need to upgrade to at least Python 3.5.3.

Naming entities

With the introduction of the entity registry in 0.63, Home Assistant is making sure that the same devices always receive the same entity IDs. This release is taking it a step further by allowing users to change the name of a device from the frontend. Changing the name will be instantly applied and overrides whatever name the device is given by the integration. If you want to switch back to the name from the integration, set the name to blank.

This feature is, just like the entity registry, only available for integrations that provide unique IDs for their entities. Adding this to each integration is still a work in progress.

Screencap of interaction with the UI to override the name of a light. The new entity registry settings page in action.

Filter sensor

The filter sensor is a new 2nd order sensor by @dgomes: it will consume data from a sensor entity and apply filters to it. For the initial implementation it comes with Low-pass, Outlier and Throttle filters. Expect more to be added in the future.

sensor:
  - platform: filter
    name: "filtered realistic humidity"
    entity_id: sensor.realistic_humidity
    filters:
      - filter: outlier
        window_size: 4
        radius: 4.0
      - filter: lowpass
        time_constant: 10
        precision: 2

Chart showing a humidity sensor with a lot of spikes and a smooth graph produced by the new filter sensor. Graph showing both the input sensor and the output of the filter sensor.

Light Group

We have had some discussion lately and realized that our current group component is very limiting. Extending it would probably lead to more confusion so we’ve decided to take a new approach: groups that are designed to be part of a specific component. The first one in this series comes at the hand of @OttoWinter: the group light (docs).

The group light creates a single light inside Home Assistant that is representing a group of lights. All commands will be forwarded and the state is a combination of all the lights.

light:
  - platform: group
    name: Cool Light Group
    entities:
      - light.amazing_light
      - light.foobar
      - light.sun

HomeKit

HomeKit got some more upgrades. We’ve added support for temperature sensors in Fahrenheit, alarm systems, switches and thermostats. Just a few releases more and we should be able to cover it all.

Optional words for the Conversation component

The conversation component has always been a great introduction to controlling your house by voice. There is no hotword detection or powerful language engine behind it, but it gives a great intro to what is possible. Starting with this release, it will get a little bit more powerful with the introduction of optional words. To mark a word optional, wrap it in square brackets: Change the light to [the color] {color}.

# Example configuration.yaml entry
conversation:
  intents:
    LivingRoomTemperature:
     - What is the temperature in the living room
     - What is [the] living room temperature

intent_script:
  LivingRoomTemperature:
    speech:
      text: It is currently  degrees in the living room.

Screenshot of the frontend with the conversation panel open. Have conversations with Home Assistant via the conversation component.

New Platforms

Release 0.65.1 - March 10

Release 0.65.2 - March 10

Release 0.65.3 - March 11

Release 0.65.4 - March 12

Release 0.65.5 - March 14

Release 0.65.6 - March 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.64: Over 1000 integrations! New: HomeKit, BMW, August.

🎉 1000 integrations, 1000 integrations, 1000 integrations! 🎉

That’s right, Home Assistant 0.64 is here! In case you have missed our latest Cloud update, the Home Assistant Alexa skill is now live in all regions and we’re working with Google in getting the Smart Home skill for Google Assistant approved. Exciting times!

In the meanwhile, some great new integrations have landed, including yet another car 🚗 This time it’s BMW.

This is going to be the last release that supports Python 3.4. Starting with the next release, the minimum version required will be Python 3.5.3. Learn more here.

HomeKit

Native HomeKit support has arrived! Thanks to @cdce8p It is now possible to expose some devices over HomeKit to allow control via Siri and other things speaking the HomeKit protocol. Initial support has been added for temperature sensors and cover devices. Expect more devices to be added soon.

Check the HomeKit docs

Hass.io UI update

Some of you already noticed that your Hass.io panel looks a bit different since this morning: @pvizeli pressed the red green button and the new UI got live. The Hass.io team (@frenck @pvizeli @ryanm101) is doing a great job in adding new features (like partial or encrypted snapshots) to the Hass.io backend and fixing bugs. However, those features where only added to the command line tools but not to the frontend.

That’s where @c727 and @ciotlosm jumped in. They made new features accessible via the frontend and improved the overall navigation.

We know that some features are still missing or broken, we are fixing this right now! Check this issue first before you report any issues related to the Hass.io panel, please.

Chart.js

The frontend is now rendering the graphs and charts using Chart.js thanks to the hard work by @fanthos. This means that you can now render all the charts without being connected to the internet!

August integration

Major new integration by @snjoetw: August locks and door bells! Lock and unlock from Home Assistant and detect when your doorbell is rung or senses motion. Awesome!

Cast bug fixes

@OttoWinter has crushed a bunch of bugs for our ChromeCast integration. Including that nasy Cast group discovery issue! He is working on some more improvements that should arrive soon, stay tuned. Awesome work Otto!

New Platforms

Release 0.64.1 - February 27

Release 0.64.2 - March 1

Release 0.64.3 - March 2

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 →

Cloud Update

We’re happy to announce that the Home Assistant skill is now available in Canada, UK, Germany, India and Australia! Check it out in the Amazon Alexa Skill store.

In the meanwhile, we have also been working on the Google Assistant integration. We passed the first verification and are now working with Google to do the final verification. Stay tuned!

In less than 2 weeks the open beta is about to expire. We’re still working on setting up the company and payment system so we can start accepting payments. Until we do, Home Assistant Cloud will remain free.


0.63: Entity Registry, SQL Sensor, Mercedes cars

Date set for dropping Python 3.4 support

As announced in October, we’re going to drop Python 3.4 support in 2018. We’ve now decided that in two releases, 0.65, the minimum Python version that will be supported is bumped to 3.5.3. This won’t impact most users. You are already fine if you’re using Hass.io, the latest Debian stable (Stretch) or a derivative of that (Raspbian, Ubuntu).

Entity Registry

This release introduces the entity registry. The entity registry allows integrations to reserve entity IDs. This means that we’ll automatically grant an entity ID to a device. It’s reserved so that no other device will ever get that entity ID. It also means that as a user, you will be able to customize the entity IDs for these devices.

For an integration to leverage the entity registry, it needs to define a unique ID for each of their entities. A unique ID is something that we can uniquely identify the device and that is not configurable. So a serial number and mac address are ok, IP addresses or names are not.

Examples of integrations that have unique IDs defined in this release are Z-Wave, Hue, Nest, LIFX, Sonos, Apple TV.

To update the entity ID that will be assigned to your device, update <config>/entity_registry.yaml and restart Home Assistant (reloading on the fly is planned for a future release).

The entity registry will assign an entity ID the first time that a device is seen. This should be the same entity ID as it always was before. If this is not the case, update the registration entity to change it back to the old entity ID.

We’re planning a lot of cool stuff around the entity registry. Stay tuned!

New Platforms

Release 0.63.1 - February 12

Release 0.63.2 - February 14

Release 0.63.3 - February 17

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 →