The predictive Zigbee heatmap for your real floorplan. Upload the plan, place your coordinator and mains-powered routers, and see the coverage map + contour computed from 2.4 GHz physics — in your browser. No signup, no download.
Why this exists
Home Assistant’s Zigbee network map and Zigbee2MQTT’s map are diagnostic: they visualize the link state of a mesh that already exists — which device talks to which router, and how strong each link reads. That is genuinely useful for debugging. But they can’t answer the question you have before spending money: “if I put a smart plug here, will the sensor in the garage stay connected?” This planner is predictive — it computes coverage from your floorplan and wall materials before a single device is paired.
Diagnostic — HA / Zigbee2MQTT map
Predictive — this planner
The two are complementary: plan here first, then verify the built mesh with your hub’s map. We wrote up the debugging side in Why your Zigbee mesh has dead spots.
How it works
PNG or JPG of your home. Calibrate the scale from one known wall length so distances are real metres.
Click-drag walls by material (drywall, glass, brick, concrete). Drop your coordinator, then add mains-powered routers — smart plugs, bulbs — from the preset library.
The heatmap and coverage contour render live. Drag devices to close gaps, spot the rooms a plug can’t reach, and export the map as a PNG.
The physics, honestly
Zigbee is IEEE 802.15.4 radio at 2.4 GHz — the same band as WiFi, but at a fraction of the transmit power. In the open it carries surprisingly far; indoors, through walls, the realistic figure is 10–20 metres. Every wall on the path takes a bite, and the material decides how big a bite:
| Wall material | Loss at 2.4 GHz | Notes |
|---|---|---|
| Drywall / partition | 3 dB | Single plasterboard sheet on metal or timber studs. |
| Glass | 2 dB | Standard glazing. Low-E coatings attenuate more. |
| Brick | 8 dB | Solid clay; hollow brick behaves similarly. |
| Concrete | 15 dB | Poured / block walls. Rebar pushes this higher. |
The planner applies these losses with the COST-231 multi-wall model: for every point on your floorplan it traces the line to each Zigbee device, counts every wall that line crosses, and subtracts the per-material attenuation from the link budget. Two brick walls between a router and a sensor cost 16 dB; swap one for glass and it drops to 10. It’s the same propagation engine as our WiFi planner, retuned for Zigbee’s radio parameters, with the same honest ±6–10 dB accuracy envelope. The full methodology — and what the model deliberately doesn’t simulate — is documented on the accuracy page.
This is the single most misunderstood fact in Zigbee planning. A Zigbee mesh is not extended by adding more devices — it is extended by adding more routers, and only devices with permanent mains power act as routers. Adding ten battery sensors to a far room extends nothing; one smart plug in the hallway between might fix all ten.
Routes & repeats (mains-powered)
End devices only (battery)
In the editor, routers contribute to the coverage map and end devices don’t — so the plan you see reflects the mesh you’d actually get, not a wishful picture where every sensor magically repeats.
Coexistence
Zigbee channels 11–26 live inside the same 2.4 GHz band as WiFi channels 1, 6, and 11. If your Zigbee network sits under a busy WiFi channel, links get noisy and devices drop even when signal strength looks fine. Four Zigbee channels fall in the gaps: 15, 20, 25, and 26 are the safe picks. You set the channel once, on the coordinator.
Practical tip: set the Zigbee channel on the
coordinator before pairing your devices — in Zigbee2MQTT it’s
channel under the
advanced settings, in ZHA it’s chosen at radio setup. Changing channel on an established
network can force re-pairing. Channels 15, 20, and 25 are the most broadly compatible; 26 avoids
WiFi entirely, but a few devices support it poorly due to regional transmit-power limits.
Hardware
Whether your mesh hangs off a Zigbee2MQTT dongle, a Home Assistant stick, or a vendor hub, drop it in from a preset — or enter radio parameters by hand for anything not listed:
No lock-in, no accounts: a Hue Bridge in the living room and an Aqara hub upstairs plan just as cleanly as a homelab SLZB-06 on the network rack.
Free tier: 5 devices, 1 floor, watermarked PNG export — enough for most apartments. Pro (€9 project pass or €29/year) lifts the cap, adds multi-floor, and removes the watermark.
See pricingFAQ
Typically 10–20 metres through interior walls. Zigbee (IEEE 802.15.4) runs at 2.4 GHz with far lower transmit power than WiFi, so walls matter enormously: drywall costs about 3 dB per sheet, glass 2 dB, brick 8 dB, and concrete around 15 dB. Two concrete walls can end a link that would comfortably cross an open-plan floor. That is exactly why Zigbee is a mesh — mains-powered routers relay traffic hop by hop — and why placement, not raw range, decides whether your network works.
There is no separate "Zigbee repeater" product category — any mains-powered Zigbee device already is the repeater. Smart plugs, mains-powered bulbs, and wired sensors join the mesh as routers and relay traffic for devices around them. Battery-powered devices (buttons, door sensors, temperature sensors) are end devices and never extend the mesh. The cheapest way to fix a coverage gap is usually a Zigbee smart plug placed roughly halfway along the weak path — this planner shows you where that halfway point actually is once walls are accounted for.
The usual causes, in order: the device is too far from its nearest router (not the coordinator — the nearest mains-powered device), thick walls like brick or concrete sit on the path, or your Zigbee channel overlaps a busy WiFi channel. Battery end devices parked in a far corner with no router nearby are the classic case. Plot your floorplan in the planner and look at where the coverage contour ends relative to the dropping device — the fix is usually one well-placed smart plug or moving the coordinator out of a metal rack or cupboard.
Zigbee channels 11–26 share the 2.4 GHz band with WiFi, and WiFi channels 1, 6, and 11 blanket most of it. Zigbee channels 15, 20, 25, and 26 sit in the gaps between and above those WiFi channels, which makes them the safe picks. You set the channel on the coordinator (in Zigbee2MQTT, ZHA, or your hub’s settings) — ideally before pairing devices, since changing it later can require re-pairing. One caveat: a few devices handle channel 26 poorly due to regional transmit-power limits, so 15, 20, and 25 are the most broadly compatible choices.
It is a predictive physics model, not a measurement: the COST-231 multi-wall propagation model at 2.4 GHz, counting every wall on the path by material — the same engine as our WiFi planner, with a published ±6–10 dB accuracy envelope. That is enough to answer placement questions ("will one router in the hallway cover the garage, or do I need two?") before buying hardware. After installation, verify with your hub’s own readings — the LQI values in Zigbee2MQTT’s or Home Assistant’s network map — and nudge routers if a link reads weak.
Yes — no signup, no download, runs in your browser, and your floorplan never leaves your device. The free tier covers 5 devices on 1 floor with a watermarked PNG export, which fits most apartments and small homes. Pro (a €9 one-time project pass or €29/year) lifts the device cap, unlocks multi-floor plans, and removes the export watermark.
Keep planning
Thread mesh planner →
Plan Thread / Matter border-router and device coverage on the same floorplan engine.
Z-Wave mesh planner →
Sub-GHz propagation behaves differently — plan Z-Wave hops with the right physics.
How accurate is the model? →
The COST-231 multi-wall engine explained — per-material losses and the ±6–10 dB envelope.
Why your Zigbee mesh has dead spots →
The debugging companion piece: LQI, sleepy end devices, and the fixes that actually work.
Planning WiFi instead? Start at the WiFi heatmap planner.
Upload your floorplan, place your coordinator and routers, and see the Zigbee coverage map before you spend a euro on hardware. Free for 5 devices — no signup.