Private Home Lab

Self-hosted · No cloud 

Aqara FP310 Presence Sensor: Zigbee2MQTT + Home Assistant Local Setup

Set up the Aqara FP310 presence sensor with Zigbee2MQTT and Home Assistant: Thread-to-Zigbee firmware switch, pairing, configuration, and Z2M OTA updates.

Aqara FP310 Presence Sensor: Zigbee2MQTT + Home Assistant Local Setup

The Aqara FP310 is the China-market presence sensor you probably haven’t heard of yet — and that’s exactly why there’s a gap worth filling. If you’ve been searching for an FP310 setup guide in English and ended up on an FP300 article instead, this is what you were looking for.

I’ll walk through the full local setup: switching the device from its default Thread firmware to Zigbee, pairing with Zigbee2MQTT, configuring detection parameters in Home Assistant, and taking advantage of the one thing FP310 does better than FP300 in a Z2M setup — native OTA updates.

What Is the Aqara FP310, and Why 24GHz?

The FP310 (人体存在传感器 FP310, Presence Multi-Sensor FP310, part number AS077) is Aqara’s China-domestic version of the FP300. It launched in China on April 9, 2026 at 299 yuan (roughly $44 USD at the time).

The core difference from the FP300 is the radar frequency: the FP310 uses 24GHz mmWave, while the FP300 uses 60GHz. This is a regulatory choice, not an engineering preference. The 60GHz band sits in a gray area for indoor unlicensed use in China, so Aqara built the FP310 around 24GHz for domestic regulatory compliance. Chinese tech communities on IT之家 (IT Home, ithome.com) understood this context immediately when the device launched — English-language coverage has mostly missed it.

The practical consequence: 24GHz radar is generally less sensitive to micro-movements like breathing-level presence compared to 60GHz. For most “is someone in the room?” use cases the difference is minor, but if you’re trying to detect someone sitting still and barely moving, the FP300 (60GHz) has an edge. More on the tradeoffs in the comparison section below.

In every other respect — form factor, software feature set, Z2M integration, battery type — the FP310 and FP300 are identical. The FP310 is also listed on the CSA Matter device registry, like the FP300, so it ships with Thread/Matter firmware by default.

FP310 vs FP300 — Which Should You Get?

If you’re already in China or buying locally with warranty support, FP310 is the obvious choice. If you’re outside China and ordering via a cross-border platform like AliExpress, FP300 is generally available and has a slight technical edge on detection sensitivity.

FP310 FP300
Radar frequency 24GHz mmWave 60GHz mmWave
Market China only Global
Retail price 299 yuan (~$44 USD) ~$50–60 USD
Z2M support Stable (added May 26, 2026) Stable (long-standing)
Z2M OTA updates Yes No (requires Aqara app re-flash)
Micro-movement detection Good Better
Feature set in Z2M Identical Identical
Battery 2x CR2450, ~3yr 2x CR2450, ~3yr

The Z2M OTA point deserves emphasis. With the FP300, every firmware update requires you to re-flash through the Aqara app — pulling the device back into Thread mode, updating, then cross-flashing back to Zigbee. With the FP310, you can push firmware updates directly from Z2M’s OTA tab. If firmware hygiene matters to you (and in a local-first setup it probably does), that’s a real quality-of-life difference in favor of the FP310.

For the full FP300 walkthrough, see our FP300 Zigbee2MQTT + Home Assistant guide. If you’re still deciding between the FP-series presence options, our FP2 vs FP300 comparison covers the broader tradeoffs.

What You Need Before Starting

Hardware:
– Aqara FP310 sensor with two CR2450 batteries installed
– A Zigbee coordinator (Sonoff Zigbee 3.0 USB Dongle Plus or equivalent)
– A phone with the Aqara Home app installed — for the one-time firmware switch only

Software:
– Zigbee2MQTT 1.37.0 or later (FP310 support landed in Z2M stable on May 26, 2026)
– Mosquitto MQTT broker
– Home Assistant MQTT integration configured

