Racks & WattsLOCAL HARDWARE / CLEAR PICKS

Home Assistant presence sensing

Best mmWave presence sensor for Home Assistant

Keep the lights on while you sit still. Compare SONOFF, Aqara and THIRDREALITY presence sensors by Home Assistant route, power and zones, then build three recipes.

OUR PICKS / YOUR SETUP

Find your fit.

Choose SONOFF SNZB-06P24 for Zigbee2MQTT room sensing, Aqara FP2 for mapped zones, or FP300 for battery power with Zigbee/Thread flexibility. THIRDREALITY R2 uses standard AAs; the older SONOFF SNZB-06P is the basic USB-powered microwave option.

  • Zigbee / Z2MSONOFF SNZB-06P24
  • Mapped zonesAqara FP2
  • Battery flexibilityAqara FP300

How we evaluate hardware.

YOUR NEXT PROJECT / THE GEAR

Parts list

  • SONOFF SNZB-06P24 presence sensor

    Tune distance bands and room learning on a USB-powered Zigbee presence sensor.

    Check price on Amazon
  • Aqara Presence Sensor FP2

    Build separate desk and seating-area automations with mapped zones through HomeKit Device.

    Check price on Amazon
  • SONOFF SNZB-06P presence sensor

    Choose straightforward room occupancy when you do not need mapped zones.

    Check price on Amazon
  • Aqara Presence Multi-Sensor FP300

    Place presence sensing without a USB cable and choose Zigbee or Matter over Thread.

    Check price on Amazon
  • THIRDREALITY Presence Sensor R2

    Use standard AA batteries for a simple Zigbee occupancy sensor where power is awkward.

    Check price on Amazon

The lights shouldn’t go out just because you’re reading. A PIR motion sensor is great at noticing you arrive; radar presence sensing is the upgrade for the quiet bit afterwards. Choose SONOFF SNZB-06P24 for a Zigbee2MQTT setup, Aqara FP2 for mapped room zones, or Aqara FP300 when a USB cable would spoil the placement. The older SONOFF SNZB-06P is the basic room-sensing option; THIRDREALITY R2 keeps battery replacement simple with AAs.

Research guide: specifications come from the makers; Home Assistant routes and setup come from the linked project documentation.

Want those sensors to wake a screen as well as keep the lights on? Build a Home Assistant wall dashboard with a tablet, a removable mount and presence-based screen control.

Quick picks: one room, several zones, or no cable?

Best Zigbee presence with Zigbee2MQTT: SONOFF SNZB-06P24. You get USB-powered 24 GHz radar, illuminance, sensitivity adjustment and distance-band masking. Choose it for a room-level occupancy signal with useful tuning controls.

Best multi-zone room: Aqara FP2. Define separate areas for the desk and seating corner in Aqara Home, then use their occupancy entities in Home Assistant through HomeKit Device. Its mapped zones are the reason to choose it over a simpler room sensor.

Best basic room sensor: SONOFF SNZB-06P. Pick this for straightforward Zigbee occupancy and USB power. It uses 5.8 GHz microwave sensing, rather than the 24 GHz mmWave hardware in the newer 06P24. They are different models, despite the similar names.

Best battery flexibility: Aqara FP300. It combines PIR and 60 GHz radar, uses two CR2450 batteries and lets you choose Zigbee or Matter over Thread. Temperature, humidity and light sensing add useful possibilities beyond lighting.

Prefer standard AA batteries? THIRDREALITY R2 uses three AAs and Zigbee. It’s the alternative for simple occupancy without finding a nearby power socket or choosing Thread infrastructure.

Compare the radio, power and zones

Sensor Radio and Home Assistant route Power What “zones” means
SONOFF SNZB-06P24 Zigbee → Zigbee2MQTT; maker’s guide supplies an extra ZHA script USB-C Seven enabled/disabled distance bands feeding one occupancy reading
Aqara FP2 2.4 GHz Wi-Fi → HomeKit Device Continuous USB-C power Up to 30 mapped zones, according to Aqara; separate area occupancy
SONOFF SNZB-06P Zigbee → Zigbee2MQTT USB-C One room-level occupancy reading
Aqara FP300 Zigbee → Zigbee2MQTT, or Matter over Thread Two CR2450 batteries Occupancy with range tuning; choose FP2 for mapped room areas
THIRDREALITY R2 Zigbee → ZHA or Zigbee2MQTT Three AA batteries One occupancy reading with sensitivity and calibration controls

The 06P24’s seven bands are range filters, not seven independently reported room areas. Its Zigbee2MQTT reference exposes one occupancy property alongside switches that enable or disable distance bands. For “desk light on, seating light off” from one mapped sensor, buy the FP2.

