Home Assistant Review

Note:  This is an on-going review of Home Assistant and I will be updating this page over the coming months as I progress our installation and review.

Home Assistant is open-source smart home controller software and one of the most popular pieces of software of its type. I have previously looked at it many years ago but didn't see enough to divert us from our development of our own Home Control System.

I decided to revisit it though, to see if it has progressed as quickly as our own smart home controller and to see what I could learn from installing it and configuring it. This review will be a step-by-step view of the installation and set up process, along with our thoughts, insight and learning from going through this process.

Initial Thinking

Raspberry Pi

I am a big fan of the Raspberry Pi, ever since it first came out. Over the years I have bought just about every single version and currently own more than 10 of them. It's really quick to get one up and running and I actually do all our smart home software development and testing on a RPi 3. I don't run our current @smartest_home on one, simply because I wanted a large solid-state hard disk.

Z-Wave

I have experimented with a RaZberry on a Raspberry Pi before.

In 2010, I installed a Vera Lite< controller and used it for many years as a dumb Z-Wave gateway. I upgrade it to a Vera Plus in 2016 and continue to use it as a dumb Z-Wave gateway. It's OK but not amazingly reliable and is the least reliable part of our contextual smart home.

Our hope is that direct control of a USB Z-Wave stick using Home Assistant will provide better reliability.

Installation

I am installing on the Raspberry Pi 4 Model B with 4MB of RAM as recommended on the getting started page. It is a bit of a worry that it requires so much compute power. I can easily run our own Home Control System on the first version of the Raspberry Pi and this results in <10% processor load.

A 32GB or bigger SD card is recommended and also one that is Application Performance Class 2 (A2). I bought a SanDisk Extreme 64GB card for £10.99.

Question:  What exactly is Hass.io?
Up to this point it hadn't been explained but, it is explained in a bit of detail here. In summary, Hass.io is a combination of Home Assistant and tools which allows one to run it easily on a Raspberry Pi without setting up an operating system first.

In an attempt to make things easier to understand, on 29th January 2020, it was announced that they would be Changing the Home Assistant Brand. They must have read my mind. It is fair to say that the renaming approach used has been criticised though because it re-uses a previously used name for something else and this is bound to be confusing.

I downloaded Hass.io. The 32-bit version is recommended. After a bit of research it was clear the 64-bit version is currently a "bit experimental" and there are some things that don't work, the GPIO being one of them.

The instructions say to flash the downloaded image to an SD card using balenaEtcher. I typically use Win32 Disk Imager to do this, so I stuck with the software I know and had installed. It worked fine.

First Boot Up

On first boot, it took a little while to update and then the RPi just sat there. I was expecting a little bit more to be honest, given that I have just installed a new operating system.

Question:  This immediately raises the question about what accounts have been created on the RPi and are they locked down? What are the default passwords?
More on this later.

Initial Configuration

The system has to be configured using a web interface. The web interface can be found at http://192.168.1.252:8123/onboarding.html but, you have to discover the right IP address to use for your machine. In our case our contextual smart home sent us this in a notification, as soon as it spotted this new device on our home network.

The next step involves creating a new HA account, by setting up a user ID and password. HA also asks where you live to enable some location based features, such as sunrise and sunset based automations. It can estimate this for you at the click of a button, using a web service to look up your rough location. You also set the units to be used.

The next step reverts back to 'technical speak' - "Devices and services are represented in Home Assistant as integrations". Why?

I have a Philips Hue hub installed in our home a some Philips Hue bulbs, so I tried to configure this.

Philips Hue Bridge

The instructions said to press the button on the Philips Hue Bridge, to pair it. This initially didn't work but it did on the second attempt. I'm not sure if this times out but my bridge is in the loft, so it took a while to gain access and start the pairing process. It found all the lamps connected to the bridge.

The interface wanted us to assign an 'area' to each bulb. I assumed this meant a room or zone. This created some confusion because my contextual smart home uses a nested zone model and one of our bulbs is a test bulb in our 'house' zone and the others are in specific rooms. To keep things simple for now, I went with the most obvious approach and added an area called 'House', 'Study', 'Conservatory', etc. where they didn't already exist.

With this step completed, I landed on the Overview page. This gave me a few concerns:

Advanced Configuration

Warning:  This is where I've got to so far. In the next few days, I'm going to be looking at the wider set of HA features, and more in-depth configuration.

Areas

Straight way, I can see that HA doesn't support the concept of nested zones :-( This is one of the basic capabilities of the intelligent smart home in my view. It's a simple concept but makes powerful automation just so much easier to achieve.

The Good Bits

I am compiling this list as I go:

The Bad Bits

I am compiling this list as I go:

Home Assistant Companion 2.0

There is an open-source for HA and we are also testing this. The key benefits of this appear to be around location tracking and notifications. Installing the app, required us to authenticate is and then the HA overview screen got a lot more complicated!

More on this soon ...

Z-Wave

After a bit more background reading, I surmised that:

Learning So Far

The first challenge when looking to use Home Assistant is that the install process is full of technical jargon and terminology that simply won't mean much to a lot of people. Despite having 30+ years of experience as an IT professional, there are steps and terminology used that meant little to us. You have to do the background reading.

Like a lot of current smart home controllers, HA exposes a lot of the underlying technology and in a lot of detail. This was one of the reasons why I developed our own Home Control System, to enable technology abstraction so that anyone could easily understand it and configure it to do really powerful things. The more I get into HA, the more complex and messy the implementation looks. It has all the classic symptoms of being designed by committee :-(

From the HA Facebook Group it is clear that updates can break existing configuration and functionality. This is really not good!

Questions

A bunch of questions we have yet to find answers to or have found answers and they might be useful:

Examples

In this section I'm going to show specific examples of how a particular smart home feature is implemented in HA and then show how I've implemented it in my own smart home controller. The first example I'm going to use is occupancy.

Specific Requests

If there is anything you want me to specifically test or even some hardware interoperability you want me to test out, let me know and I will have a look. If it involves some new or specific hardware, then you will have to supply it for testing though.