No Aqara hub required once the firmware switch is done. The Aqara app is only needed for that first step — after that, the device lives entirely in Z2M.

Worth knowing: the FP310 ships in Thread/Matter mode. In that state it won’t show up in Z2M at all, even with Permit Join enabled. The firmware switch is mandatory, not optional.

Step 1 — Switch the FP310 from Thread to Zigbee Firmware

The FP310 ships with Thread/Matter firmware enabled by default. To use it with Zigbee2MQTT, you need to cross-flash to Zigbee firmware via the Aqara app. This is the same procedure as the FP300 — documented by the Z2M community and confirmed working for FP310.

The process:

  1. Open the Aqara Home app on your phone
  2. Tap the + button to add an accessory
  3. Let the app scan and detect the FP310 — it will show up as a Thread device
  4. When you see the Thread protocol option, tap Switch to initiate the firmware cross-flash
  5. The update happens in two stages. The LED will cycle while both stages complete — this can take 3–5 minutes
  6. After the second stage completes, the device automatically enters Zigbee pairing mode (rapid LED blinking)

Do not exit the Aqara app during the update. If the app is backgrounded mid-flash on iOS especially, the update can stall. Keep your screen on and the app in the foreground for the full duration.

What I didn’t expect the first time I went through this process on an FP300 was that the two-stage update doesn’t announce itself clearly — it looks like the update finished after stage one, then the LED changes pattern again. That second pattern change is the Zigbee firmware stage loading. If you close the app at that point, you may end up with the device stuck in an intermediate state requiring a factory reset (hold the reset button for 10+ seconds).

Once the LED is blinking rapidly, the device is in Zigbee pairing mode and you can move to step 2.

Step 2 — Pair the FP310 with Zigbee2MQTT

With the FP310 in Zigbee pairing mode (rapid LED blinking after the firmware switch):

  1. In the Z2M UI, open Settings → Permit Join and enable it (or enable it for a specific coordinator)
  2. The FP310 should be discovered within 30–60 seconds
  3. Z2M will run the device interview — this takes a moment as the FP310 exposes a large feature set
  4. Once interview completes, the device appears as Presence Multi-Sensor FP310 or similar, depending on your friendly name

In Home Assistant, the MQTT integration picks up the new entities automatically. You’ll see:

  • binary_sensor.<name>_presence — the main presence detection entity (on = presence detected, off = no presence)
  • sensor.<name>_temperature — temperature in °C
  • sensor.<name>_humidity — relative humidity in %
  • sensor.<name>_illuminance — illuminance in lux
  • sensor.<name>_battery — battery percentage
  • sensor.<name>_voltage — battery voltage in mV
  • sensor.<name>_target_distance — distance to the nearest detected target in meters

If entities don’t appear in HA after pairing, check that the MQTT integration is subscribed to the correct topic prefix. The default Z2M topic is zigbee2mqtt/<friendly_name> — if you’ve changed the Z2M base topic, make sure it matches your MQTT integration config.

If you want a battery presence sensor that’s available in global markets, our Aqara FP1E guide covers a comparable Zigbee2MQTT setup.

Step 3 — Configure Presence Detection

The FP310 exposes a lot more configuration than a typical binary presence sensor. Through Z2M’s device page you can set:

Detection parameters:
Sensitivity: low, medium, or high. Start with medium for most rooms — high sensitivity in a small space can generate false positives from HVAC airflow
Absence delay: 10 to 300 seconds. This is how long the sensor waits after last detection before reporting no presence. I’ve found 30 seconds works well for living spaces; 10 seconds is useful for bathrooms where you want faster response
Detection range: 0 to 6 meters. Restricting this to your actual room depth reduces false positives from activity in adjacent rooms through thin walls
Spatial learning: a one-time calibration you run once the sensor is mounted in its final position. Tap the button in Z2M to initiate it — the sensor maps the static environment (furniture, walls) and improves detection accuracy. Run this before fine-tuning sensitivity
AI interference identification: helps the sensor distinguish actual human presence from interference sources like fans or curtains. Worth enabling if you see false positives that sensitivity tuning alone doesn’t fix
Adaptive sensitivity mode: allows the sensor to auto-adjust sensitivity based on learned environment. Useful if the room has variable activity levels

