TLDR: For HomeKit Device discovery, open your firewall for mDNS service (UDP port 5353). This should be noted in the HomeKit Device documentation as a prerequisite.
Ignore all the ranting below, unless you really want to see everything I tried before figuring this out.
I just installed an Ecobee Premium thermostat, and as I have no iOS devices I can’t do the Apple Homekit pairing/unpairing to somehow trigger the automatic HA pairing. I have searched and read just about every post on here about this, and can’t find any consistent answer other than essentially “pair it with iOS and then unpair it and it will magically show up” and am getting quite frustrated.
The thermostat is connected to my WiFi (manual entry directly on the thermostat screen), and HomeKit pairing is enabled via the settings menus on the thermostat. A QR code and 8 digit setup code number is displayed on the screen. The QR code just gives me “that app is not available” on my Android.
HA persistently insists when I try to add a HomeKit integration device “No unpaired devices could be found.” It doesn’t even hesitate, like it isn’t even trying. The message just comes up instantly. I can find no logs anywhere suggesting any check is occurring. Is there any way to force a scan?
HA 2025.4.1 on RHEL 9.5 on x86_64 hardware (not a VM) on the same local network as the thermostat. From linux, I can ping the thermostat’s IP address.
I was able to connect the thermostat via ecobee’s app on my phone, which also made it accessible through their website. Even though the HomeKit pairing option was still available (showing unpaired and letting me enable it), I disconnected the thermostat from my ecobee account, just in case. No luck.
(so, I had this written up to here and was still poking around but had just about given up for the evening, when I found this…)
I found one post on some other site that mentioned needing to allow port 5353 across their VLAN to get this working. And sure enough, I found that hass is listening in on port 5353 on my server. After enabling the mdns service (port 5353) in the firewall (and running to the other side of the house to re-enable pairing yet again), HA finally saw my thermostat! Why is this not mentioned anywhere?! At least, not for HomeKit. A quick search finds it mentioned as required for casting to Chromecast devices, which I haven’t got around to yet.
Anyway, I hope this helps someone in the future! Open the firewall for mDNS service.