Home Assistant in Mac M1

I’d also like to hear about anyone’s M1/HA journey. I’d buy Parallels if there’s value, but I’ve had good experience so far with UTM for other purposes. I’m interested in moving over my (fairly heavily customized) venv of Home Assistant core running on a RPi4 to something I can run a virtualized Home Assistant OS or Supervised on. Most of the customizations I can do without, or can continue to run some minimal command-line utilities via the pi and just have them report back to HA via mqtt or similar (I’m sure I can handle all of that stuff myself). I don’t have a z-wave or zigbee stick, but am also considering one as an option down the line (particularly z-wave as I’m running a smartthings hub for a couple z-wave devices and I’d like to remove it’s cloud dependence from my setup). Any insight, gotchas, or other words of wisdom appreciated! :slight_smile:

Just had a look at my setup:

  • Parallels
  • Debian VM (Supervised install) - 2 vCPU, 3072 MB
  • 2 other VMs - Hoobs. Utility VM (Portainer, InfluxDB, NUT)
  • Plex install direct on Mac
  • MAC M1 - up 14 days, 3:14, 2 users, load averages: 1.03 0.98 0.95
  • Debian VM - up 24 min, 1 user, load average: 0.10, 0.10, 0.11
  • 12 running add-ons
  • 20 UI configured integrations, plus numerous yaml based
  • Approx 1 minute for Debian VM startup to HA fully running.
  • 17 second from clicking restart to the point at which Home Assistant says it is started.

I think you have some of my journey above. It’s been a while since I removed my Smartthings hub, but my thoughts:

  • Smartthings in the most part hides the numerous errors that appear in the logs of HA, in particular around disconnects (which happens in the IoT world). I wish that HA Integrations handled these things better.
  • I get far more flexibility and control that I ever did on ST
  • Writing automation, of which I almost exclusively use Node-Red is far easier than writing in ST native or Webcore. ST just confused me as to where it sat, and you’d have to click multiple things to deploy, and look at another console to debug. Node-Red I click deploy and it is done, and debugging is in the interface.
  • Zwave components work fine - I only have a Fibaro motion Sensor and a Fibaro double switch connected via an Aeotec ZStick 5+
  • I personally wouldn’t be without the supervisor, because I can use a whole variety of add-ons without having to monitor them myself (well not too much). These include Texecom alarm, Ring (because the add-on is better than the native integration), ZWave and Grafana. Plus the more basic terminal/ssh, file editor, Node Red and Nginx Procy Manager. All managed from one interface.
  • I have Portainer on another VM, so that I can keep an eye on my various Docker environments

I use Parallels because I’ve used it for a long time, and it is way better that VirtualBox, plus it was early to releaser the M1. Not tried UTM. Key for me would be auto start-up, Aeotec pass-thru, and reliability of Snapshot (and snapshot deletion - Virtualbox caused me real pain with that).

1 Like

Thanks for timing the perf of your install. These are Amazing !

Well, a bit overspeced. Need to make one minor change, it also has Plex installed direct on Mac, but relatively light usage.

I restarted my VM yesterday and found I had this type of ZWave problem because Parallels had not passed the ZStick through to the VM. When I unplugged and replugged it Parallels prompted me as to where it should be connected (it was defaulted to Mac), so I told it to remember my Hassio VM. Hopefully this will solve any future reboots.

1 Like

To everyone using UTM: How are you configuring your networking? I need to be able to reach HomeAssistant from the Outside and also enable homeAssistant to access my wifi smart devices. I think I need to use the Bridge option but I don’t know how to configure it.

@RogTP Thank you for this! I came this info while trying to install HA OS in Parallels on my M1 Mac for testing. I tried converting pretty much every available HA VM image but parallels couldn’t open/convert it. I already have a parallels license so I wanted to stick with that as the host software.
I was a little rusty on my linux but was able to get through with your notes. I basically followed your instructions but changed any version to the latest versions available today.

Haven’t tested anything yet but everything is installed and I just logged in to HA. Thanks again!
maybe someday we’ll get an official image useable in Parallels on Arm Mac’s but for now this seems to be great.

I’ve been running my current install on an Intel NUC using VMWARE and HA OS, still need to fully understand the differences of running a supervised install such as this but this seems like the closest/best option to HA OS.

The major difference is that you need to maintain the base os rather than HA doing it for you. sudo apt update/upgrade is what you need.

1 Like

oh that makes sense, I just need to manage Debian itself, that’s easy and well worth it! Thanks for clarifying though!

i have stuck in " * Enabled remote access to Docker via Portainer" pls guide

Are you planning to use Portainer to manage your environment? If not, you don’t need to worry about that step.


Can do here, how to do it. LAN IP

Sorry, it’s really not clear what your question is.

If you want to connect via a separate Portainer instance, the the details are here - Add a Docker Standalone environment - Portainer Documentation

Thank you for the superb guide on installing HA in M1 Macs. I did the same (except the Portainer part) and it works! I had issues with Conbee II stick and had to change to a Sonoff stick, but after that I was able to get full integration working with Zigbee2MQTT.

Do you have any experience with Bluetooth availability?
I have some Switchbot devices that I would like to add. These use Bluetooth, but I was unable to setup them via HA UI, it simply fails. After some research I tried to check Bluetooth status on the virtual machine and docker container. I ticked the “share bluetooth devices with Linux” option in Parallels and restarted the VM. When I use bluetoothctllist there’s no controllers (both in DebianVM and homeassistant container). I can’t find BT controllers in PCI devices list either (lspci -k).
I think this is why Switchbot is failing to setup.

Any idea how should I solve this? Would like to avoid installing Gnome or KDE.

I haven’t used bluetooth in my setup. I did just try to enable Bluetooth and got the same as you. The Mac asks permission to pass it through, but Bluetooth/list ends up with an empty list. When I did sudo hciconfig hci0 up I got Can't init device hci0: Invalid request code (56) and also got this in the console File 'dut-mode' in directory 'hci0' already present. So I did a Google on that and a non-extensive search suggests ongoing linux problems for many years where this is a symptom.

I do wonder if you could get a bluetooth USB device and pass that through, therefore you are passing USB which we know works, rather than Bluetooth.

Yes, maybe using an external USB dongle will do the trick. I’m thinking about buying one to check.

For reference, I created a VM with Gnome just to see how UI handled that - it says Bluetooth is not found. It’s weird because Parallels state that Bluetooth should work for Linux with kernels 3.13+ and I have 5.10.
But it seems that other users struggle with the similar issues.
I also created a Windows VM and Bluetooth works fine there.

I just found this page in Parallels docs: Parallels Desktop Help - Connect Bluetooth Devices

The last sentence confirms this:

Besides Windows, you can connect Bluetooth devices to any guest operating systems (Linux or Mac OS X) that support USB Bluetooth adapters.

So yes, an external USB adapter is necessary to make this work.

Let us know how you get on. May have need for this at a later date for Thread.

Hi there! I confirm, Bluetooth 4.0 on USB works well. However I wasn’t able to add an Audio BTE 5.0 dongle, had to return it.

I bought a device that works well on Linux, so I recommend checking this link or search for linux-compatible dongles. I ended up with Sabrent USB Bluetooth 4.0 adapter.

After connecting it to my Mac Mini (using USB bridge also works well) and configuring Parallels to “mount” the device into my image, I was able to see it. I didn’t check the option “Share Bluetooth Devices with Linux”.

lsusb | grep -i bluetooth
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
sudo bluetoothctl list
Controller 00:1A:7D:XX:XX:XX debian [default]

Switchbot integration then worked and I was able to discover BTE devices.

1 Like