Environmental sensor configuration:

Temperature, humidity, and illuminance each have independent sampling controls:
Sampling mode: off, low, medium, high, or custom
Custom period and interval: fine-grained control over how often the sensor polls and reports

For most setups, low or medium sampling on all three environmental sensors is plenty. High sampling drains battery faster.

Calibration:

If your temperature or humidity readings drift from a reference sensor, the FP310 lets you set an offset and precision (0–3 decimal places) directly in Z2M. Illuminance has a percentual offset. These are applied on-device, so the compensated values are what HA receives.

LED schedule:

You can set a night disable window (with start and end times) so the status LED doesn’t blink in a dark bedroom. This is one of those small quality-of-life details that matters more than it sounds.

Building Automations in Home Assistant

The FP310’s presence entity is a standard binary_sensor. Automations are the same as any other Z2M presence sensor.

Lights on when presence detected:

alias: FP310 - Lights on presence
trigger:
  - platform: state
    entity_id: binary_sensor.fp310_living_room_presence
    to: "on"
action:
  - service: light.turn_on
    target:
      entity_id: light.living_room

Lights off after absence delay clears:

The FP310 handles the delay on-device (via the absence delay setting), so you don’t need a timer in HA. When the binary sensor transitions to off, the sensor has already waited the configured delay:

alias: FP310 - Lights off no presence
trigger:
  - platform: state
    entity_id: binary_sensor.fp310_living_room_presence
    to: "off"
action:
  - service: light.turn_off
    target:
      entity_id: light.living_room

Climate trigger using illuminance:

The FP310’s illuminance sensor makes it useful for combined presence + daylight automations:

alias: FP310 - AC on low light + presence
trigger:
  - platform: state
    entity_id: binary_sensor.fp310_living_room_presence
    to: "on"
condition:
  - condition: numeric_state
    entity_id: sensor.fp310_living_room_illuminance
    below: 100
action:
  - service: climate.turn_on
    target:
      entity_id: climate.living_room_ac

Adjust the illuminance threshold to what makes sense for your space. 100 lux is roughly “the lights in the room are off and daylight isn’t strong” — modify based on what your sensor actually reports in your conditions.

If you want to use target distance in automations — for example, “only trigger the light if someone is within 2 meters of the desk” — that sensor.<name>_target_distance entity works directly in numeric conditions.

OTA Firmware Updates in Zigbee2MQTT

This is where the FP310 genuinely improves on the FP300 experience.

To update firmware:

  1. Open the Z2M web UI and navigate to your FP310 device page
  2. Go to the OTA tab
  3. Click Check for updates — Z2M will query whether a newer firmware is available
  4. If an update is available, click Update
  5. The update transfers over Zigbee. Keep the device within range of your coordinator during the update — don’t move it

The FP300 doesn’t support this. Every FP300 firmware update requires going back through the Aqara app cross-flash procedure: switch to Thread, update via app, switch back to Zigbee. If you’ve been through that once, you know it’s tedious. The FP310 handles it entirely within your local Z2M stack.

The Z2M stable release from May 26, 2026 added FP310 support with OTA enabled, so the OTA tab will surface any firmware Aqara publishes through the Z2M update channel. Check the Z2M FP310 device page for the current firmware availability before updating.

Troubleshooting

Sensor not appearing after Permit Join is enabled

The most common cause: the device is still in Thread/Matter mode. The LED in Thread pairing mode and Zigbee pairing mode look similar enough to confuse the issue. If Z2M doesn’t pick the device up within 60 seconds, go back to the Aqara app and verify the firmware switch completed both stages. A device that’s partially flashed may need a factory reset (hold the reset button for 10+ seconds until the LED blinks three times) before you can retry.

Z2M interview starts but stalls

