Smart devices seem good until you buy them and realize each needs a separate app to function and monitor. In my case, I have a few security cameras from one brand, and I intend to add a few Wi-Fi bulbs in some spots. Home Assistant was a perfect fit for this use case because it would let me connect and manage multiple devices, irrespective of brands, in a single dashboard. While there are multiple ways to use Home Assistant, including an old laptop, a VM, and more, I wanted to put my tiny Raspberry Pi Zero 2W to the test.
The idea was to load Home Assistant onto the Pi, connect it to my home network, and then use my phone or PC to access the dashboard. It would free me from using one app for each smart device brand, which is absolutely bonkers. Even the thought of countless app switches makes me anxious. I was skeptical because Zero 2W had few resources to spare, but the result surprised me. Without further ado, let's discuss the accomplishments and pain points of this SBC project.
5 Raspberry Pi Pico projects that cost under $10 but feel magical
These Raspberry Pi Pico projects are inexpensive and cool
Initial Hurdles
Picking the right version
Home Assistant is available in a variety of versions. You can use the official OS image, flash it onto a device or PC, and then get going. It's not a problem for Raspberry Pi 3, 4, or 5, but for my Zero 2W, there's no such official image available. I tracked down the supported image versions to 6.6, which included support for the original Pi Zero. Some users successfully flashed this image onto their Pi Zero, and I thought it could also work for my Zero 2W. I went with this because Home Assistant dropped support for Pi Zero in version 7.
I tried flashing version 6.6 of Home Assistant with Balena Etcher onto the SD card. But before doing that, I used the SD card copier utility to back up my Raspberry Pi OS installation on a USB drive. I added a network configuration file to help the Pi connect to the wireless network and then plugged the SD card back into the Pi.
I waited patiently, but the LED light on my Pi didn't glow even once, and it didn't boot the Home Assistant OS. I retired multiple times with several file modifications, but that proved ineffective. The next method I tried was using a Pi 3 B+ image, but the result was no different.
A beginner's guide to setting up Home Assistant
Home Assistant is one of the best ways to tame your smart home, and it's free and easy to set up.
Diet Pi to the rescue
A shimmer of hope
My chances of directly installing the Home Assistant OS on the Pi looked slim, so I switched my approach. Rather than directly installing it on the Pi, I went ahead with installing DietPi, a super-lightweight, non-GUI operating system. It proved to be the perfect candidate for this method because it supports Bookworm, the latest version of Debian. I flashed it onto the Pi without any problem and configured the wireless connection and the rest of the setup.
With everything up and running, it was time to install Home Assistant in DietPi. You can easily search for all the supported/available software for DietPi using the dietpi-software utility. I launched it, found and selected Home Assistant, and commenced the installation. Doing so creates a dedicated Python environment for Home Assistant, and it took a good amount of time to install, more than an hour.
After spending a long afternoon on this Home Assistant installation, I was happy that the service was up and running, and it was finally time to access the web dashboard. I checked my Pi's IP address, put it into the URL bar, followed by a colon and the 8123 port number, but the Home Assistant UI didn't load. Yikes! What did I do wrong?
10 best operating systems for Raspberry Pi 5
Unsure about which OS you should use with your Raspberry Pi 5? Here are ten operating systems worth running on the palm-sized system
Applying Final Touches
Patience is the key
Typing your device's IP address with the 8123 port should bring up the web UI. I rechecked the DietPi terminal and saw the connection status with the same WLAN IP. Even more confused, I launched htop to check if any Home Assistant-related processes were running, and I saw two of them drawing the most memory compared to other OS processes.
Then, I force-restated the Pi several times, checked for updates, and checked the services panel, but nothing seemed to work. During this, I noticed that the device was consuming bandwidth, indicating that something was happening behind the scenes.
I stayed away from the terminal for a few minutes and could finally access the web interface. So, if you cannot immediately access your DietPi Home Assistant device, wait for it to finish applying changes and do a couple of restarts before doing anything drastic. Use reinstalling as a last resort because it takes too much time. You can also use the built-in DietPi tools to check the installation folder.
Home Assistant's ready
Not all of it
After the initial account creation and configuration, you'll finally land on the overview tab. Here you'll see your router and a bunch of other things. I have two Xiaomi cameras, so I switched to the integrations section and noticed nothing related to the device. Then I added HACS, which opened doors to various Xiaomi plugins, including the one I needed. I could attach both to my camera to the dashboard and then control them.
Note that you need a GitHub account to integrate HACS with Home Assistant. It won't function without it. Initially, the granular settings and automation seemed too much, but I slowly became accustomed to them. Then, I thought of implementing remote access for my Home Assistant setup, and that's where I learned something upsetting.
Should you use Tailscale, Pangolin, ZeroTier, or NetBird to remotely access your home lab?
Which remote access tool is best for your home lab?
No add-ons support
It's the Core version
Tailscale is a useful add-on that enables remote access for Home Assistant. However, not every Home Assistant installation supports add-ons. My Raspberry Pi Zero 2W runs the Core version, which doesn't support add-ons. Only the Home Assistant OS version offers add-ons, which aren't officially available for the Raspberry Pi Zero 2W.
You could also use the Supervisor version to access add-ons, but installing that was a hurdle I couldn't overcome. I'm willing to take on that challenge in the future. However, the complete Home Assistant OS experience isn't possible for the Zero 2W.
10 of the best add-ons for Home Assistant
Boost the capabilities of your smart home with these amazing Home Assistant plugins
Performance
It's not much, but it's okay
Since I don't have many devices connected or a complicated automation setup, the Core version didn't eat up too many resources. A quick peek into the resource monitor showed around 65 percent memory usage on the Pi. It matched the digital hardware monitor integration I added to Home Assistant.
I didn't encounter any UI freezes or crashes, but I don't have too many devices integrated with the Home Assistant. Memory and CPU usage might increase as I add more integrations and automations. Still, the web UI loads instantly on my desktop and phone, and tweaking any device settings happens instantly. I couldn't pull up the camera feed because my Xiaomi cameras don't support RSTP.
Not the best pick
Raspberry Pi Zero 2W isn't officially supported, but I managed to get the Core version up and running. It's perfect for small setups, but without add-ons, you're leaving a lot on the table. Even basic stuff like remotely accessing your Home Assistant setup is out of scope. It was a nice experiment, but you must use capable hardware for the complete OS experience.
