This post may contain affiliate links. As an Amazon Associate we earn from qualifying purchases. Disclosure.

When Home Assistant won't discover a device, the cause is almost always the network, not Home Assistant. Nine times out of ten it's mDNS not reaching across a subnet or VLAN. I've chased this exact problem more times than I'd like to admit, usually right after I "improved" my network. The good news: discovery problems follow a short list of causes, and once you know them, the fix takes minutes. Here's how to work through it.

Bottom line: Most Home Assistant discovery failures come down to mDNS not crossing network boundaries, access-point client isolation, or expecting auto-discovery from a device that needs manual setup (like Zigbee or Z-Wave). Work top-down: confirm the device is on the network, then check mDNS, then the integration. Home Assistant uses mDNS, SSDP, and other protocols to find devices automatically.

If you recently segmented your network, read our network segmentation guide first, because that's the most common trigger.

First: What Kind of Device Is It?

The discovery method depends entirely on the device type, so identify that before troubleshooting anything. Auto-discovery only applies to certain kinds of devices.

  • Wi-Fi devices (Chromecast, Sonos, ESPHome, many smart plugs): Found over mDNS or SSDP. These are the ones that "should just appear" and often don't.
  • Zigbee devices: Do NOT auto-discover. They must be paired to your coordinator through ZHA or Zigbee2MQTT first.
  • Z-Wave devices: Same, they're added through Z-Wave JS inclusion, not network discovery.
  • Cloud devices (some thermostats, vacuums): Added by configuring the integration with an account, not by network discovery.

This first step alone resolves a lot of confusion. If you're waiting for a Zigbee bulb to "appear" the way a Chromecast does, it never will. It needs pairing, covered in our connecting Zigbee devices guide.

Why mDNS Is the Usual Culprit

Home Assistant finds most Wi-Fi devices using mDNS, and mDNS is link-local, meaning it doesn't cross subnets or VLANs by default. So the moment Home Assistant and a device sit on different networks, auto-discovery silently stops. No error, just nothing appearing.

This catches people right after they add a guest network, a second access point, or a VLAN for IoT devices. The device works fine, it's online, but Home Assistant can't hear its mDNS announcements across the boundary. The fix is an mDNS reflector or repeater on your router (Avahi on OPNsense, the mDNS repeater on UniFi) that forwards those announcements between networks.

Ask yourself one question first: are Home Assistant and the device on the same subnet? If the answer is no, you've found your problem before touching anything else.

Step-by-Step: Working Through Discovery Failures

Troubleshoot top-down, from the network up to the integration, because fixing the wrong layer wastes time. Here's the order I use.

  • Confirm the device is online: Can you reach its IP from a laptop on the same network? Ping it. If it's not reachable, it's a device or Wi-Fi problem, not a Home Assistant one.
  • Check the subnet: Is the device on the same subnet as Home Assistant? If not, set up mDNS reflection or move it.
  • Check access-point isolation: Many routers have a "client isolation" or "AP isolation" toggle that blocks devices from seeing each other. Turn it off for your IoT network.
  • Restart discovery: In Home Assistant, go to Settings, Devices and Services, and use the three-dot menu to check for new devices, or restart the relevant integration.
  • Add it manually: If auto-discovery refuses, most integrations let you add the device by IP address directly. This bypasses discovery entirely.

That last fallback is underrated. When mDNS is being stubborn and you just need the device working, adding it by IP gets you running while you sort out the network properly.

What About Zigbee and Z-Wave Devices?

Zigbee and Z-Wave devices never appear through network discovery, because they're not on your IP network at all. They live on their own radio mesh and join through a deliberate pairing (inclusion) process at the coordinator. If a Zigbee device isn't showing up, the issue is pairing, not discovery.

Common Zigbee pairing failures include the device being too far from the coordinator, interference on the Zigbee channel overlapping a busy Wi-Fi channel, or the device needing a reset before it'll pair. Move it closer, put it into pairing mode, and watch the ZHA or Zigbee2MQTT log as you do. For coordinator choice and setup, our best Zigbee hubs guide covers the hardware side.