Aqara’s FP2 specifications describe its zone positioning and multiple sensors exposed to Home Assistant. The FP300 specifications describe its hybrid sensing, batteries and protocol choices. Choose between them by the job, rather than treating FP300 as an FP2 with the cable removed.

PIR versus presence: keep the useful parts of both

PIR detects changes in infrared energy as you move through its view. That makes the motion sensor in your Home Assistant starter kit useful for an arrival event. The awkward moment is sitting down and hardly moving while a motion-based light timer runs out.

Radar can detect smaller movements, including the subtle motion involved in sitting at a desk. You still need a clear view and sensible tuning. Start by upgrading the spot where motion lighting annoys you most, rather than replacing every PIR sensor at once.

The older SONOFF manual explicitly identifies its 5.8 GHz microwave technology. The 06P24 manual identifies the newer 24 GHz model. The names are close; the radios and tuning options deserve their own comparison.

Connect it through the right Home Assistant integration

Zigbee: use the exact-model support page

For the SONOFF models, start with the documented 06P or 06P24 Zigbee2MQTT route. Home Assistant receives those entities through MQTT. SONOFF’s 06P24 help page currently specifies an extra script for ZHA.

For the R2, THIRDREALITY lists both ZHA and Zigbee2MQTT support. Its exact 3RPS01083Z page documents occupancy, battery, calibration and sensitivity controls. If you use ZHA, pair it into that existing network.

FP300 in Zigbee mode has its own PS-S04D setup page. Follow its Aqara Home protocol-switch steps before pairing with Zigbee2MQTT. The page also explains the reset procedure when a device previously used Thread. Give each coordinator to one Zigbee integration; our coordinator guide covers the radio choice.

FP300 over Thread: Matter needs a border router

For direct Matter operation, you need Home Assistant’s Matter integration, a working Thread border router, and the Companion app for commissioning. A Zigbee-only network doesn’t supply that Thread connection.

The Aqara connection guide covers direct commissioning and sharing an existing Matter device. Direct setup gives you the basic route; configuration options depend on the protocol and platform. Choose Zigbee2MQTT when its documented tuning controls are your priority. Use one protocol at a time on the sensor.

FP2: HomeKit Device, over Wi-Fi

Configure the FP2’s room map and zones in Aqara Home, then connect it through HomeKit Device in Home Assistant. Aqara’s older documentation calls this HomeKit Controller; the current integration name is HomeKit Device.

Follow the Home Assistant Wi-Fi pairing steps:

  1. Power the FP2 and join it to Wi-Fi using the maker’s setup flow.
  2. If it is already paired to Apple Home, remove that pairing without factory-resetting it. It keeps its Wi-Fi connection and becomes available to Home Assistant.
  3. Open Settings → Devices & services. On the discovered HomeKit Device card, select Configure and enter the device’s pairing code.
  4. Name the imported occupancy entities so you can recognise each area.

Keep Aqara Home for map configuration. HomeKit Device brings accessories into Home Assistant; HomeKit Bridge sends Home Assistant entities out to Apple Home. FP2 uses this Wi-Fi/HomeKit path, rather than the Zigbee or Matter-over-Thread paths above.

Aim at the seat, then tame the background movement

Put the sensor where it can see you in the position you actually occupy. Pair first, watch the occupancy entity, sit down and read or type, then walk out and check it clears. Move the sensor before committing to adhesive placement.

SONOFF’s placement instructions identify operating fans, moving curtains or plants, drainage pipes and reflective metal as interference sources. THIRDREALITY also notes that strong repetitive movement can trigger its R2.

  • Aim away from moving fan blades and fluttering curtains where possible.
  • Reduce the detection range or mask an unwanted distance band before turning sensitivity down everywhere.
  • Run the model’s learning or calibration procedure with the space prepared as its instructions specify.
  • Test with the fan and curtains behaving normally, then repeat your seated test.

Use FP2’s mapped boundaries when you need separate activities in one room. Use the 06P24’s distance masks to limit what contributes to its single occupancy signal. That distinction makes tuning much less mysterious.

Three recipes to make presence useful

Create automations under Settings → Automations & scenes → Create automation → Create new automation. The State changed trigger uses When → Add trigger, an entity and a target state; For at least adds a waiting period. Raw occupancy states are on for occupied and off for clear.

The timings and humidity thresholds below are starting examples for you to tune. Use existing Home Assistant-controlled lights, fan and plugs. Save before testing. A Home Assistant restart or automation reload discards pending waits; the sensor needs another matching state change to start a fresh wait.

1. Keep the desk light on while you’re there

