Disclosure: Some links in this article are affiliate links. We may earn a commission on qualifying purchases at no extra cost to you.
A door sensor is the simplest device in a Home Assistant setup, which is exactly why it exposes every weakness in your mesh. It has one job — report open or closed — and yet it's the device most likely to sit silently "stuck closed" for weeks until you actually need it and it doesn't fire. Contact sensors are also the devices vendors are laziest about documenting for local control, burying real compatibility behind marketing lines like "requires hub" that mean three different things depending on the brand.
This roundup only covers sensors verified to pair with local Home Assistant integrations — Zigbee2MQTT, ZHA, or Z-Wave JS — with no mandatory cloud account and no vendor gateway required for the core open/close function. That distinction matters more than the shape of the plastic: a $12 sensor that reports reliably for two years beats a $30 sensor that goes silent after a firmware update.
The nine sensors below span Zigbee, Z-Wave (including 800-series Long Range), and Matter-over-Thread, from bare-bones budget contacts to premium units with built-in temperature and dual tamper switches. Each entry covers what actually shows up in your entity list, what battery you'll be buying in bulk, and the specific pairing or reporting quirks documented by the Home Assistant community — not just the spec sheet.
Quick Picks
| Pick | Sensor | Protocol | Best for |
|---|---|---|---|
| Best overall | Aqara Door & Window Sensor (MCCGQ11LM) | Zigbee | Smallest footprint, longest verified battery life |
| Best budget with tamper | SONOFF SNZB-04P | Zigbee | Tamper detection without the premium price |
| Best Z-Wave value | Zooz ZSE41 800LR | Z-Wave | Modern 800-series security on a small budget |
| Best future-proof pick | Aqara P2 | Matter-over-Thread | Multi-ecosystem households already running Thread |
| Best premium | Fibaro Door/Window Sensor 2 | Z-Wave | Built-in temperature + double tamper |
What Makes a Great Door/Window Sensor for Home Assistant?
Before comparing individual units, it helps to know which specs actually predict how a contact sensor behaves once it's living on your door frame instead of on a spec sheet.
Local protocol support, not marketing copy. Every sensor here pairs to ZHA, Zigbee2MQTT, or Z-Wave JS without a mandatory vendor hub for its core function. Some product listings say "requires hub" when what they mean is "requires a Zigbee or Z-Wave coordinator" — which your Home Assistant USB stick already is. That wording causes more confused returns than any actual compatibility issue.
Magnet-gap tolerance. This is the single most common real-world failure mode. A sensor rated for a 20 mm gap will report false "open" states the moment a door swells slightly in humid weather or the magnet shifts a few millimeters out of alignment. Tighter tolerances (Zooz's 6 mm) demand more careful installation; looser tolerances (Aqara's ~22 mm) forgive sloppier mounting.
Battery format and real-world life. Manufacturer battery-life numbers are lab claims — usually 25°C, connected to the vendor's own gateway, triggered a fixed number of times per day. Coin cells (CR1632, CR2032, CR2477) last longest on paper but are less common in a junk drawer; AAA and CR123A formats are easier to restock but bulkier.
Whether it can route. None of the battery-powered sensors in this guide act as Zigbee or Z-Wave repeaters — that's true across every brand and price tier here. If your mesh feels flaky, the fix is adding mains-powered routers (smart plugs, bulbs), not buying a "better" contact sensor.
Extra entities that actually show up in Home Assistant. Tamper switches, device temperature, and dry-contact terminals for external reed switches vary a lot between models, and a few (Third Reality's line, historically) have had bugs where the battery-percentage entity simply doesn't populate.
#1 Aqara Door & Window Sensor (MCCGQ11LM) — The Reliability Benchmark
Specs
- Protocol: Zigbee (pairs directly to ZHA and Zigbee2MQTT)
- Battery: CR1632 coin cell
- Detection gap: up to ~22 mm
- Dimensions: 41 × 22 × 11 mm sensor body, adhesive-mount magnet
- Entities: contact, battery, voltage, trigger count; internal device temperature (not always exposed)
This is the sensor almost every serious Home Assistant mesh has at least a few of, and the reason is a single number: in an independent 14-sensor, 13-brand endurance test, it kept accurate readings across more than 878,000 open/close cycles before its last reported closure — over 99.5% accuracy across four months of continuous use. Nothing else in this guide has that kind of verified longevity data behind it.
The listing frequently says "Requires Aqara Hub (not 3rd-Party)," which trips people up. That line applies to advanced features and OTA updates — the core Zigbee contact function pairs straight to ZHA or Zigbee2MQTT with no Aqara hardware anywhere in the chain. The one real quirk: battery percentage can take a little while to populate after pairing, and horizontal-slide mounting occasionally produces conflicting states, which the Zigbee2MQTT debounce option fixes.
Pros
- Longest independently verified battery/accuracy track record of any sensor tested here
- Smallest, most discreet form factor
- Pairs to ZHA/Z2M with zero vendor hub despite the listing's wording
Cons
- CR1632 is a less common coin-cell size to keep spares of
- Not Zigbee 3.0 certified (older stack), a theoretical rather than practical concern in most meshes
Verdict: The default pick for anyone building a new Zigbee mesh, and the one to buy in bulk if you're wiring up a whole house.
Perfect for: Anyone prioritizing proven long-term reliability over brand-name extras.
#2 SONOFF SNZB-04P — Best Budget Pick With Tamper
Specs
- Protocol: Zigbee 3.0 (Silicon Labs EFR32MG22), fully supported on both ZHA and Zigbee2MQTT
- Battery: CR2477 coin cell, SONOFF-rated over 5 years under lab conditions (25°C, gateway-connected, 50 triggers/day)
- Detection gap: ≤20 mm
- Dimensions: 50.5 × 32 × 21.9 mm transmitter
- Entities: contact, battery, voltage, battery_low, tamper
The SNZB-04P is the sensor to reach for when you want tamper detection — a removal alarm that fires if someone pulls the unit off the door frame — without paying a Z-Wave premium. It's fully documented and supported on both major Home Assistant Zigbee stacks with no quirks or converters required, and reviewers consistently report trivial pairing.
The trade-off is a boxier body than the Aqara sensor and a CR2477 cell that's slightly less universal than a CR2032, but that's a minor inconvenience next to what you get: a genuine tamper entity most budget sensors skip entirely.
Pros
- Tamper detection at a genuinely budget price point
- Zero pairing quirks on either ZHA or Zigbee2MQTT
- Long rated battery life on a single coin cell
Cons
- Bulkier body than the Aqara sensor
- CR2477 is a slightly less common cell to stockpile
- Indoor use only
Verdict: The clear pick when tamper alerts matter — sheds, side entrances, or any door you want an alarm on if someone tries to disable the sensor itself.
Perfect for: Budget-conscious buyers who still want a security-grade tamper switch.
#3 SONOFF SNZB-04PR2 — The Modern Upgrade (Zigbee2MQTT Users)
Specs
- Protocol: Zigbee (Telink TLSR8656), full Zigbee2MQTT support with OTA
- Battery: 2× AAA, ~3-year rating
- Detection gap: <30 mm horizontal, <15 mm vertical (supports both orientations)
- Dimensions: 90 × 26 × 13.5 mm, slimmer profile than the 04P
- Entities: contact, battery, voltage, battery_low, tamper (physical rear button)
This is the newest sensor in the lineup and, on Zigbee2MQTT, the most polished: independent testing measured 168 LQI at four meters and instant, flawless state updates including the tamper switch. It swaps the 04P's coin cell for two AAA batteries — a wash on convenience — and adds a rear tamper button that releases when the unit is pried off its mounting surface.
The catch is squarely on the ZHA side: ZHA needs an external converter or script to handle this device properly, while Zigbee2MQTT supports it natively out of the box. If you're on ZHA, either wait for native support or default to the SNZB-04P instead. SONOFF's own troubleshooting guidance for range issues on this model is to add a Zigbee router — any of its own plugs or the SNZB-06P — between the sensor and the coordinator.
Pros
- Best-in-class link quality and instant reporting on Zigbee2MQTT
- Slimmer, more flexible mounting than the original 04P
- Uses widely available AAA batteries
Cons
- ZHA requires a converter/script — not plug-and-play there
- Long-term battery field data is still thin given its recent release
- Some reports of missed "closed" signals at range without a nearby router
Verdict: The best pick if you're already on Zigbee2MQTT; ZHA users should default to the 04P until native support lands.
Perfect for: Zigbee2MQTT households that want the newest hardware and don't mind AAA batteries.
#4 Third Reality Contact Sensor (3RDS17BZ) — Best AAA-Battery Option
Specs
- Protocol: Zigbee 3.0, ZHA and Zigbee2MQTT supported
- Battery: 2× AAA, rated up to 2 years
- Form factor: bulkier body than coin-cell sensors, adhesive or screw mount
- Entities: contact; tamper on some SKUs; battery percentage (can take up to 24 hours to populate)
The appeal here is simple: no coin cells to special-order. If your household already has a drawer full of AAA batteries for remotes and flashlights, this sensor slots in without adding another SKU to track. It's a legitimately supported device on both Home Assistant Zigbee stacks.
The honest caveat: Third Reality's line has a documented history of Zigbee2MQTT misreporting the device as mains-powered instead of battery-powered, which breaks the battery-percentage configuration step until the converter library catches up. That's been fixed in more recent zigbee-herdsman-converters releases, but older setups have hit it, and the battery-percentage reporting has been called erratic even after the fix. It's also noticeably bulkier than the Aqara or SONOFF units, and the included magnet sits at roughly half the body's thickness, which sometimes needs a spacer for a flush mount.
Pros
- Standard AAA batteries, no coin-cell stockpiling
- Genuinely supported on both ZHA and Zigbee2MQTT
- Competitive multipack pricing for whole-house rollouts
Cons
- Largest, least discreet body in this roundup
- Battery-percentage reporting has a history of glitches
- Magnet thickness mismatch can require a shim
Verdict: A solid, unglamorous choice for bulk deployments where battery-format convenience outweighs a slim profile.
Perfect for: Multi-sensor installs where restocking common AAA batteries matters more than discreet mounting.
#5 Aqara Door & Window Sensor P2 — The Matter-over-Thread Pick
Specs
- Protocol: Matter over Thread (not Zigbee) — requires a Thread border router and a Matter controller
- Battery: CR123A
- Detection gap: ≤22 mm recommended
- Entities: high-precision Hall sensor; programmable button; tamper and adjustable sensitivity planned via future OTA
This is the sensor to buy if your household is already running a Thread border router — an Apple TV 4K, HomePod, Echo (4th gen or later), or a multiprotocol Home Assistant Connect stick — because it works natively across Apple Home, Google Home, Alexa, SmartThings, and Home Assistant's Matter Server without any single-vendor lock-in.
It is not a Zigbee device, and that distinction gets blurred in a lot of buying guides. Pairing goes through a Matter QR code over Bluetooth, and that code cannot be recovered if it's lost — write it down or photograph it before installation, because a lost code means no re-pairing. Community reports on Home Assistant's multiprotocol SkyConnect setups range from rock-solid to occasional drop-outs where the entity briefly goes unavailable and returns on its own.
Pros
- Genuinely cross-ecosystem — no vendor hub needed for any platform
- High-precision detection with a forgiving 22 mm gap
- Future OTA roadmap for tamper and sensitivity controls
Cons
- Requires a Thread border router — a real prerequisite, not optional
- Lost pairing code means the device can't be re-paired
- Some multiprotocol setups report intermittent availability drops
Verdict: Skip this unless you already have Thread infrastructure in place; if you do, it's the most future-proof sensor here.
Perfect for: Multi-ecosystem households already running a Thread border router.
#6 Zooz ZSE41 800LR (Open | Close XS Sensor) — Best Z-Wave Value
Specs
- Protocol: Z-Wave 800-series with Z-Wave Long Range support, S2 security, SmartStart QR inclusion
- Battery: single CR2032 (Zooz specifically recommends Energizer, Panasonic, or Maxell — and warns against Duracell's coating interfering with contact)
- Detection gap: ≤0.25 in (6 mm) — the tightest tolerance in this guide
- Dimensions: 0.3 in thick, under 2 in tall
- Entities: contact, tamper, low-battery
Zooz's XS sensor is the modern default for anyone building a Z-Wave mesh in Home Assistant. It's listed in the Z-Wave JS device database, supports advanced parameter tuning, and one verified reviewer who installed nine of them across a home reported all nine pairing without a hitch, calling them more dependable in day-to-day use than the Matter-over-Thread alternatives they'd also tried.
Two things to watch: the tight 6 mm magnet gap demands careful alignment, and Zooz explicitly warns that a stronger aftermarket magnet can damage the internal reed switch — stick with the included one. Battery life runs closer to 12–14 months in normal use than a multi-year figure, and Zooz's own FAQ notes any Z-Wave battery reading 2.5V counts as 0%, which can make the reported percentage jump around. Long Range–included devices also don't participate in mesh routing or device-to-device associations, and a few users have reported LR inclusion falling back to classic mesh on certain USB sticks.
Pros
- Modern 800-series security (S2, SmartStart) at a genuinely budget price
- Verified multi-unit real-world reliability reports
- Compact, low-profile design
Cons
- Tightest magnet-gap tolerance here — installation must be precise
- Don't upgrade the magnet — it can damage the reed switch
- Battery life closer to a year than the multi-year figures seen elsewhere
Verdict: The Z-Wave equivalent of the Aqara pick — the sensible default unless you specifically need dry-contact wiring or built-in temperature.
Perfect for: Z-Wave households wanting current-generation security without paying a premium-brand markup.
#7 Ecolink Z-Wave Plus Door/Window Sensor (DWZWAVE2.5-ECO) — Best for External Wiring
Specs
- Protocol: Z-Wave Plus (908.42 MHz US), Z-Wave JS
- Battery: CR123A, rated up to 3 years
- Detection gap: rare-earth magnet, up to 5/8 in (16 mm)
- Entities: contact, tamper, dry-contact input for an external reed switch or wired sensor
The Ecolink stands out for one feature nothing else here has: screw terminals for an external dry-contact input, which means the radio unit can live somewhere convenient while a remote reed switch does the actual sensing on a garage door, gate, or awkward window. It ships in white and brown cases and carries a genuinely long CR123A battery rating.
The honest issue to flag: there's a documented pattern of the open/close binary sensor — and occasionally the tamper entity — getting stuck and not updating after inclusion on certain Z-Wave JS versions, sometimes requiring a re-include to resolve. It's not universal, but it's common enough in community reports and a GitHub-tracked Home Assistant Core issue that buyers should know about it going in rather than discover it after installation.
Pros
- Unique dry-contact terminal for external/remote sensing
- Long CR123A battery life
- Rare-earth magnet with a forgiving detection gap
Cons
- Documented, if not universal, stuck-state bug on some Z-Wave JS versions
- Largest body of the Z-Wave sensors here
- May need a re-include to resolve reporting issues
Verdict: Worth the reporting-bug risk specifically for its external-wiring capability — nothing else here does that job.
Perfect for: Garage doors, gates, or any opening where the sensor itself needs to live away from the actual contact point.
#8 Aeotec Door/Window Sensor 7 / 7 Pro — Best Compact Z-Wave Pick
Specs
- Protocol: Z-Wave Plus 700-series, S2 security, SmartStart QR inclusion, Z-Wave JS
- Battery: CR123A, rated 3+ years, up to 66% lower power draw than prior Aeotec generations
- Dimensions: 40% smaller than the previous (Gen5) generation
- Entities: contact, tamper; the 7 Pro adds tilt sensing, dry-contact input, and scene-controller functions
The DWS7 is one of the smallest Z-Wave contact sensors available, and a separate Recessed variant drills directly into the door frame for a fully hidden install — a nice option if aesthetics matter as much as function. The 7 Pro layers on tilt detection and a dry-contact terminal, useful for garage doors where you want both open/closed and tilt-angle data.
One installation step is easy to miss and worth calling out clearly: after pairing, you need to physically close the sensor's cover, or it stays permanently awake and drains its battery fast. Some Home Assistant users on older Z-Wave sticks have also reported the Pro's tilt/dry-contact data needing a re-interview before entities populate correctly, and Amazon listings for this exact model can vary, so check the current listing for availability.
Pros
- Smallest Z-Wave sensor body here, plus a fully recessed/hidden variant
- Pro variant adds genuinely useful tilt and dry-contact functionality
- Reduced power draw versus earlier Aeotec generations
Cons
- Must remember to close the cover after inclusion or it drains fast
- Pro's tilt/dry-contact parsing has needed zwave-js fixes on some setups
- Not ideal on metal door/window frames
Verdict: The pick for anyone who wants a contact sensor to disappear visually, and the Pro variant is worth the upgrade for garage doors specifically.
Perfect for: Buyers who want the smallest possible footprint or a fully recessed, invisible install.
#9 Fibaro Door/Window Sensor 2 (FGDW-002) — Best Premium Pick
Specs
- Protocol: Z-Wave Plus, Z-Wave JS
- Battery: ER14250 (½AA, 3.6V lithium)
- Form factor: small, rounded body available in seven colors
- Entities: contact, battery, temperature, tamper (cover-removed and wall-removed detection), low/replace-battery status; dry-contact input for an external DS18B20 or switch
The Fibaro sensor exposes the richest entity set of anything in this guide: on top of contact and tamper, it reports ambient temperature and distinguishes between the cover being removed and the whole unit being pulled off the wall — genuinely useful data for a security automation, not just a novelty. The color options also make it the one sensor here that can be chosen to match trim rather than just tolerated.
It's the most expensive sensor in the guide, and the small "pill" magnet demands careful alignment during installation. A handful of Home Assistant users have reported a temperature-reading glitch in the 18–19°C range on certain setups — a single-thread report rather than a widespread pattern, but worth knowing about if precise temperature logging matters to your automation.
Pros
- Richest entity set of any sensor here — temperature plus double tamper
- Available in multiple finishes to match door hardware
- Dry-contact terminal for external sensor wiring
Cons
- Premium price relative to every other pick in this guide
- Small magnet requires precise alignment
- Isolated reports of a temperature-reading glitch around 18–19°C
Verdict: Worth the premium specifically for the temperature entity and dual tamper detection — skip it if you just need open/closed.
Perfect for: Buyers who want a security sensor that doubles as a room-temperature data point, or who care about matching finishes.
Comparison Table
| Sensor | Protocol | Battery | Tamper | Extra data | Magnet gap | Best for |
|---|---|---|---|---|---|---|
| Aqara MCCGQ11LM | Zigbee | CR1632 | No | — | ~22 mm | Overall reliability |
| SONOFF SNZB-04P | Zigbee | CR2477 | Yes | — | ≤20 mm | Budget + tamper |
| SONOFF SNZB-04PR2 | Zigbee | 2× AAA | Yes | — | <30/<15 mm | Zigbee2MQTT users |
| Third Reality 3RDS17BZ | Zigbee | 2× AAA | Some SKUs | — | — | Bulk AAA deployments |
| Aqara P2 | Matter/Thread | CR123A | Planned OTA | — | ~22 mm | Multi-ecosystem homes |
| Zooz ZSE41 800LR | Z-Wave | CR2032 | Yes | — | ~6 mm | Z-Wave value |
| Ecolink DWZWAVE2.5-ECO | Z-Wave | CR123A | Yes | Dry-contact input | ~16 mm | External/remote wiring |
| Aeotec DWS7 / 7 Pro | Z-Wave | CR123A | Yes | Tilt + dry-contact (Pro) | — | Compact/recessed install |
| Fibaro FGDW-002 | Z-Wave | ER14250 | Double | Temperature | — | Premium + temperature |
Which Door/Window Sensor Should You Buy?
Building a Zigbee mesh from scratch: start with the Aqara Door & Window Sensor for its verified long-term reliability, and add SONOFF SNZB-04P units anywhere you specifically want tamper detection.
Already running Zigbee2MQTT and want the newest hardware: the SNZB-04PR2 is the strongest performer, provided you're not on ZHA — that combination still needs a converter.
Committed to Z-Wave: the Zooz ZSE41 800LR covers most doors and windows at a fair price with current-generation security; reach for the Ecolink specifically when you need to wire an external or remote contact, and the Aeotec DWS7 when you want the smallest or fully recessed install.
Want a security sensor that also logs temperature: the Fibaro FGDW-002 is the only sensor here that does both well, at a price that reflects it.
Already invested in Thread/Matter across ecosystems: the Aqara P2 is the one forward-looking pick, but only if a Thread border router is already part of your setup — don't buy one just for this sensor.
Whichever you choose, plan your mesh, not just your sensor. None of these devices repeat Zigbee or Z-Wave signal — that job falls to your mains-powered plugs, bulbs, and switches. A cluster of contact sensors with no nearby router is the most common cause of "unreliable" sensors, not the sensor itself.
Frequently Asked Questions
Q: Do Aqara sensors require an Aqara hub to work with Home Assistant?
No, not for the core Zigbee contact function. The "Requires Aqara Hub" wording on some listings refers to advanced features and OTA updates. Both the MCCGQ11LM and the P1-generation Aqara sensors pair directly to ZHA or Zigbee2MQTT using any standard Zigbee coordinator.
Q: Which lasts longer on battery, Zigbee or Z-Wave contact sensors?
It depends more on the individual model and cell format than the protocol itself. Coin-cell Zigbee sensors like the Aqara and SONOFF SNZB-04P carry the longest rated figures, while Z-Wave sensors on CR123A cells (Ecolink, Aeotec) also rate multiple years. Real-world life is usually shorter than lab-rated figures for every brand.
Q: Can a battery-powered door sensor act as a repeater for other Zigbee or Z-Wave devices?
No. Every battery-powered contact sensor in this guide is an end device, not a router — that's true across every brand and protocol here. A healthy mesh depends on mains-powered devices like smart plugs and bulbs to relay signal, not on the sensors themselves.
Q: Should I use ZHA or Zigbee2MQTT for door sensors?
Both work well for most of the sensors in this guide. ZHA is simpler to set up since it's built into Home Assistant with no separate broker. Zigbee2MQTT generally supports newer devices faster and exposes more configuration options — it's currently the better choice for the SONOFF SNZB-04PR2, which still needs a converter on ZHA.
Q: What's the actual difference between Zigbee, Z-Wave, and Matter contact sensors?
Zigbee and Z-Wave are both mesh protocols that route through a coordinator you control locally. Z-Wave operates on a sub-GHz frequency that avoids 2.4 GHz Wi-Fi interference and, in its 800-series Long Range form, covers more distance. Matter-over-Thread, used by the Aqara P2, is a newer standard designed to work natively across multiple smart home ecosystems, but it requires a Thread border router as a prerequisite — it isn't a drop-in Zigbee replacement.
Q: How do I fix a stuck open/closed state on an Ecolink Z-Wave sensor?
This is a documented, if not universal, issue on certain Z-Wave JS versions. If the binary sensor or tamper entity stops updating, excluding and re-including the device from Home Assistant typically resolves it.
Q: Do I need a Thread border router for the Aqara P2?
Yes. The P2 is a Matter-over-Thread device, not Zigbee, and it requires a Thread border router — an Apple TV 4K, HomePod mini or later, an Echo (4th gen+), or a multiprotocol Zigbee/Thread coordinator — plus the Home Assistant Matter Server to function.
Q: How tight does the magnet gap actually need to be?
It varies significantly by model, from roughly 6 mm on the Zooz ZSE41 up to 22 mm on the Aqara sensors. Tighter tolerances demand more precise door and frame alignment; if a door or window swells seasonally, a sensor with a more forgiving gap will produce fewer false triggers.
Conclusion
The best door/window sensor for Home Assistant isn't the one with the most features on the box — it's the one still reporting accurately six months from now. For most Zigbee builds, that's the Aqara MCCGQ11LM, backed by the longest independently verified reliability data of anything tested here; the SONOFF SNZB-04P is the right call the moment tamper detection matters. On Z-Wave, the Zooz ZSE41 800LR delivers current-generation security at a fair price, while the Ecolink and

