Although I settled on Apple HomeKit to run my smart home back in 2021, I have tried most of the major smart home platforms. And in 2020, one of those was Home Assistant, the free, open-source software that integrates with thousands of devices and services. Given my recent mini-rants on app-centric homes and Apple HomeKit not working well lately, I thought now is a good time to take a second look at Home Assistant. So I dusted off the same Raspberry Pi I used with Home Assistant three years ago and got to work.
Right away, I found that the current installation process is a little simpler than it was. That’s important because Home Assistant generally isn’t a buy-off-the-shelf solution. You can purchase Home Assistant hardware with the software pre-installed but most people self-install the software on a low cost Raspberry Pi. That’s what I did three years ago and I wanted to replicate the process today.
In 2021, I had to manually download the Home Assistant software and then use another piece of software called Balena Etcher to create a bootable microSD card. Now, Balena Etcher is still used but I didn’t have to download Home Assistant manually. Instead, there’s a way to point Balena Etcher to a URL so it can fetch the Home Assistant software. That’s a small change but it does make for a more seamless, simple process. Armed with my microSD card containing the Home Assistant platform, I connected my Raspberry Pi to a portable monitor. With the microSD card in the Pi, I powered the mini computer up and let it do its thing.
It turns out, that I didn’t even need to use a monitor this time around. There was nothing for me to configure: The Pi ran through the Home Assistant startup in a few minutes, and was up and running as a smart home server. This too was a better experience than my prior one. I just connected the Pi to one of my eero routers with an ethernet cable and I could remotely connect to it in my browser. Additionally, I see that I can set up Wi-Fi access for the Pi directly in Home Assistant. In 2021, I had to modify some text files in the software for this feature.
Once the Home Assistant hub was running and I could access it through the browser, there was some additional behind-the-scenes configuration time.
It didn’t require any input on my part and the system does say this part can take up to 20 minutes. And that’s about how long it took. After that, there’s some minimal user input required to name your home, create a local administrator account and your location. The latter isn’t required but it is useful because the Home Assistant dashboard can provide local weather information. It’s also good for the system to know your time zone for any sunrise or sunset information.
After that, I was greeted by all of the detected devices that Home Assistant found on its own. Those with green checkmarks are fully configured automatically, while the others require a little manual intervention. This is no different than with other smart home platforms. You typically have to link a device brand account or provide some credentials, or access permissions, to fully integrated such devices.
Right off the bat, I noticed that many more of my devices were automatically discovered by Home Assistant. This is a huge improvement and a time saver. I also noticed that my Thread network appeared here, which is excellent. However, while Home Assistant recognized the Thread radios in my Eero routers and my Apple products, it still can’t communicate with them. Looking at the Thread settings, I found that I can currently add an Open Thread router. I can’t yet use the Thread radios in the Eero or HomePod mini yet. I know Home Assistant is working on full Thread integration though, so that won’t be an issue in the future.
After some additional device configuration and the addition of a Home Assistant HomeKit Controller tool, I had a basic dashboard to control several of my smart home devices. The HomeKit Controller pulls in existing HomeKit devices. Note that I haven’t yet fully configured all of my devices; I just wanted to get started and then decide what I will or can integrate into Home Assistant for my testing.
Above you can see my initial dashboard. On the left side I have two cards for my Lutron lights and a Lutron fan switch. Even though Home Assistant found my Lutron products automatically, I didn’t configure them at that time. Instead, these were just pulled in when I integrated HomeKit with Home Assistant as these switches are connected to my Apple Home. As a test scenario, I’m impressed that the HomeKit integration took care of this for me.
I also have access to both a Google Nest Hub speaker here and my Sonos, which is the top card. My wife thought I was crazy when both speakers were playing different tunes in the same room during my testing. She’s not wrong, but hey: It’s my job!
While I don’t have every device in my home integrated, I have to say the response time when controlling devices from Home Assistant is lightning fast. I’d expect that though, since all of the devices are communicating over Wi-Fi and/or Bluetooth. The one current exception is my Lutron switches as they communicate through the Lutron bridge. That bridge receives commands through Home Assistant over Wi-Fi and “translates” them to use Lutron’s proprietary network protocol. The same will happen with my Philips Hue bulbs and bridge when I integrate those into Home Assistant. However, there’s simply no lag to be seen, no matter which devices I’m controlling in Home Assistant.
Overall, the setup process is improved and the software is as quick as ever when it comes to Home Assistant. The dashboard is still completely customizable and accessible via a browser if you prefer that interface over a mobile app. And clearly, the Home Assistant software has learned new tricks, such as the HomeKit Controller solution.
Moving forward, I’ll be adding more devices to see which work well, and which don’t. I’ll also be trying the HomeKit integration, which is different from the Controller. This integration adds non-HomeKit devices added in Home Assistant to the Apple Home app, which is a similar but different approach to what Homebridge provides. More to follow!