My steps to success for Hass.io on Intel NUC

Hi there. I struggled with this as it does not seem well documented so here is what I did to get it to work after a day and six failed attempts:

Hardware:

  • Intel NUC Kit-DN2820FYKH (Circa 2013)
  • 16GB USB Thumb Drive
  • 60GB Patriot SSD

EDIT May 2020. NVMe drives are now supported with the Dev version. Updated instructions are here as the downloaded HassOS NUC file is NOT AN INSTALLER, it’s a drive image. You need to now either remove the SSD/HDD and image it directly or use the instructions in the aforementioned thread and use a Live Linux Distro to image the downloaded gz file using Linux commands. If you can, remove the drive as that is so much easier.

  1. Ensure your NUC is running the latest BIOS. F2 on boot to explore setup and find version. Download .bio file from Intel and use F7 on boot to update BIOS from USB drive.

  2. Once updated, go back into the BIOS and choose F9 to set to factory defaults then F10 to save and exit.

  3. Format the SSD to NTFS (may not be required but after many attempts, I did that anyway).

  4. Using Etcher, burn the NUC Hass.io image to the USB drive.

  5. If you want to use WiFi, you’ll need to edit file: /system-connections/resin-sample on the USB drive based on the example here https://docs.resin.io/deployment/network/2.x/#wifi-setup.

  6. Insert the the USB drive into your NUC and turn it on.

  7. All going well, it should come up with a black screen saying Booting to 'flash’. After a few splashes of Linux code, it should then present you with Hass.io image but with no text like this.

  8. Leave the system alone until the NUC turns itself off (<3m). It’s writing the required files to the SSD during this phase.

  9. Once off, remove the USB key and turn the NUC back on. All going well it should say something like Booting to ‘boot’.

  10. After a few seconds, it should come up with the Hass.io image but this time with the standard text shown below. Wait at least 20m and you should be good to go.

Lastly, in order to get SAMBA working, you’ll have to figure out what the name of your WLAN or ETH adapter is as eth0 and wlan0 are not valid for the NUC. Simply remove eth0 from the ‘interface’ line, save, restart samba and check the logs.

{
  "workgroup": "WORKGROUP",
  "name": "hassioNUC",
  "guest": false,
  "map": {
    "config": true,
    "addons": true,
    "ssl": false,
    "share": true,
    "backup": true
  },
  "username": "username",
  "password": "password",
  "interface": ""
}

You should see something like this:

Copyright Andrew Tridgell and the Samba Team 1992-2017
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
added interface wlp2s0 ip=10.0.1.200 bcast=10.0.1.255 netmask=255.255.255.0
added interface enp3s0 ip=10.0.1.226 bcast=10.0.1.255 netmask=255.255.255.0
added interface docker0 ip=172.17.0.1 bcast=172.17.255.255 netmask=255.255.0.0
added interface hassio ip=172.30.32.1 bcast=172.30.33.255 netmask=255.255.254.0

So from above, my Ethernet adapter is enp3s0 and the wlan wlp2s0. Pop one of those in your interface line thus "interface": "enp3s0". Many thank to @albertlt for that fix!

P.S I can confirm that the following works with the Aeon Labs Z-Stick too!

zwave:
  usb_path: /dev/ttyACM0

I’m pleased to say that even on this older hardware, the reboot times (<30s) as well as logbook and history access are significantly faster than the Pi3 I came from. Awesome! Now just for bluetooth support please. :hugs:

22 Likes

Just an FYI: NTFS isn’t used by Resin-OS, so formatting it is a wasted step.

Yep, understood. The drive I got had an EFI boot sector though and not until I got rid of that could I get it to work. (??)

gotcha. So really you just needed to wipe the partitions off because of a previous OS install.

1 Like

Yes. Had to use Diskpart to do that even though I think the Hass.io install completely erases the drive anyway, I was going nuts trying to get it to work with GRUB errors and other weird Linux messages so I got desperate.

