IPv6 and Home Assistant don’t mix

For many months the Alexa Media Player, HomeKit and Google Nest integrations on my Home Assistant instance would just randomly stop working, and no amount of restarting, cache clearing or re-authenticating these integrations would bring them back to life.

I’d also have constant issues with the Home app on my iOS/Mac devices showing “No Response” for devices that are still reachable through their original vendor apps.

When nothing else worked, I’d typically resort to the nuclear option of uninstalling then reinstalling the integration. But this is a huge pain in the ass, especially you have a lot of meticulously crafted automations or external triggers that depend on specific integration entity names.

But in my recent troubleshooting adventures, I accidentally stumbled across this terse comment on the GitHub issues page for the Google Home HACS integration, and as it turns out, the simple solution was to disable IPv6 on my local network!

Like a miracle, after disabling IPv6 on my Home Assistant management VLAN and IoT VLAN in OPNsense (I didn’t have to disable IPv6 on the WAN interface or in my Firewall rules, either), all of the aforementioned integrations started working immediately!

So while it’s usually always DNS that causes pesky networking issues, I’m now going to add IPv6 as the next thing to always check on my troubleshooting checklists. For home networks, I’m hard pressed to think of any good reason why you’d need to have it enabled in the first place, unless you’re a super nerdy homelabber who wants to learn how it works.

Addendum: As it turns out, you do need IPv6 if you are using Thread in your smart home network. Sigh.