Move the FP310 closer to your Zigbee coordinator during initial pairing. The device interview involves a lot of attribute exchange given the feature set — weak signal during that exchange causes stalls. After pairing completes, you can move the sensor to its final position.

Ghost presence — sensor reports presence when room is empty

Check in order:

  1. Run spatial learning from Z2M with the room in its normal state (furniture in place, sensor mounted in final position)
  2. Reduce detection range to match actual room depth
  3. Enable AI interference identification
  4. Lower sensitivity from high to medium

If you have a fan or air conditioning unit within the detection cone, that’s the most common cause. The 24GHz radar can pick up fan blade movement as movement signatures — the AI interference mode is specifically designed to learn and exclude these.

Temperature/humidity readings seem off

Use the calibration offsets in Z2M (offset + precision settings per sensor type) to align against a reference sensor. The FP310 sensor accuracy is reasonable for a presence sensor’s integrated environmental monitoring, but it’s not a standalone weather station — a degree or two of drift is normal before calibration.

Entities disappeared from Home Assistant after a Z2M restart

This is usually an MQTT topic subscription issue, not an FP310-specific problem. Verify your HA MQTT integration is set to use the correct Z2M topic prefix, and check that Z2M’s discovery prefix in its config matches what HA is subscribed to.

Availability Outside China

The FP310 is a China-market-only device due to the regulatory context that drove the 24GHz design. It’s not sold through Aqara’s global distributors.

That said, Chinese cross-border platforms (AliExpress, Taobao via forwarding agents) ship it internationally. If you’re ordering from outside China specifically for Z2M + HA use, the FP310 is a reasonable choice — particularly if you value the Z2M OTA update support. If you’re outside China and the FP300 is readily available locally, the 60GHz radar’s better micro-movement detection makes it the stronger pick for difficult presence detection scenarios.

Honestly, I think Aqara missed an opportunity by not releasing the FP310 globally. The Z2M OTA improvement alone would have made it a meaningful upgrade for Z2M users who have been re-flashing FP300s through the app every time a firmware drops. The regulatory constraint is real and understandable, but it’s the kind of limitation that makes a genuinely better product inaccessible to most of the people who’d benefit from it.

If you’d rather stick with a globally available presence sensor, our Aqara FP2 local setup guide covers a mains-powered option that runs fully local in Home Assistant. Readers who prefer the Matter/Thread path over Zigbee can run the FP310 through an Aqara M3 hub instead, though that route exposes fewer configuration parameters than the Z2M setup described here.

Whether Aqara eventually releases a global variant of the FP310 with 60GHz radar (essentially a revised FP300 with Z2M OTA support baked in) is an open question — their changelog is worth watching if that matters to you.

FAQ

Does the Aqara FP310 work with Home Assistant without the Aqara hub?

Yes. After a one-time firmware switch from Thread to Zigbee via the Aqara app, the FP310 pairs directly with Zigbee2MQTT and a Zigbee coordinator. No Aqara hub is needed for ongoing operation.

How do I switch the Aqara FP310 from Thread mode to Zigbee mode?

Use the Aqara Home app: add the device, select the Thread protocol option, and tap Switch to cross-flash to Zigbee firmware. The two-stage update takes 3–5 minutes; don’t exit the app mid-flash. The device enters Zigbee pairing mode automatically when done.

What is the difference between the FP310 and FP300 for Home Assistant users?

The FP310 uses 24GHz radar (China-market) while the FP300 uses 60GHz (global). The 60GHz FP300 detects micro-movements slightly better; the FP310 supports native OTA firmware updates inside Zigbee2MQTT, which the FP300 does not.

Does the Aqara FP310 support OTA firmware updates in Zigbee2MQTT?

Yes. The FP310’s Z2M support includes OTA, so you can check for and apply firmware updates from the device’s OTA tab in the Z2M web UI — no Aqara app re-flash required.

Is the Aqara FP310 available outside China?

Not through official channels. It’s a China-market device, but cross-border platforms like AliExpress and Taobao forwarding agents ship it internationally.

.
On this page
.

Read Next

If you found this useful, try these.