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!
Having sayed with Home Assistant since 2019. I too appreciate the current, modern, easy system that it has become. I also look forward to the innovations yet to happen in a product fuelled by a community of collaboration rathere that a mindset of a sigle, proprietary vendor driven system. My setup is primarily Zwave for lighting, solving the challenges of cloud-based integrations but a few additions use wi-fi and cloud. I am never tempted to look around for an alternative to HA.
I love that Home Assistant can talk to my thread Eve devices with Matter through an apple TV as the thread hub without needing a thread radio itself. Hopefully soon, Apple, Amazon and Google will implement Thread 1.30 and their current thread hubs will form one thread network in the house.
Great story! I’ve been using HA in conjunction with Smartthings since 2020. During my long MLK weekend in January, I decided to go completely to HA and unplug my Smartthings hub for the first time sine 2016! So far it’s been great. There’s a learning curve for sure, but once you get passed that I think it’s the best thing we’ve got today,and it is rapidly getting better every single month. I’m now controlling devices in ways I could only dream of with Smartthings. I do subscribe to Nabu Casa ($65/yr) to make it simple to connect Alexa and Google assistant which helps support development and the continuous improvement.
Thank you for the article. My experience with the Home Kit Controller in Home Assistant is that it would only recognize a Home Kit device after the device was removed from Home Kit but still on the network. It sounds like Home Assistant just recognized your devices while still in Home Kit. Is that correct? Thanks!
I’ve been using HA for about 4-5 years building customized devices to control lights, garage doors, ancient radio shack home alarm system, and just recently, power/energy measuring and reporting devices for the “energy integration using ESPHome on ESP32 boards. My latest project is an automated seedling monitor that controls heating mats and grow lights. When I’m away, I can see if I set the alarm or closed the garage doors. It’s been challenging over the years, but the development community deserves a big round of thanks from their user base. It’s a great way to automate your home.
Everytime i try homeassisstant i become frustrated. I have no clue how to make plans for lighting and if the doorbell rings how to sent cam to telegram bot. If it gets dark, then the lights should turn on 45 minutes before sundown, when video starts playing, lights need to dim and change color and what not. I can easily add devices to hass, i can control them manually, but to automate everything is just not understandable. It all works now great, but im not using hass.