The best voice assistant with Home Assistant is... Siri?
Which one of the 3 most popular voice assistants is the best one in a open source, privacy focused, Home Assistant setup?
I know what most users who are doing their home automation using open source software like Home Assistant are thinking reading that title, but hear me out.
Home automation, especially with open source software, is a topic that has a lot of areas where people disagree what the "best" thing is simply through the ability for everyone to do things the way they like them, from IoT protocols zigbee vs zwave, to reverse proxies, because at the end of the day everyone has different motivations and use-cases for their setup.
This blog post is no different - it's an opinionated piece based on my personal goals/preferences/opinions. So I think it's important to provide you with the information about my setup, and for you to understand my goals and use-cases and evaluate how well they fit in with yours.
tl;dr: While Siri is not the smartest voice assistant overall in the world, it is strongly competitive in the areas of home automation. And with increasing privacy and offline voice recognition focus from Apple, as well as HomeKit working locally, Siri seems to be the best voice assistant to be used with privacy focused local-first Home Assistant setups, despite being somewhat of a closed garden itself.
My setup
My whole home automation setup revolves around Home Assistant. It's the central piece that ties everything together. I prefer open source solutions, such as ESPHome, but at the same time I have no problem using "best tool for the job". So while I did build my own temperature and humidity setups with various sensors, and ESPHome, I prefer xiaomi temperature sensors.
That being said, everything that I have MUST run locally even for extended periods of time without any issues. If it does connect to the internet, it must be open source. If it connects to internet, but isn't open source, it must also run without internet - for example my Roborock vacuum that's still not quite rootable.
I try to automate things as much as possible, to avoid having to click buttons or anything. But at the same time not everything can be automated, in which case I want to be able to quickly say commands and not even open an app to do it.
Voice assistants unfortunately still all depend on the internet, so they don't quite fit in with the setup that I want to have but the benefits of it outweigh the cons.
Which brings me to a list of available voice assistants, all of which I have.
Google Home
I bought Google Home when it wasn't even available in my country, right after the launch, by importing it from US.
Google home is by far the smartest of the bunch. It understands speech better than any other, talking with it feels like a conversation. One main gripe I have with it is the wake word. It feels like chanting advertisement (which it is) slogans in my own apartment. I absolutely hate this.
For home automation the voice recognition is an advantage, but it being smart is not super useful.
Local control of devices, without exposing them to google is tricky at best, and I could never quite get it working properly. So everything goes over internet and google.
Google devices probably collect the most data out of all, and Google is probably better capable of matching various data points you leave on the internet to your google account. So, Google home is probably the smartest and most privacy invading, with little benefit in the context of home automation.
Amazon Echo/Alexa
This is the one I was using the most until now. I have amazon echo in every room.
I have also deployed my own skill to communicate with home assistant, so the privacy aspect is a bit better than Google Home.
But... Alexa is stupid. It requires sometimes very specific syntax to execute home automation command. It's useless as general voice assistant, which doesn't really bother me.
The room context sometimes works, sometimes doesn't, for me. Amazon is also very snoopy. Amazon devices are almost always at the top of most blocked requests in my DNS blocker.
I'm not really sure what else to say for Amazon Echo. It works fine most of the time as long as you follow a specific command syntax. It doesn't work locally with devices.
It's... adequate for Home Assistant usage.
Open source
I am considering writing a separate post on comparing options here, but in summary they are not well developed enough for day to day usage. They often require ideal scenarios to properly recognize the commands. In my limited testing I have not found anything that is worth mentioning in this category. Especially not in the context of having one in every room.
Snips was pretty neat, but then Sonos killed it.
Siri
Now we come to my latest addition, Homepod Mini.
Biggest downside to Siri is that it requires SOME investment in the Apple ecosystem. Configuring Homekit is not possible via web or similar. So while the apparent costs of Homepod seem like $99, it is way more if you don't have any macOS/iOS devices.
Apple ecosystem is a super locked down. Super restrictive. It's Apple's way or the highway.
That being said, Apple's way so far is more privacy focused than Amazon's and Google's. That's gonna last as long as they can milk the privacy aspect to charge higher prices and lock people in their ecosystem more.
Personally I'm fine with this. Yes, I do have iOS, iPadOS, macOS, watchOS, and even tvOS devices. But I don't feel like I'm too locked into it. I don't use iCloud for photos, I don't use it for contact syncing, I don't rely on Apple log in feature, I have zero homekit-only devices, I don't pay for AppleTV+, I don't use keychain for credentials, etc.
So far I've dismissed Siri for home automation purely on the idea that it's not good enough for it, that it doesn't understand anything, and that it can't do anything. But I decided to put a bit effort into it, and see if those things are true or not for myself.
First step was homekit integration which was easy. I enabled integration within Home Assistant, picked devices I wanted, customized them a bit such as some names. Scanned the QR code with Camera app on my iPhone, and that's it. I've had a custom template fan be a few times out of sync with homekit, but this is about the only issue I've had with it. Homekit has one huge advantage over other devices, in that it talks to devices locally - nothing needs to be exposed or communicated over the internet.
Now to Siri, specifically Siri on Homepod Mini: It works. Everything works out of the box. The room specific controls (saying "Turn on the lights" in a room turns on lights only in that room) work just fine out of the box. Cameras integrate perfectly. Voice recognition, not understanding, is same or slightly better than Echo devices.
Siri understanding what you mean is sometimes not perfect. I've started playing Iris FM radio very often when trying to turn on my Philips Iris lamp. But that's so far the only edge case I have discovered.
The speaker is better if you want to play music, as this may be important to some people.
One thing that's missing is TTS. While possible to somehow do with Apple TV, it's still not really easily done as with Google or Alexa.
The new iOS will have more local Siri control, which is a HUGE advantage over other devices. Even if it's only on iPhone for now and limited, it's the step in the right direction.
Siri as a general voice assistant that can answer various questions is something you can forget. Even if she understands you, the knowledge base is just horrible and you'll most likely not get the answer you were expecting.
Conclusion
If you want to have a device to tell it to turn something on/off, toggle something in Home Assistant, while respecting your privacy then Homepod Mini may be the best investment at the moment.
It's far from perfect, and there's a lot of areas where it could be improved, especially as a general voice assistant. But for home voice assistant that communicates with your devices locally, doesn't spy you as much as others, and does what you want it's pretty much the best option even given some Apple ecosystem investment requirement.