Best Zigbee Door and Window Sensors for Home Assistant

Door and window contact sensors are the foundation of any DIY home security system. These small, battery-powered devices alert you instantly when a door or window opens — and at $5–15 each, you can cover every entry point in your home for a fraction of the cost of a professional system. Here are the best Zigbee options for Home Assistant.

What Makes a Good Zigbee Contact Sensor?

  • Reliable pairing with ZHA and Zigbee2MQTT
  • Battery life of at least 1 year (ideally 2+)
  • Fast reporting — state changes should reach Home Assistant within 1 second
  • Small form factor — discreet enough for windows and interior doors

Top Picks

1. Aqara Door and Window Sensor P2 — Best Overall

Price: $12–15 each | Battery: CR2032, 5+ year life

Aqara P2 is compact, has exceptional battery life, and pairs reliably with both ZHA and Zigbee2MQTT. Reports open/close state in under 500ms. The magnetic design works on any gap up to 15mm — suitable for older windows with uneven frames. Also reports temperature as a bonus sensor.

2. Sonoff SNZB-04P — Best Budget Pick

Price: $8–10 each | Battery: CR2477, 3+ year life

Sonoff latest contact sensor is a significant improvement over their older SNZB-04. Faster response, better Zigbee range, and a slightly larger battery for longer life. At under $10, it is hard to beat for covering multiple windows economically.

3. IKEA PARASOLL — Best for Aesthetics

Price: $7–9 each | Battery: CR2032

IKEA Zigbee sensor is minimalist in design — the white finish is almost invisible on white door frames. Pairs natively with Home Assistant via ZHA. Ideal for interior doors and anyone who prioritizes aesthetics.

4. Third Reality Door Sensor — Best for Thick Gaps

Price: $10–12 each | Battery: AAA, long life

Uses standard AAA batteries (easier to replace than coin cells) and has a longer magnet separation distance — works reliably on older doors with larger gaps or warped frames. Pairs easily with ZHA.

5. Frient Door Sensor — Best Range

Price: $20–25 each | Battery: CR2032

Frient is a European Zigbee manufacturer known for robust radio implementations. The Door Sensor has exceptional range — useful for basement windows or outbuildings at the edge of Zigbee range.

Installation Tips

Door alignment: Install the sensor body on the frame and the magnet on the door. The sensor should be no more than 10mm from the magnet when closed.

Battery replacement: In ZHA or Zigbee2MQTT, enable battery reporting. Create a Home Assistant automation that notifies you when any sensor drops below 15% battery.

Mesh strengthening: Battery-powered contact sensors do not act as Zigbee repeaters. Ensure you have enough mains-powered Zigbee devices (plugs, bulbs) to build a robust mesh network.

How Many Do You Need?

For a typical home, prioritize in this order: front door, back door, garage entry door, ground floor windows (all of them), basement windows and access points, and second floor windows accessible from below (porch roofs, trees).

Real-world battery life

Manufacturer claims of “2–5 years” hold up reasonably well for contact sensors specifically, since they only report on state change rather than continuously — a door that opens 10–20 times a day realistically sees 18–30 months per CR2032 coin cell in practice, less in a well-used entry, more on a rarely-opened window. Cold locations (an unheated porch or garage door sensor) drain batteries meaningfully faster than the manufacturer’s room-temperature testing assumes.

Troubleshooting false triggers

A sensor that reports “open” while the door is clearly closed is almost always a magnet alignment problem — the sensor and its magnet half need to stay within a few millimeters of each other, and door settling over months (hinges loosening, weatherstripping compressing) can drift them out of range. Reposition the magnet slightly closer before assuming the sensor itself is faulty; it usually isn’t.

Tamper detection is worth enabling

Most Zigbee contact sensors include a tamper switch that triggers if the unit is physically removed from its mounting — a detail easy to overlook when just wiring up the open/closed state. Exposing this as a separate binary sensor and adding it to your alarm automation catches someone trying to remove or disable a sensor before breaking in, not just the break-in itself.

Free guide — no signup

Trying to cut the cloud out of your smart home? This is the whole map in one place.

☁️➡️🏠Cloud → Local: replace every cloud service What replaces Ring, Nest, Alexa, August & more — hardware, offline status, difficulty.