Replace the old PIR light timer with this automation. Use your desk’s occupancy entity—an FP2 desk zone, or a correctly aimed FP300, R2 or SONOFF sensor.

  • Add State changed → occupied, with trigger ID occupied.
  • Add State changed → clear → For at least 2 minutes, with trigger ID clear.
  • Under Then do, use Choose with a Triggered by condition: occupied turns the light on; clear turns it off.

Set the automation’s mode to Restart. A return to occupied cancels the clear trigger’s waiting period. The sensor’s own vacancy delay comes before that extra Home Assistant hold, so tune both while watching the entity history.

2. Let the bathroom fan finish the job

Use presence to start the fan, then let humidity keep it running after you leave. Use the FP300’s humidity entity if your chosen route exposes it, or the humidity sensor from your starter kit.

Create a Template binary sensor helper named Bathroom ready to stop: Settings → Devices & services → Helpers → Create helper → Template → Binary sensor. Replace these placeholder entities in its state template:

{% set humidity = states('sensor.example_humidity') | float(none) %}
{{ is_state('binary_sensor.example_presence', 'off')
   and humidity is not none and humidity < 60 }}

In one automation, add three triggers: presence becomes occupied, humidity rises above 65%, and Bathroom ready to stop becomes on for 10 minutes. Give them IDs occupied, damp and ready.

Use Choose / Triggered by: either occupied or damp turns the fan on; ready turns it off. The 60% and 65% values are example thresholds, not a ventilation standard. The ready helper waits for both clear presence and lower humidity, whichever happens first. Missing readings block readiness instead of turning into a false “dry and empty.” See the numeric-state trigger guide for the humidity crossing.

3. Build a careful “nobody home” energy saver

Combine resident location and clear room readings before switching off discretionary plugs. A clear desk sensor alone says little about someone elsewhere.

Create another Template binary helper, All monitored areas clear, listing every occupancy entity you want included:

{{ is_state('binary_sensor.example_desk_presence', 'off')
   and is_state('binary_sensor.example_hall_presence', 'off') }}

Add two triggers to the same automation: Home zone changes to 0 for 10 minutes, and All monitored areas clear becomes on for 10 minutes. Either trigger may start it. Under And if, require both those states to have held for 10 minutes. Add a Template condition requiring every tracked resident to have a known away state; extend this two-person example for your household:

{{ states('person.example_one') not in ['home', 'unknown', 'unavailable']
   and states('person.example_two') not in ['home', 'unknown', 'unavailable'] }}

Then turn off only your selected lamps or other discretionary loads. This covers either order: the room clears before the last person leaves, or everyone leaves before the sensors clear. Unknown occupancy keeps the clear helper off, and unknown location blocks the final action.

Include all residents and disable automatic away shutoff while untracked guests are staying. Keep the Home Assistant host, radios, network equipment, fridge and other essential loads out of the target list. The local-control smart-plug guide helps you pick the plug and its Home Assistant route. The condition reference explains the final checks.

Make one space work beautifully

Test each recipe through its real triggers, including returning during the light’s clear timer and letting humidity fall after the bathroom empties. Try both orders in the away recipe, then simulate an unavailable sensor and check that shutoff stays blocked. Home Assistant’s automation traces show which condition passed and which action ran.

Choose 06P24 for a tuned Zigbee2MQTT room signal, FP2 for mapped zones, FP300 for battery-and-radio flexibility, or R2 for standard AAs. Choose the older 06P for a basic USB-powered occupancy job. Start with the chair where the lights keep abandoning you, then return to the Home Assistant hub for your next project.

Need a separate humidity sensor for the fan, or want to compare temperatures between rooms? Use our room-by-room sensor guide for Zigbee, Thread and Z-Wave choices plus room graphs.

Sources & methodology

Where these facts come from.

Source dates are listed above.

As an Amazon Associate I earn from qualifying purchases.

YOUR NEXT PROJECT / THE GEAR

Parts list

  • SONOFF SNZB-06P24 presence sensor

    Tune distance bands and room learning on a USB-powered Zigbee presence sensor.

    Check price on Amazon
  • Aqara Presence Sensor FP2

    Build separate desk and seating-area automations with mapped zones through HomeKit Device.

    Check price on Amazon
  • SONOFF SNZB-06P presence sensor

    Choose straightforward room occupancy when you do not need mapped zones.

    Check price on Amazon
  • Aqara Presence Multi-Sensor FP300

    Place presence sensing without a USB cable and choose Zigbee or Matter over Thread.

    Check price on Amazon
  • THIRDREALITY Presence Sensor R2

    Use standard AA batteries for a simple Zigbee occupancy sensor where power is awkward.

    Check price on Amazon

Prepared by Racks & Watts.