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:

  • Adding support for new hardware will be easy. Creating new builds for, e.g., a new Raspberry Pi model should be a matter of days, not months.
  • 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

This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2018/04/22/hassio-2018/
13 Likes

Awesome work Pascal!

Looking forward to atomic updates! Awesome work guys!

Thanks for the update, I’m excited for the step forward! I recently reflashed my rPi and wanted to restore a snapshot, but couldn’t find documentation on that. Is there documentation for restoring from a snapshot that has been downloaded off the system?

Would there be any way for the HASS.io team to consider providing the end user an option of leveraging the latest OZWCP as an alternative? Currently, that is a major limitation for those of us that have linear zwave garage controls. We have to decide whether to use HASS.io without garage control or the standard HA with garage control minus all the greatness of HASS.io. This thread shows just how many people want this and have an interest. Link:Linear NGDZ00-4 Garage Door

Regarding D-Bus, would this allow the alternate functions of the Raspberry Pi GPIO port to be enabled?

e.g. enabling i2C so a BH1750 Lux sensor could be connected?

Thanks for the update. Any plan to upgrade templates to jinja 2.10, that contains namespaces that could address variable scoping issue? Or make some trick to allow changiing variables from within the loop? Is woudl be cool to use for loop to iterate through sensors, I can take actions directly from within the loop, but if I need to make decision based on the result of the overall scan, no chance - one has to copy&paste the check for each sensor manualy. That is really stupid.
Also, is there a way to trigger google assistant action from within hassio? It is cool to use dialogflow to script the interaction through intents, but it would be cool if I can call “ok google” from hassio - if google allows that.
Thanks.

You’re setting big goals and so far are very successful at achieving them!

There are three issues I see with current Hass.io:

  • It’s very, very slow. Unbearable slow on RPi 1. Initial start-up takes way more than an hour (with no progress indicator at all!), reboot takes 10-15m, and the latency in automation tasks is up to several seconds. It’s way worse than Hassbian. I had to move to RPi 3, and PRi1’s won’t work even on smaller setups unless I move to Hassbian.
  • Second, no progress indication at all. I don’t know if there’s a serial console, but if I plug it into a monitor I get nothing but a full-screen logo. I don’t know if it boots or not, if it’s fine or it has an error and halted. ResinOS activity blink codes only help a little.
  • Third, unreliability. It literally ceased to boot twice, and both times I had to reinstall the thing completely. I won’t get any feedback or management until Hass loads completely to Web UI

I guess it could be improved with a few tweaks of current codebase, but if you’re designing thing from scratch, please try to address these issues

Adding support for RPI foundation Touchscreen would be awesome. The one thing keeping me from using hassio was lack of direct usage of peripherals such as touchscreen to have all in one device. I’m not sure if there’s a wish list for the updated version, but if it will be, I would love to add this to the list.

With the very slight exception on point 2, I wouldn’t consider any of those to be issues.

  1. Think the Pi Zero W as a lowest common denominator is more than generous given HAs complexity and even then it seems daft to run something so network dependant over wireless. Given the price of RPis, making a 3 the minimum wouldn’t seem unreasonable.

  2. Hass.io is designed to be headless so programming that for one time use seems excessive. It’s only complete noobs who don’t read the instructions that get caught by the long wait and it is quite normal for anything Pi related.

  3. Hass.io is ridiculously reliable, I’ve been using it since the day it was officially launched and it has never fallen over, in fact the only time I pulled the power on it was to move the Pi to a different location. Yes, I have made boobs in the code occasionally which have needed a restart but by definition they are self inflicted and easily and instantly correctable. Regarding feedback whilst booting, you can just watch it load in a terminal window same as anything else.

Hass.io is easily the greatest improvement the devs have made to HA, it’s opened up the whole thing for codelly challenged users and us do all sorts of things I thought were beyond me when hassbian was the only option. It’s virtually foolproof and 95% of issues people have with the core program are down to not reading the documentation as is the sad trend nowadays.

1 Like

