I just finished migrating my Home Assistant installation from a Raspberry pi to an Intel NUC and I thought I’d share my experience. All in all, it went well but there were a couple of pain points I’d like to have known in advance.
Here’s what I did. First, I prepared the NUC for installation. Rather than going bare metal, I installed proxmox because I plan on running other stuff on it as well. Proxmox installation was very straightforward, but figuring out how to install HA on it wasn’t, as I’ve never used proxmox before.
I first tried to use the HA image as a virtual installation medium, which did not work. I realized that, like with the RPi, it’s not an installer but a ready to use disk image. I found a nice guide on how to install HA on proxmox with a handy helper script to set everything up for you.
Now I had a new HA instance running, ready for initial setup. Time for the switchover:
- I made a new full backup on the Raspberry Pi, then shut it down.
- I reassigned the Home Assistant IP address to the VM in my router’s DHCP settings.
- I logged in to the new HA instance and uploaded the backup file using the restore from back option on the setup screen.
This is where HA still has a pain point. There is no progress bar or anything to let you know the state of the restoration process. It took quite a while until the web UI came back up (and I’m not sure which log file I should have been monitoring in the console) and once it finally did, the add-ons were stuck in a weird state where some of them appeared to be running but were still shown as stopped. HA core was operational already, including all Wifi based integrations. Zigbee2mqtt wasn’t up yet because I hadn’t yet passed through the zigbee stick.
After I had grown tired of waiting, I rebooted the VM and now the add-ons started up properly. All the settings were migrated, including Mosquitto’s state. Very nice!
The last things to fix were:
- Pass through the zigbee USB stick. I did this from the proxmox VM’s hardware tab: Add USB device, use USB vendor/device ID and selected the one that said serial port. Zigbee2mqtt started working after doing this.
- Pass through bluetooth. The NUC’s built-in bluetooth adapter was also visible as a USB device. There were only two devices in proxmox’s USB device dropdown: the zigbee stick and an unnamed device. The unnamed one was the bluetooth adapter. In HA devices, I removed the old RPI bluetooth device and added the new one and immediately started receiving updates from my Ruuvi Tags.
- Deleted RPi power supply check device
All in all, a fairly smooth migration, with the only bump on the road being the lack of progress reporting when restoring from backup. Would recommend. The NUC (A NUC11 with a Celeron N4505 processor) plus memory and NVME drive was only about twice as expensive as a RPi4 with an SD card but is a lot more powerful with a similar idle power consumption of around 6W.
First dopey question, what is a NUC? It’s probably a computer but? If so same’ish story here went from a Pi4 to a Lenovo Tiny PC (reconditioned from Amazon at 100 euros) then sold the raspberry for 65 euros 🤣 Far faster and better, installed Debian Bookworm, Docker and then did a new Mosquitto and HA supervisor installation. Far better 👍
NUC is a brand of mini PCs from Intel (or now Asus, I suppose.) I haven’t tried Lenovo mini PCs myself, but they fit the same niche.
Pretty much also my experience. I migrated HA stand-alone on a Pi4 to a VM on ProxMox (ThinkCenter M720) a couple weeks ago. The direct backup installation did not work so I had to create a new HA and then transfer the backup file over ssh to get it to run.
One thing I’m curious about: Do you measure the idle power consumption of your NUC and does it really drop down to 6W? Because with a Hypervisor installed I would assume that it never really goes into „idle“ hence the resources are constantly bound.
One thing I’m curious about: Do you measure the idle power consumption of your NUC and does it really drop down to 6W? Because with a Hypervisor installed I would assume that it never really goes into „idle“ hence the resources are constantly bound.
I used a power metering plug to measure the consumption and it showed around 6W when no VMs were running. I think it’s probably higher now with HA online, as my UPS is showing a 5W increase over when the Pi was plugged in. (The UPS always shows a higher number than the power meter though, so I’m not sure which one to trust.) If the new figures are correct, the NUC appears to be using 10 watts with HA on. I’ll have to see if setting the CPU frequency governor to powersaving mode has any effect.
Yes I did a very similar thing, except I went bare metal on the nuc for simplicity of updates and used the backup to Google drive addon to upload and then restore from
I considered bare metal HASSOS too and would have gone that route if HA were the only thing I was planning on running. Another option would have been to install a linux distro and run HA in docker, but having HA in its own separate VM means I don’t need to worry about accidentally breaking it when I’m messing around with other services.
Now, having written this, I realize that there would have been some real advantages in running HA in docker on a bare metal OS. For one, it would have made running Frigate easier, as its documentation recommends against running it in a VM.
I started with it on proxmox and ran into the same issues with frigate. Though I also have a separate NAS machine running unraid that happily runs my other containers to play around with. I have enough controlled by HA that it was worth dedicating it to one whole machine to run it in the most supported way by the ha devs.