I’ve upgraded or swapped my Home Assistant hardware more times than I want to count. I want to share the experiences I’ve learned along the way when choosing hardware to run Home Assistant locally. I always try choose hardware is lower power and will take up limited space in my 9U Server Cabinet
In early 2018, I spent a massive amount of time researching what hardware and software I wanted to use for my smart home. My requirements were to use hardware that I could repurpose if needed and open source home automation software that was widely supported, low maintenance, low power and cheap. The Raspberry Pi 3 B+ was the clear winner at the time with Home Assistant meeting the other requirement.
|Raspberry Pi 3 B+||$38|
|Samsung PRO Endurance 64GB||$18|
I followed this guide to install Home Assistant on the Pi. It was fully manged and worked great as I didn’t want to have to manage an Operating System too.
By early 2019, I was looking for something new for multiple reasons:
- I had multiple drive failures due to high number of writes going to a basic MicroSD card that wasn’t designed to handle the number of Home Assistant writes for sensor data. I upgraded to the Samsung PRO Endurance 64GB MicroSD card which helped solve this problem.
- Any power interruptions could cause an SD Card to be unbootable. This can happen if a write is happening to the SD Card when the power loss occurs. I had to restore from a saved backup multiple times which is a real pain and not something you look forward to.
- Too many docker add-ons and integrations running was causing resource constraint issues where integrations were slow to respond. This was greatly magnified anytime an integration that required a network connection was offline due to configured long default timeout times in software and not handling backpressure.
- Rebooting for updates or integrations was painful.
- The acceptance factor was dropping.
When purchasing flash memory it’s highly recommended to choose storage that is optimized for throughput (reads/writes) as well as total number of writes (TBW).
One April morning I was super excited to see an announcement for a new Single Board Computer (SBC) that had
16GBof onboard Flash Memory. This solved the issue with power interruptions.
2GBof ram. Not only was it faster, but it was twice the amount of memory compared to the 3B+.
x86hardware which meant that it could out preform the Pi in every way as well as run add-ons like VS Code (which didn’t yet support ARM).
- Runs on only
4-15 watts TDP! Didn’t require too much more power to run.
|Reused Samsung PRO Endurance 64GB||-|
|3D Printed Case||-|
This was a clear winner and checked all my boxes but it has some definite pain points like:
- No fully managed Home Assistant Images from Home Assistant.
- The only “official” device images were bloated developer OS Images. I tend to only install clean images from Ubuntu or Microsoft directly so I know I’m getting a clean experience free from any “paid” vendor software. That’s not to say these images weren’t already clean. I just want to know what I’m using.
- No documentation on how to install Home Assistant on it other than this.
- Some Atomic Pi’s might have issues with it requiring a hard power off for reboot. I found this out when I helped get my neighbor up and running on an Atomic Pi.
- The primary
16GBdrive is an
eMMCwhich is known to have limited write lifespan. It’s fine for putting an operating system on but not something that is always writing to it. So you need to configure Home Assistant to write to the MicroSD card. It could be corrupted but it’s much much less likely to cause issues. In fact, I’ve had 5 more power outages than I’d like and I didn’t run into any issues.
- You have to know and maintain the linux install.
By early 2020, I was starting to hit some of the same issues I ran into with the Atomic Pi:
- The addons and integrations I was running was just too much for the hardware constraints. I currently have over 800 entities in my House and Garage with many sensors including Facial Recognition which is all happening locally. When backpressure occurred with networked entities on top of all of my local processing… I started to get the feeling that some of my Node-RED automations weren’t running.
- Software reboots for updates or adding new integrations takes too long.
With these issues I was on the lookout for a new SBC that had much more processing power while still had a low TDP power envelope. I knew I still had quite a bit of life in the Atomic PI but long term this was not the solution for me.
As for the Atomic Pi, I’m thinking of running some analysis services on it. It would be really cool to buy two more and make a Kubernetes cluster! What are your thoughts?
I started researching the next hardware that would replace the Atomic Pi. I wanted to take a look at all options since this next choice I would be living with for as long as possible.
I could have continued to use with the Atomic Pi for quite a while longer. Especially if time was taken to profile and optimize automations and integrations. As the saying goes
time is moneyand I think a lot of time would be sunk in just this.
Since the Atomic Pi came out there was a new Raspberry Pi 4 Model B released. I knew it would roughly be the same experience as the Atomic PI, but impossible to compare benchmarks due to different CPU architectures. From the benchmarks I’ve seen (not comparing apples to apples) I knew it would be close. It would still have the same storage issues as described previously and it might still have USB hardware issues with the Aeotec Z-Stick. I need something more powerful that will last for years to come.
I was looking for AMD to release a Ryzen 4000 series embedded device but this just doesn’t seem to be happening and it’s very unlikely one can build a super low powered tiny desktop SBC any time soon. The Embedded Ryzen series just don’t seem like it will cut it in processing power either which is a real shame.
This lead me to look at Intel’s latest 10th Generation Intel NUCs (
that were released in December of 2019. The processors are built on 14nm++,
are faster and also contain hardware security fixes make it worth considering
over previous generations (
NUC 8). One cravat is that the
actually has a slower graphics cards (GPU) than previous generations. This
should only affect you if you are wanting to use the integrated card for
heavy machine learning or other compute operation. I really had hoped it was a
bit more powerful but it will work.
The 10th Generation met all my needs (
6 CPU Cores @ 28 watt TDP) but I wanted
to be a bit more future proof with newer standards. I initially ruled out the
NUC 10 for these reasons and was waiting to upgrade to the
11th Generation Tiger Lake NUC
later this year. Tiger Lake is supposed to feature 10nm technology, faster DDR4
memory, PCI Express 4.0, HDMI 2.1 and a new much faster Xe GPU. Also, I know
that they are coming out with a version that will take any PCI Express x16
graphics card. This would be really awesome for machine learning locally. I’m
just cringing what the price tag and power consumption of such a rig would be.
TIP: Check out this awesome Intel NUC tracking spreadsheet if you want to stay up-to-date on what NUCs are available.
But this all changed, last week when there was an awesome deal on an
(NUC10i7FNH) kit with 64GB of memory included. A few of us were lucky enough
to snag it
at $605 USD.
|Intel NUC 10 Performance Kit (NUC10i7FNH)||$605|
|Samsung 970 EVO Plus 1TB - M.2 NVMe||$220|
|Samsung 860 EVO 1TB - SSD||$155|
Compared to the previous two solutions this is definitely the most expensive and a bit overkill. I went with two drives because I want the 860 EVO for backups as well as large data sets facial/image recognition. I could have saved $179 on by going with 500GB drives instead. I realize that I might not ever use this amount of storage, but I don’t want to run out. I can also use this memory in a future machine or some of it for network attached storage (NAS).
The current downsides of the NUC 10 are as follows:
- Higher power usage at 28 watt TDP (can peak much higher for short duration).
- Unable to use the Intel-NUC system images as they currently don’t support (as a result you have to maintain a linux install):
I should have spent some time trying to install it on my NUC to see if there were any other issues or if I’d run into driver issues but I was quite turned off by the lack of NVMe support and couldn’t get any answer on the official discord channel on secondary drives.
So far the NUC 10 has been working amazing and everything is so much faster and working much better than the previous hardware!
If you are looking for a SBC/small machine to run Home Assistant on I think there are some great options out there. Even though I choose an Intel NUC 10 series doesn’t mean you have to (I have some insane requirements). I’d recommend starting small if you are just starting out. Below are my recommendations (based on the machines I have used) if you are looking for a machine today.
NOTE: If you don’t care about power usage or form factor you can build a machine on the cheap. I would build based on the Ryzen 4000 series when it is released.
There are also many other small form factor machines available that are much cheaper. But the technology stack may contain hardware vulnerabilities, may no longer be supported, or may lack community adoption/support. So please keep this in mind when picking a solution.
Budget $75 USD
I really like the Raspberry Pi 4 Model B. But I cannot recommend it until the USB hardware issues with the Aeotec Z-Stick are worked out. Also, I’d only consider it if you have a power backup solution so you don’t run into any power failure issues described above. It has cases you can buy from any retailer and you can use the managed system images.
Due to the hardware issues that have been present since launch (some have been resolved), I can only recommend the Atomic Pi which is the same exact cost but features onboard flash storage and is x86 hardware. The main con being you have to install and manage linux.
|Samsung PRO Endurance 64GB||$18|
|3D Printed Case||-|
Budget $575 USD
I know there is a big price jump up from the previous tier. I just feel like it is not even worth considering a non quad core cheaper solution like the i3 NUC. In my experiences I’ve ran into to many issues with lack of processing power.
If you can’t hold out until the Tiger Lake NUC is released I’d buy an Intel NUC 10 with only a single SSD (as you can’t boot off the NVMe drive). You could then use the built in system image and let it manage everything for you.
As of writing this the NUC 10 (NUC10i5FNH) seems to have very limited stock so I listed the NUC 8.
|Intel NUC 8 Mainstream Kit (NUC8i5BEH)||$439|
|Corsair Memory Kit 16GB DDR4 2400MHz||$65|
|Samsung 860 EVO 250GB - SSD||$60|
Budget $850 USD
If you can’t hold out until the Tiger Lake NUC is released I’d buy an Intel NUC 10 with a backup drive. Here is a recent review by AnandTech
|Intel NUC 10 Performance Kit (NUC10i7FNH)||$605|
|Samsung 32GB DDR4 2666MHz RAM||$122|
|Samsung 970 EVO Plus 500GB - M.2 NVMe||$116|
You could bring the price down by swapping out different components but I feel this offers you the biggest bang for your buck and leaves you open to future upgrades via additional memory and storage.
Please stay tuned for my next guide on installing [Home Assistant on Ubuntu]](/blog/installing-home-assistant-on-ubuntu).