Ignoring the “noobs” jab that was completely unnecessary, most people don’t expect their electronics (or appliances) to take lots of minutes to boot - and even during that short boot time, there is at least a logo or “Booting…” message, indicating life. Dismissing this simply because Hass.io is typically headless misses an opportunity to make things better - especially for “noobs”, and for the future when HA / Hass.io matures and the number of non-tech people outnumber us tech’ies.

I’m an engineer, so I understand you can’t serve up a webpage while Linux is booting, but at the earliest possible moment after the OS boots (but before HA itself is up), perhaps a HTML page with the logo and “Booting…” page could be served temporarily. And going one step further, if a fatal error is discovered during boot, the page could be updated with the error message - or maybe it simply displays the log file. Now that’s a real improvement.

1 Like

I had rpi1 and I never able to make it run hass.io. With 4 different SD card and more than 20 flash, it never come up to the point where the hass.io ui load. I waited for hour and even days. There is no where to troubleshoot.
Each time, it boot. Load the hass.io page on the hdmi and nothing else beyond that. I can see my router assign ip address but it is not pingable after few minutes.
May small change to show error in log file or something would helps.

PS: my rpi1 now just served as mqtt server and lamp. Hoping to use it as backup incase rpi3 failed out of sudden.

I guess the while idea of hass.io development is bringing the smart home to the “noobs” that can bring together the devices and make them work in a perfect combination without spending hours of coding, so “noobs” mention is not really proper. And as Home Assistant becomes more and more popular due to its principles and great community, there will be more “noobs” on the way.

I’d like to give it a shot to create custom builds of hass.io for Odroid devices (C0, C1, XU4 (armhf), as well as C2, N1 (arm64)). Will there be recepies or guides available for buildroot on how to build your own image for your own hardware?
Many of the packages will be the same, but the bootloader, kernel, maybe filesystem layout might differ. Also, some packages relating to GPIO will be different.

No, it really wasn’t unnecessary, but wasn’t aimed directly at you. If you follow these forums you’ll see dozens of posts that say the same things over and over and it’s often covered in the docs.

What’s more disturbing is after they’ve messed it up because of that, rather than use a bit of common sense and do the reading they should’ve done they post a question on here, they don’t even search here to see if it’s been answered before. Every user forum across the net is full of posts like that, hence my comment on the state of things.

Now, if they have done their reading and still don’t get it that’s entirely fair and I happily dive in to help if no one’s done it already but pure laziness is just a bit rubbish :slight_smile:

2 Likes

I hope and pray the new OS have the same network manger capabilities. I have just got Resin to set-up with the RasPi wifi as a hotspot so I can connect all my automation devices to that so main router not involved.

2 Likes

Great News!
Will the new SD image install on an USB disk RPi3-boot, without needing to change the partions and point to the start partition in the file? Would be nice if this works out of the box, making even more people use this fantastic piece of software.

As a complete idiot noob I had a few issues installing hassio. Followed the instructions to the letter but I connected the hdmi to my laptop not a monitor or tv. This caused all manner of issues as I didn’t realise it wouldn’t work and it isn’t mentioned in the docs. I thought the install was failing even though I waited the stated 20mins etc.

Only after what I thought were several failed attempts did I think to try it on a monitor. Worked perfectly as described in the docs however caused a series of other issues as a result. Eventually had to wipe the card and start again.

I do think the instructions for install are clear. It says it takes at least 20 minutes, but like I say nowhere have I found documents to say don’t connect to a laptop and I never would have thought to have searched for that as the problem. So probably would have started one of the many noob having trouble installing hassio threads which makes @Bobby_Nobble roll his eyes so much.

Yes I agree the docs are great but they are not perfect and sometimes I have spent hours trawling through this forum searching for solutions. I can see why some people are tempted to simply ask. I am just a stubborn old … and refuse to be beaten.

Because your laptop HDMI is output only? That’s likely to be one of those things that most feel they shouldn’t even have to explain…exactly how far do you expect the level of detail to go? What is a good point at which it’s too much explanation?

1 Like

My point wasn’t that the information should have been in the documentation, but that sometimes especially for noobs there is a lot to learn and focus on and its easy to miss the simple, small or even obvious. It can be incredibly frustrating when you cant see the obvious and I cant blame people for jumping to the forum for a quick helping hand.

1 Like