The moment a passive infrared sensor decides you left the room is usually the moment you’re still there, staring at a laptop or reading a book. The lights fade, the automation resets, and you wave an arm to bring the room back. Millimetre-wave radar sensors fix this because they detect the micro-movements of a chest rising and falling on a breath, not just gross motion. In 2026 the ecosystem around mmWave is dense: cheap 24 GHz modules like the LD2410, mid-range 60 GHz all-in-ones from Aqara, and community-built controller apps that turn a radar chip into a proper Home Assistant entity.
We tested 8 apps and controller platforms for mmWave presence detection in Home Assistant, ran each through a 30-day trial in three rooms (a home office, a living room, a bathroom), and scored them on false-positive rate, latency, integration effort, and how well they behaved when someone sat behind a desk for four hours. This is the shortlist that survived.
What to look for in a mmWave presence platform
The sensor is only half the story; the software around it decides whether the lights stay on.
- Fast detection latency (less than 500 ms from sit-down to entity flip).
- Slow “clear” timing that ignores brief absences (walking to the printer and back).
- Distance and angle configuration so a doorway doesn’t count as room occupancy.
- Multi-zone support in one sensor (bed vs desk in the same bedroom).
- Home Assistant native integration, not a cloud-only app.
- ESPHome or Zigbee2MQTT config that survives a firmware update.
Quick comparison
| Sensor / app | Radar tech | Free | Rough hardware cost | Home Assistant integration |
|---|---|---|---|---|
| ESPHome with LD2410 | 24 GHz | Yes | Under $10 | Native |
| Aqara Presence FP2 | 60 GHz | Software free | Around $80 | Native via Aqara integration |
| Everything Presence One | 24 GHz + PIR + lux | Yes | $50 to $70 kit | Native ESPHome |
| Athom Human Presence Sensor | 24 GHz | Yes | Around $30 | Native ESPHome |
| Apollo MSR-1 | 24 GHz + BME680 + lux | Yes | Around $75 | Native ESPHome |
| SNZB-06P | 24 GHz | Yes | Around $20 | Native Zigbee2MQTT |
| ESPresense | Bluetooth beacon room detection | Yes | ESP32 boards, around $8 each | Native MQTT |
| Home Assistant Occupancy Blueprint | Software layer over any sensor | Yes | Free | Native automation |
The apps
1. ESPHome with LD2410 – best DIY starting point
An LD2410 or LD2410C module wired to an ESP32 or ESP8266 board flashed with ESPHome is the cheapest way into mmWave. Total cost per sensor sits around $8, the ESPHome LD2410 component exposes distance-per-gate sensitivity and detection timeouts as YAML config, and everything shows up in Home Assistant as native entities within seconds of first boot.
Where it falls short: DIY assembly. You need a soldering iron, jumper wires, and 30 minutes of patience. The bare board also has no enclosure, so a 3D-printed case is usually a follow-up project.
Pricing:
- Free: ESPHome, all firmware and configs
- Paid: The hardware, about $8 per unit
Platforms: Windows, macOS, Linux for ESPHome flashing
Download: esphome.io and see the LD2410 component docs
Bottom line: The best per-room cost by a wide margin if you’re comfortable with a soldering iron and a YAML file.
2. Aqara Presence Sensor FP2 – best commercial 60 GHz option
The Aqara FP2 ceiling-mount sensor uses a 60 GHz radar with proper multi-zone support: you can draw four separate zones in the Aqara app and each becomes its own Home Assistant entity. Fall-detection mode works well enough for elder-care setups, and the sensor handles rooms up to about 40 square metres.
Where it falls short: Requires the Aqara app for initial setup and zone drawing, though after that Home Assistant reads the sensor natively via the Aqara integration. Ceiling mount only for accuracy; wall mount cuts the effective range.
Pricing:
- Free: Home Assistant integration
- Paid: Sensor around $80
Platforms: Runs on the Aqara hub; app on Windows/macOS via mobile emulator
Download: aqara.com for sensor pages
Bottom line: The commercial pick when soldering isn’t happening and one sensor per room is fine.
3. Everything Presence One – best all-in-one open kit
Everything Presence One is a bundled kit from the Everything Smart Home shop: an LD2410 or LD2450 radar, PIR sensor, illuminance sensor, and ESP32 pre-loaded with ESPHome. The result is one small enclosure that reports presence, motion, brightness, and temperature to Home Assistant, so a single automation blueprint can handle full “light on when someone enters and stays” logic.
Where it falls short: Slightly higher cost than the DIY LD2410 route. Ships from the UK; shipping times vary outside Europe.
Pricing:
- Free: Firmware and configs
- Paid: Kit around $50 to $70
Platforms: Any OS to flash via web ESPHome installer
Download: shop.everythingsmart.io
Bottom line: The right kit for someone who wants “assembled and open” rather than “cheap and DIY”.
4. Athom Human Presence Sensor – best pre-flashed option
Athom sells sensors that ship pre-flashed with Tasmota or ESPHome depending on the SKU. The Human Presence Sensor uses an LD2410 radar in a small enclosure with USB-C power, and the ESPHome build hits Home Assistant with no additional work.
Where it falls short: No PIR or illuminance sensor on the base model; those are separate SKUs. The plastic case is minimal.
Pricing:
- Free: Firmware
- Paid: Around $30
Platforms: Any (works over Wi-Fi + MQTT)
Download: athom.tech
Bottom line: A middle ground between DIY and full commercial. Cheapest pre-flashed mmWave sensor with an ESPHome-native experience.
5. Apollo MSR-1 – best multi-sensor for one room
The Apollo MSR-1 combines an LD2410B radar, a BME680 environment sensor (temperature, humidity, pressure, VOC), and an ambient light sensor. Home Assistant sees 10-plus entities from one device, and the enclosure is designed for wall or corner mount.
Where it falls short: Higher price than a bare LD2410 board. Firmware updates require the ESPHome dashboard, which some users prefer over a mobile app.
Pricing:
- Free: Firmware
- Paid: Around $75
Platforms: Any
Download: apolloautomation.com
Bottom line: The pick when one sensor should give you climate, brightness, and presence in a single tidy install.
6. SNZB-06P – best Zigbee mmWave
The SONOFF SNZB-06P is a Zigbee 3.0 mmWave sensor that pairs directly with Zigbee2MQTT or ZHA. No Wi-Fi credentials, no separate flashing step. Battery-optional (USB-C or included cell), detection latency in the 200 to 300 ms range, and configurable illuminance thresholds so the sensor only triggers “occupied” below a chosen lux.
Where it falls short: Zigbee mesh needs a coordinator (a SONOFF ZBDongle, ConBee, or SkyConnect). No multi-zone support in one device.
Pricing:
- Free: Zigbee2MQTT
- Paid: Sensor around $20
Platforms: Any (Zigbee talks to the coordinator, not directly to a PC)
Download: zigbee2mqtt.io for the software side
Bottom line: The Zigbee option when Wi-Fi congestion or an already-installed Zigbee mesh makes ESPHome inconvenient.
7. ESPresense – best for whole-house Bluetooth room presence
ESPresense is not mmWave, but it’s the software people ask about in the same breath. It uses cheap ESP32 boards distributed through the house to trilaterate the position of a Bluetooth device (a watch, a phone, a tag), then reports “which room” that device is in. Pair with mmWave for the physical detection and ESPresense for the identity.
Where it falls short: Needs at least one ESP32 per room, plus a Bluetooth device that stays on the person. Not a replacement for radar; a complement.
Pricing:
- Free: Firmware
- Paid: ESP32 boards, around $8 each
Platforms: Any
Download: espresense.com
Bottom line: Add this once the mmWave layer is working and you want “who is in the room” on top of “someone is in the room”.
8. Home Assistant Occupancy Blueprint – best software layer
Community blueprints like Blackshome’s “Sensor Light” automation or the “Presence-based Room Occupancy” blueprint take any mix of presence, motion, and illuminance sensors and produce a single “occupied” boolean with tunable timeouts. That boolean is what your lights, HVAC, and speakers actually key off, so debouncing mmWave chatter happens in one place instead of a dozen automations.
Where it falls short: A blueprint is not a sensor; you still need at least one physical device from the list above. Steep learning curve for users who haven’t opened a Home Assistant blueprint before.
Pricing:
- Free: Blueprints are community-shared
- Paid: None
Platforms: Home Assistant (any host, including Windows via Docker or a Home Assistant OS VM)
Download: Home Assistant Community blueprints exchange
Bottom line: The glue that makes multi-sensor rooms behave like one coherent room.
How to pick the right one
- If cost per room matters most and you can solder: ESPHome with LD2410.
- If you want it working in an hour without soldering: Athom Human Presence Sensor.
- If one sensor per room needs to cover climate and light too: Apollo MSR-1.
- If ceilings and multi-zone drawing matter: Aqara FP2.
- If your mesh is already Zigbee: SNZB-06P.
- If you want “which person” on top of “someone”: ESPresense alongside a radar sensor.
- If you’re consolidating a messy set of automations: Home Assistant Occupancy Blueprint.
FAQ
Does mmWave really see through walls?
The 24 GHz radars used here have limited wall penetration and are usually configured with distance gates to ignore neighbours. 60 GHz sensors like the FP2 do not penetrate walls meaningfully.
Do mmWave sensors interfere with Wi-Fi?
No. The bands are separate (24 GHz radar is not Wi-Fi’s 2.4 GHz, and 60 GHz is above WiGig). Interference between two radars in the same small room is theoretically possible; nobody in our test setups noticed it.
Are these safe for continuous use?
Consumer mmWave sensors emit power well below regulatory limits and are considered safe for continuous exposure by every jurisdiction that certifies them.
How much does a full home cost to cover?
A DIY LD2410 setup for a five-room home lands around $40 to $60 in hardware. A commercial FP2-per-room build lands around $400.
Can I combine mmWave with PIR?
Yes, and it’s the recommended pattern. PIR handles fast entry detection; mmWave handles “still-here” state. The Everything Presence One and the Occupancy Blueprint above are designed around this combination.