Z-Wave is similar: you start inclusion mode in Z-Wave JS, then trigger the device's inclusion, usually a button press. If it fails, factory-reset the device (exclusion, then inclusion) and try again within range.

When Discovery Worked Before and Suddenly Stopped

If devices were discovered fine and then vanished, something changed on the network, so retrace recent changes. A device that was working and disappeared is almost never a Home Assistant bug.

The usual suspects are a router firmware update that reset client isolation or multicast settings, a new mesh node that put the device on a different band or subnet, an IP address that changed because of a short DHCP lease, or IGMP snooping on a switch interfering with multicast. Assign static IPs (or DHCP reservations) to important devices so they don't wander, and check whether a recent network change flipped a setting.

I once lost half my devices after a router update silently re-enabled AP isolation. Ten minutes of confusion, one toggle to fix. Retracing the change is faster than rebuilding integrations.

Tools That Help You Diagnose Discovery

A few simple tools turn discovery guesswork into quick fixes, so reach for them before rebuilding anything. You don't need to be a network engineer to use them.

  • Ping and a phone app: From a laptop or a network-scanner app on your phone, confirm the device responds on the network you think it's on. Half of discovery problems are really "the device isn't where I assumed."
  • An mDNS browser: Apps like a Bonjour or service-discovery browser show which mDNS announcements are visible from a given device. If Home Assistant's host can't see the announcement, that's your answer.
  • Home Assistant logs: Settings, System, Logs. Filter for the integration name. ZHA and Zigbee2MQTT log every pairing attempt, which is gold when a Zigbee device won't join.
  • Your router's client list: Confirms the device's actual IP, subnet, and band, and reveals whether client isolation is hiding it.

The official Home Assistant network discovery documentation explains exactly which protocols (mDNS, SSDP, DHCP discovery) each integration uses, so you know what to look for. Cross-reference the device's integration page and you'll usually spot the missing piece in minutes.

Run these checks top to bottom and the right fix becomes obvious. Most discovery fixes are a single setting, not a rebuild, once you've found which layer is actually broken.

Frequently Asked Questions

Why is Home Assistant not finding my Wi-Fi device?

Almost always because mDNS isn't reaching it. Home Assistant discovers Wi-Fi devices over mDNS, which doesn't cross subnets or VLANs. Confirm the device is on the same subnet as Home Assistant, disable any access-point client isolation, and if they're on different networks, set up an mDNS reflector on your router.

Why don't my Zigbee devices auto-discover in Home Assistant?

They aren't supposed to. Zigbee devices join a radio mesh through your coordinator, not your IP network, so they must be paired through ZHA or Zigbee2MQTT first. If a Zigbee device isn't appearing, put it in pairing mode near the coordinator and watch the integration log, rather than waiting for network discovery.

How do I manually add a device Home Assistant won't discover?

Go to Settings, Devices and Services, Add Integration, pick the device's integration, and enter its IP address when prompted. Most integrations support manual configuration that bypasses auto-discovery entirely. Assigning the device a static IP or DHCP reservation first keeps it from disappearing again later.

Why did Home Assistant stop discovering devices after a network change?

A network change likely flipped a setting that breaks discovery: client isolation re-enabled, a device moved to a different subnet or band, IGMP snooping interfering with multicast, or an IP address changing. Retrace the recent change, re-disable AP isolation, and use DHCP reservations so important devices keep stable addresses.

The Short Version

Discovery problems are network problems. Confirm the device is online and on the same subnet as Home Assistant, kill any access-point isolation, and add an mDNS reflector if you run VLANs. For Zigbee and Z-Wave, stop waiting for discovery and pair the device at the coordinator instead. And when all else fails, add it manually by IP to get moving.

The frustrating part is how silent these failures are: no error, just nothing showing up. But the cause is nearly always one of the handful above, and most are a single toggle or a reflector setting away. For the wider setup that sits underneath all this, our best smart home hub guide covers choosing the controller and network gear that make discovery painless in the first place.