I think I’ve fix this issue for me. If you use Adguard or some other non-conventional DNS server, this might be similar to your situation too.
Summary:
Having something like avahi-browse -ar
do discovery and spit out a list of found devices and their hostname+IP address, is completely separate from a tool like ping
or curl
or whatever that completes mostly standard DNS resolution to figure out the IP address to conga-drums.local
. Either if the container isn’t setup to look up mDNS first before calling a DNS server (which neither HA or the ESPHome containers do) or your DNS server doesn’t know about any .local
hostnames, regardless of if stuff in that container can find out about devices via avahi-browse -ar
, none of the other components part of that service will be able to resolve the IP address and talk with them.
My fix was to spin dnsmasq
back up on a different port than 53
with only offering up resolution for .local
domains, and then add that to the “Upstream DNS servers” list in Adguard (for specific domains). Once that was done all of my containers could resolve conga-drums.local
.
I’m going to paste this around to a few other related threads, because I burnt a whole day trying to figure this out. Hope this helps some of you.
I’ve got a lengthier post going into more details at the tail end of this HA bug.