A Zigbee mesh does not become reliable because the map has a lot of green lines. It becomes reliable when a door sensor in the far bedroom, a motion sensor in the basement, and a button in the garage all deliver their events when the family expects them.
The most useful improvement is usually not a stronger coordinator. It is a powered Zigbee router in the right place. A smart plug, dedicated repeater, or powered switch can relay traffic around walls and appliances, but only if it can hear both sides of the route. This is the practical placement guide behind my best Zigbee devices for Home Assistant. It applies to both ZHA and Zigbee2MQTT.
Start With the Coordinator, Not the Dead Room
The coordinator is the root of the network. Put it in an open location, elevated if practical, and away from the Home Assistant host’s USB 3 ports, external SSDs, WiFi access points, and metal enclosures. A SONOFF Zigbee 3.0 Dongle Plus-E is perfectly capable of running a normal house, but a capable radio cannot compensate for being buried beside a noisy computer.
I use a short USB extension cable and treat the coordinator like an access point: it needs a clear place to listen. A basement rack is convenient for the server, but it may be a terrible radio location. If the house is tall or spread out, an Ethernet coordinator can be worth considering because it lets the radio move to a central floor. The network connection should be stable, and the coordinator should not sit inside the same rack as switching power supplies and hard drives.
Pairing a device beside the coordinator proves almost nothing about the final installation. I pair it where it will live, then test the actual event path. If a sensor works only when held next to the dongle, that is useful evidence that the route is missing, not evidence that the sensor is defective.
What Counts as a Router
Battery sensors are generally end devices. They sleep to preserve battery life and cannot forward messages for their neighbors. Mains-powered Zigbee products are the devices that usually extend the mesh: smart plugs, in-wall switches, powered bulbs, and dedicated repeaters.
I prefer a plug or switch that is well supported by the integration and useful in its own right. A Third Reality Zigbee smart plug can provide a router while also measuring or controlling a real load. A dedicated repeater is smaller, but it adds another device whose only job is forwarding traffic. That is reasonable in a hallway or stairwell where a plug would be awkward.
Not every powered device is a good router. Some bulbs have poor routing behavior, some vendor devices stop forwarding when turned off at the wall, and some older products have firmware bugs. Check support for the exact model in Zigbee2MQTT or ZHA before buying a box of them. The word Zigbee on the package is not a guarantee of a stable mesh.
A powered router must remain powered. A plug that somebody unplugs every night is not infrastructure. A smart bulb behind a wall switch that gets turned off is not infrastructure either. Put routing duties on outlets and switches the household will leave alone.
Draw the House as Hops
Do not think of Zigbee coverage as a circular WiFi bubble. Think of a chain of radio hops. The coordinator hears a nearby router. That router hears another router or end device. The route bends around walls, floors, and obstacles according to the radio environment.
I sketch the floor plan and mark the coordinator, known dead spots, and likely router outlets. Then I place the first router roughly halfway between the coordinator and the problem, with a little bias toward the stronger side. A router that is barely reachable from the coordinator is a weak bridge. A router in the same room as the coordinator does little for a distant garage.
For a two-story house, a stairwell or open landing is often better than a closet on either floor. For a basement, place a router near the stair opening or at the basement edge before adding another one at the far wall. For a detached garage, the route needs to cross the actual exterior wall. A router inside the house cannot magically relay through a metal-sided building.
The halfway point is only a starting point. Concrete, foil-backed insulation, ductwork, tile, refrigerators, and electrical panels all change the result. Place the router where it has a good path to the existing mesh and a good path toward the weak room.
Avoid the Places That Eat RF
Metal is the obvious problem. Do not mount a repeater inside a metal utility cabinet, behind a refrigerator, beside a breaker panel, or in a rack made of steel. Water also absorbs 2.4 GHz energy, so a router behind a large aquarium or beside a water heater is a poor experiment.
Appliances create both physical blockage and electrical noise. I keep routers away from microwave ovens, cordless phone bases, dense bundles of power supplies, and USB 3 storage. A router does not need to be in the middle of the room, but it should not be wedged behind the one appliance with the loudest motor and worst enclosure.
Do not hide a router behind a television just because the outlet is convenient. TVs, soundbars, and their cables create a crowded pocket of electronics. A nearby wall outlet with open space around it is usually the better choice.
The coordinator and routers also need separation from strong WiFi radios. Zigbee and WiFi share the 2.4 GHz band. My channel-planning guide explains how to choose channels, but placement still matters after the plan. A clean Zigbee channel cannot rescue a radio that is inches from a high-power access point.
Add Routers in an Order You Can Diagnose
Add one router, wait, and test. Zigbee networks do not instantly produce the final route table when a new device joins. Give the mesh time to discover the router and let battery devices report through it. In a busy house I wait several hours before changing another variable, and I do a full overnight check before calling the placement successful.
Start with the route that explains the failure. If the basement motion sensor is unreliable, add a router near the stairs or basement entry. If the garage is the problem, place one on the house side of the exterior wall and another in the garage only if the first cannot reach the sensor reliably. Do not scatter five plugs around the living room because one remote device is missing.
This is also why I avoid adding a new router during a coordinator migration or channel change. When the mesh improves, I want to know which action fixed it. A reliable installation is easier to maintain when its topology has a reason behind it.
Some networks need a powered router on each floor, while others need one at a specific wall. Floor count is a poor proxy for radio distance. A small ranch with a metal furnace room may need more help than a larger open two-story house. Let the events and route data guide the shopping list.
ZHA and Zigbee2MQTT Show Different Evidence
ZHA and Zigbee2MQTT expose different views of the same radio system. ZHA’s device and visualization pages can help identify neighbors and signal paths. Zigbee2MQTT offers map information and link metrics through its interface. I use these views to form a hypothesis, not as a scorecard.
Link quality is not a universal health number. It can vary by integration, coordinator, route, and moment. A device with a modest-looking value that delivers every event is more useful than a device with a beautiful value that misses button presses. Look for parent changes, repeated unavailable periods, failed interviews, and delayed reports.
After placing a router, test the end devices that motivated the change. Open the contact sensor ten times. Trigger the motion sensor at the far end of the room. Press the wall button from its normal mounting location. Record whether all events arrive and whether the device remains available overnight.
Do not force a battery sensor to use a particular router unless the integration and device support that operation reliably. Zigbee routing is dynamic. The goal is a set of good options, not a hand-managed path that breaks when a neighbor reselects its parent.
A Practical Room-by-Room Test
I use this sequence when commissioning a mesh:
- Record the coordinator location, channel, device count, and current failures.
- Confirm the coordinator is away from USB 3 devices and large metal objects.
- Add one known-good powered router at the planned midpoint.
- Confirm the router stays powered and remains joined after a restart.
- Trigger the weak battery device repeatedly from its normal location.
- Test the nearest devices too, because a new router should not destabilize existing routes.
- Leave the network alone overnight, then review availability and automation history.
For a contact sensor, I care about every open and close event. For a temperature sensor, I care about regular reports and whether the battery device disappears. For a motion sensor, I care about the first event after a quiet period as well as repeated motion. Different devices expose different failures.
If an automation still fails, separate radio delivery from automation logic. Look at the device history first. If the event reached Home Assistant but the light did not turn on, the mesh may be fine and the automation needs attention. If the event never arrived, keep investigating the route, placement, or interference.
When Another Router Is the Wrong Fix
A router cannot fix a dead coordinator, a failing USB cable, a bad firmware combination, or a device that is incompatible with the selected channel. It also cannot fix an automation that listens for the wrong entity. Check those possibilities before filling the house with repeaters.
If every device fails at once, inspect the coordinator and host before the room layout. If only devices near one access point fail, revisit WiFi overlap and USB noise. If one product family is unstable while others are fine, check its integration support and firmware. Mesh placement is powerful, but it is not a universal diagnosis.
I also do not replace a stable coordinator just because a newer dongle has a larger antenna. Placement, a clean USB connection, and a reasonable mesh usually matter more than chasing the newest radio. When a coordinator genuinely needs replacement, use the migration path and backup guidance in my Zigbee coordinator migration guide rather than rebuilding every device casually.
The Bottom Line
Place Zigbee routers where they bridge a real gap, not where an empty outlet happens to be. Keep the coordinator in open space, use known-good powered devices, route around metal and noisy electronics, and add one router at a time. Then judge the result by delivered events over a normal day, not by a map screenshot or a single link-quality number.
A reliable Zigbee mesh is deliberately boring. The right router in a stairwell or hallway can do more for Home Assistant than an expensive coordinator hidden in a server rack. Build the path the house needs, test it from the rooms where people use the sensors, and stop adding hardware once the events are dependable.