Well, I just wanted to make it clear for future readers, that formatting it to NTFS is just a wasted step.

Is there a reason you went with hassio on the NUC vs something more usable?

Thanks, agreed. Linux and I have a love/hate relationship. I’ve been using Hass.io now on Pi3 since its inception and like the add-on infrastructure and how easy it is to reboot, restart etc. Although I have a synology RS814+ and could have gone with Docker, I had no joy setting up the Synology in the past and was unsure about support for my Z-stick so stayed away. Was also keen to use a piece of hardware that had integrated BLE only to find out it’s not supported on the NUC’s. :disappointed_relieved:

Why would you need BLE on a NUC that is plugged in all the time? It has full blown Bluetooth. :wink:

Mi-Flora plant sensors.

HUH?

You have bluetooth. The sensors are BLE, but your NUC has bluetooth. The NUC doesn’t need to support BLE, as it is plugged in all the time.

1 Like

Understood but BT is not supported in Hass.io on the NUC’s yet so I’m led to believe.

That’s just weird. It is supported on any Linux distro…

I went for installing hass on Ubuntu 17 desktop… Like this I’ll have the dashboard for appdaemon on the same machine. I even got my 10 inch touchscreen running by default install. Very neat. I’ll install hass in venv. After appdaemon and mqtt and all other stuff. Once it’s finished I’ll write a small feedback about it.I think going with a nuc is a very good improvement to use hass .

Good luck guys :wink:

Thanks for this!
I have had a DC3217BY NUC hanging around for a while not really doing much… and I’ve been wondering if it would be a good idea to switch to it for Hass instead of my Raspberry Pi 3.

I might give it a go and see how it goes. Thanks for the write up!

1 Like

I just setup hass on the nuc.well.3 seconds to start :wink: to be continued…

1 Like

Thanks for sharing! I did this same setup on my Nuc7i3 for a while, but ultimately went with Ubuntu on the NUC with the hass.io install scripts for hardware compat reasons as well. The Zigbee stick wasn’t well supported in ResinOS (Sounds like the Bluetooth issues you’re seeing).

The resinos deployment sample on their site, using the hass.io image, gave me the best results.

Hey people.
I finally had a go at getting Hass.io running on my NUC.
I have the DC3217BY (red one) and it doesnt have built in ethernet.
I have a USB ethernet adapter but it doesnt look like its seen by default.

Any idea how to add this? Couldnt see any mention of it in the Resin docs.

Thanks for sharing your NUC HassIo setup. Worked perfectly. Aeotec zWave works great too. Having issues with APC UPS over USB. Anyone have configured HassIo on NUC with APC UPS. If you could kindly share the setup and configuration please.

I followed your outstanding guide on my 2820 and it worked well when I had a HDD inside. But then I changed it to a SSD, to get rid of the spinning harddrive. And with the SSD, the HASSIO will not install. It’s booting from the USB installation stick, and the blue logo just keeps sitting there for many hours… nothing happens. No power down like you describe, and like it happened with the HDD.
Any ideas on how to carry on finding out why? There’s really little information on the NUC’s screen :slight_smile:

Sorry, no. I just rebuilt mine this morning using the latest 1.3 image as twice since I wrote the guide, the NUC has failed to boot after a restart as documented here ResinOS won't start | /dev does not exist · Issue #409 · home-assistant/supervisor · GitHub

I used F10 to select to boot from EFI USB and it loaded with the HA logo and then shut the NUC down after <2 minutes. I then powered on the NUC and it has booted now with the HA logo. I’m using a SSD too. I was running ResinOS 1.1 so I’m hoping my boot kernel errors were related to that. Won’t switch this to main system though until I’ve tested many reboots to make sure it’s going to be stable.

One thing is has taught me. DONT have your MQTT broker and your Home Assistant instance on the same device. If Hass.io (ResinOS) won’t boot, neither will your MQTT add-on so you can’t control anything and my MQTT dashboard does not work. I’ve moved my broker over to a Docker container on my Synology NAS and this is working a treat now.