Be Smart, Go Local.

Best mmWave Human Presence Sensor Comparison: Aqara FP1, Tuya ZY-M100 and PS-HPS

In this article, we are testing 3 mmWave Human Presence Sensors and comparing their performance. The Aqara FP1, and two Tuya Sensors: ZY-M100 and PS-HPS.

Since mmWave Human Presence Sensors became a thing for the modern smart home, I’ve tested and reviewed a few of them on my AliExpress Reviews channel. First tested was the popular Aqara FP1, followed by two devices made by Tuya, the PS-HPS and ZY-M100. I’ve outlined their general characteristics, pros and cons, and Home Assistant integrations in their respective reviews.

In this article, I will compare all three of them in real life scenarios, measure responsiveness, speed and reliability.

Technical Characteristics Comparison

Aqara FP1Tuya ZY-M100Tuya PS-HPS
Device Type:EndDeviceRouterRouter
Product Size:52x45x36mm58x58x11mm (wall)
Ø61×39 mm (ceiling)
Sensor:60GHz mmWave Radar5.8GHz mmWave Radar24GHz mmWave Radar
Power Supply:5V1A5V1A (wall)
80-240VAC (ceiling)
Detection Range:5m9m (wall)
7m (ceiling)
Detection Angle:120°100°90°

All three devices come in ZigBee variant, but only the Tuya devices are capable of acting as a router in a mesh network. They can all be powered with a 5V1A adapter, but the FP1 is the only one that ships with an adapter in the package. Their angle and detection range are spec’d quite differently, but this does not translate exactly as stated.

All three devices are based around three different mmWave sensors operating at different bands: 5.8, 24 and 60GHz. Even though 5.8GHz is technically microwave and not millimeter wave, it operates in same way 24GHz and 60GHz sensors do.

It emits electromagnetic waves with the help of a transmitter which are reflected back to the sensor, this is known as the echo time. The receiver in the sensor then analyses the waves that are bounced back and the sensor is triggered. 

The Tuya PS-HPS is largest device of the lot, by far. I’ve mention in its review that its case is possibly being reused from something else by Tuya.

The thickness of the Aqara FP1 and Tuya PS-HPS is the same, but the FP1 is much smaller. The ZY-M100 is the thinnest and leaves the smallest footprint in your home. However, the FP1 is the only one that comes with a rotating swivel, which makes adjusting a seamless process.

Testing Setup

To test and compare the operation of these sensors, I decided to mount them at eye-height overlooking a wide room and measure their response in Home Assistant. They are all USB powered, paired to ZigBee2MQTT + Sonoff ZBDongle-P with signal quality of 255 LQI.

I left them in this position 2 days before actually testing, to ensure their communication is solid. None fell of the network in this time frame, or presented any other issues so I was good to proceed.

I fixed all three on a wooden board, perpendicular to the floor. I secured the Aqara FP1 swivel, so there is no advantage or disadvantage when benchmarking. I had to power up the Tuya sensors with old phone chargers, because they ship only with a cable.

The layout of the room allowed for multiple points of entry, as well as distance. To measure response when approaching directly from a greater distance, I entered on the opposite side of the room (terrace). To measure response when approaching shorter distances, I entered from the side (kitchen).

Test A: Presence Detection Speed

In the first test, I measured the detection speed reported of each of the sensors in Home Assistant. Their main binary_sensor.presence entities were added to a dashboard and measured with a timer.

Some users asked for the sensor.presence_event entity of the Aqara FP1 to be measured as well, because it reports faster than its main binary_sensor entity. I used the maximum sensitivity and range settings for each sensor:

  • Aqara FP1
    • approach_distance: far
    • monitoring_mode: undirected
    • motion_sensitivity: high (maximum)
  • Tuya ZY-M100
    • detection_delay: 0s
    • fading_time: 0.5s
    • minimum_range: 0m
    • maximum_range: 9.5m
    • radar_sensitivity: 9 (maximum)
  • Tuya PS-HPS
    • default settings (sensor does not allow tweaking!)

Test A1: Approaching from 3 meters

YouTube Direct Link:

  • First entity: Aqara FP1 presence_event
  • Second entity: Tuya ZY-M100 binary_sensor
  • Third entity: Tuya PS-HPS binary_sensor
  • Forth entity: Aqara FP1 binary_sensor

The first entity to update its state at 3 meters is the Aqara FP1 presence_event entity, followed closely by the Tuya ZY-M100 binary_sensor main entity. Interestingly, the FP1s main entity is the last one to change its state. The timeline is mirrored in my Home Assistant logbook.

Test A2: Approaching from 6 meters

YouTube Direct Link:

  • First entity: Tuya ZY-M100 binary_sensor
  • Second entity: Aqara FP1 presence_event
  • Third entity: Tuya PS-HPS binary_sensor
  • Forth entity: Aqara FP1 binary_sensor

At 6 meters, the first entity to update its state is the Tuya ZY-M100 binary_sensor, followed closely by the Aqara FP1 presence_event entity. Again, the last to change its state is the Aqara FP1 main binary_sensor entity with the Tuya PS-HPS being somewhere in between. The same can be seen from my HA logbook:

Test A3: Hand wave from behind a wall

YouTube Direct Link:

  • First entity: Tuya ZY-M100 binary_sensor
  • Second entity: Aqara FP1 presence_event
  • Third entity: Tuya PS-HPS binary_sensor
  • Forth entity: Aqara FP1 binary_sensor

When a hand is waved from behind a wall, the Tuya ZY-M100 is the first one to react. The Aqara FP1 presence_event entity changes state to a little before the Tuya PS-HPS binary_sensor, with the main entity of the FP1 again being last. From the logbook:

The only thing which can be considered a false positive is the presence event of the Aqara FP1 changing state to “approach”, when in fact I was just waving my hand from behind the wall.

Aqara FP1 Presence Event as a Trigger

As you can see from my tests, the Aqara FP1 operates a little differently from the other two sensors. When it detects motion, first it updates its presence_event entity with the appropriate event (eg. enter, approach, leave etc.) In about 5-6 seconds, it updates its main binary_sensor entity state to “on”, meaning motion detected.

Because the main binary_sensor is slow to change state, we can exploit the presence_event entity in our automations. If you want to rely on its accuracy, you can even fire different automations based on the approaching side. To to this, we have two options:

Triggering automations based on non-null value (anything other than leave)

description: "Turn on Light When Presence Event Changes State"
mode: single
  - platform: state
      - sensor.aqara_fp1_presence_event
    from: leave
condition: []
  - service: light.turn_on
    data: {}
      entity_id: light.dining_room

This automation will turn on the lights whenever the presence_event entity is updated with any state other than leave, which is the default the entity stays at when no presence is detected. For this automation, monitoring_mode must be set to undirected.

Triggering automations based on approaching sides (left_enter, right_enter, left_leave, right_leave etc.)

description: "Turn on Light When Entering From Left Side"
mode: single
  - platform: state
      - sensor.aqara_fp1_presence_event
    to: left_enter
condition: []
  - service: light.turn_on
    data: {}
      entity_id: light.dining_room

With this automation, you can turn on your light when you approach the room from the left side. This requires the monitoring_mode to be set to left_right.

Please note, you will have to experiment with positioning and sensitivity in order to achieve optimum results for the directed mode of operation. This monitoring mode works best if the FP1 is placed in the middle of a room, so it has unobstructed vision on all sides.

Test B: Presence Clearance Speed

In this second test, I measured the presence clearance speed of each device. Their settings remained the same, maximum sensitivity and range for the ZY-M100 and maximum approach distance and sensitivity for the FP1.

YouTube Direct Link:

  • First entity: Aqara FP1 presence_event
  • Second entity: Tuya ZY-M100 binary_sensor
  • Third entity: Aqara FP1 binary_sensor
  • Forth entity: Tuya PS-HPS binary_sensor

The first one to detect the room was empty is the Aqara FP1 precence_event entity, followed by the Tuya ZY-M100 main binary_sensor entity. The last one to clear the room is the Tuya PS-HPS at a whopping 1min 30sec.

Repeating the test multiple times, only confirms the results. The FP1 is the most accurate and consistent when clearing motion, with the Tuya ZY-M100 following suit in a similar time frame. On the other hand, the Tuya PS-HPS would sometimes clear motion in 15 seconds, other times in 2 minutes.

False Positives

False positives are really difficult to overcome with an mmWave sensor while maintaining reliable human presence detection. If you crank up the sensitivity to maximum, the sensor can get triggered by stupid stuff you would not anticipate. For example, when doing my tests, I got a few false positives in all three sensors:

  • Motion in my front yard detected through the window
    • Had to lower shutters completely to accurately test devices
  • If I turned my ATX PC case with the backside facing the sensors, I got a false positive from the fan
  • I do not have any pets, but they would surely cause false triggers

If you lower sensitivity and range significantly, you risk crippling the sensor capabilities and correct operation. The only way to minimize false positives is through correct positioning and constant trial and error.

There is no “one solution fits all” situation. Experiment with mounting the sensor in a different corner of the room, at different height and with different settings.

False Negatives

False negatives are another issue users encounter with mmWave sensors. After all, this is a presence sensor, so the lights need to stay on while I’m on the couch watching TV. I tested the three devices in a couple of situations:

  • Watching TV in recliner – 3 meters distance from sensors
    • No false negatives
  • Lying in bed – 4 meters distance from sensors
    • False negative on Tuya PS-HPS
  • Sitting at table – 5 meters distance from sensors, at about 90° angle
    • False negative on Tuya PS-HPS
    • FP1 Presence Event changed to approach

The Tuya PS-HPS is the only one that gave me false negatives when being completely still. The FP1 presence event entity changed state to approach, even though I was sitting in front of the TV. This did not trigger the main binary_sensor presence entity, as approach is a state when the room is occupied.

ZigBee Communication

Each of the three devices I tested are ZigBee based. Even though the Tuya mmWave sensors are available in Wi-Fi variants and their hardware is the same, I recommend you stay from them as they are cloud dependent.

As far as ZigBee stability goes, each of them operates without issues in a well founded ZigBee mesh network. Neither fell of the network or presented communication issues of any kind. However, only the Tuya devices are identified as a Router while the Aqara is an EndDevice.

Meaning, the Tuya sensors will help solidify your ZigBee mesh and interconnect with other devices you already have. Unfortunately, the Aqara FP1 will not route your mesh traffic.


These three mmWave human presence sensors bring a new aspect to motion detection. The drawbacks of traditional PIR motion sensors are somewhat eliminated and I expect them to become fully obsolete in the near future as mmWave tech takes over as the main motion detection sensor. So, which of these should you pickup and try out if you haven’t already? I’m going to summarize into a couple of categories, and you can decide for yourself:

  • Detection Speed:
    • Winner: Aqara FP1/Tuya ZY-M100
  • Clearance Speed:
    • Winner: Aqara FP1
  • Detection Range:
    • Winner: ZY-M100
  • Flexibility:
    • Winner: Aqara FP1
  • False Triggers:
    • Winner: Aqara FP1/Tuya ZY-M100
  • Price:
    • Winner: Tuya ZY-M100

When it comes to detection speed, the FP1 and ZY-M100 are a very close match and both outperform the PS-HPS. You will have to rely on the presence_event entity for the FP1 for faster triggers, so it can match the speed of the ZY-M100.

On the opposite side of the spectrum, the Aqara FP1 is the fastest to clear motion in its presence_event entity. The ZY-M100 follows closely behind by seconds, while the PS-HPS takes a large amount of time to change its state to clear, >1min 30sec. The FP1 main binary_sensor entity is somewhere inbetween.

As far as range is concerned, the Tuya ZY-M100 edges out both the FP1 and PS-HPS by a solid margin. If I had to rely on a sensor to detect human presence in a large room or hallway, I would pick the ZY-M100.

If you value adjustability, the Aqara FP1 is the clear winner. It’s main entities can be adjusted to fit your installation position and the swivel offers additional flexibility. The ZY-M100’s range and sensitivity can also be adjusted through ZigBee2MQTT, while the PS-HPS offers absolutely no options.

False triggers are a problem for all three sensors, and as there is not “one solution fits all” you will have to experiment and adjust acording to your setup. I’ve decided to give this win to both the FP1 and ZY-M100, just because they offer settings which can be used to lower or eliminate false positives/negatives.

As far as pricing goes, nothing can beat the ZY-M100 and the features it offers for half the price of the Aqara FP1. Considering the PS-HPS is around the same price, I would not regard it as a viable alternative as it falls short in so many categories.

If you decide to buy any mmWave presence sensor, consider using one of our affiliate links bellow. It helps us keep the blog going and purchase new devices for testing and reviews.

Aqara FP1 ~ $49

AliExpress | AliExpress

AliExpress | AliExpress | | | |
*If links fail to open, try disabling your AdBlocker.

Tuya ZY-M100 ~ $25

AliExpress | AliExpress

AliExpress | AliExpress | | | |
*If links fail to open, try disabling your AdBlocker.

Tuya PS-HPS ~ $25

AliExpress | AliExpress

AliExpress | AliExpress | | | |
*If links fail to open, try disabling your AdBlocker.

39 thoughts on “Best mmWave Human Presence Sensor Comparison: Aqara FP1, Tuya ZY-M100 and PS-HPS”

  1. Nice job and good review. In positioning, did you use anything to “shield” an area of item from false positives? Just curious on how to deal with ceiling fans in a room, without just aiming at the floor! But probably not tinfoil!! WAF.

    Got the PF1 and ZY-M100 coming. Just think the HPS was a thrown together design with existing parts and it really using the wrong detector frequency.

    • I mostly dealt with false positives by tinkering with their settings and changing mounting positions. A ceiling fan is the mmWave sensors arch nemesis. You are just going to have to experiment friend, no quick solution.

      As for the FP1, you can use the left_right monitoring mode to trigger automation from the side far away from the fan.


  2. Great article, thanks so much for testing them, this gives me so much input!
    Any idea what area the ceiling sensor will cover at height of 2 meters?

    • Hey,
      The ceiling model has range of about 3 meters (9 feet) from the top down, with width of about 7 meters (22 feet) maximum when the beam reaches the floor. This covers an angle of about a 100 degrees.


      • Assuming this is mounted in a ceiling, does orientation of the M100 matter at all or is the coverage area 100 degrees circular in all directions?
        Also if put in a residential hallway ceiling, will this penetrate the drywall hallway walls and unwantingly detect presence from rooms?

        • It needs to be parallel to the ceiling for the best coverage in all directions, but if you need to you can tilt it.
          No, it will no trigger from presence in other rooms through the drywall.

  3. Hi. Great article.
    One question: your first automation should not work because trigger is from state: leave and condition is state: leave. Or I’m missing something?

  4. hi, thanks for your post. how was your fp1 integrated in home assistant? I use the conbee 2 with deconz but I don’t have the presence event sensor?

  5. Thank you, i was trying to but for some reason the latest update is not completely working. Updating in deconz says successfully, but the firmware then shows the previous version again and gives me the update button again. tried this several times without success. Are there any other routes to update te stick?

      • Updated successfully! Unfortunately i still don’t have a presence event sensor. I also have the option ‘device mode’ which is undirected. If i try to change it to leftright it give an error :
        ‘cannot call service select/select_option …. could not set attribute “type:608″‘

      • Hi! I have the same problem, that I don’t see the presence event sensor :/ I’m using conbee II with ZHA and upgraded to the latest firmware (deCONZ_ConBeeII_0x26780700.bin.GCF). When I open the device in the logbook is see events like this: LivingRoom.fp1motion Enter – Sensor event was fired. Any idea?

        • Hello Ferenc,

          Its possible the entity is there, just not exposed to Home Assistant.
          Please try the following:
          Navigate to the Automations editor
          Select “Device” as a Trigger
          Select the Aqara Fp1
          See if it lists the states “enter”, “leave” etc. as possible triggers.

          Let me know how it goes,


  6. Excellent article.
    One question though. I have 3 of the ZY-M100 on its way. I have Z2m setup on HA. Would I need to purchase their hub to be able to update firmware if/when a new firmware is released in the future? I know Z2M can do some OTA firmware updates but not sure if it would be able to support this device for updating?

    • No, you would not have to purchase any hub. If a firmware update is available for the device in its official hub, it will be available in ZigBee2MQTT too.
      At this points, its the latest firmware.


    • Once paired through Zigbee2MQTT, the ZY-M100 and the FP1 both expose entity which you can adjust either through Home Assistant or Zigbee2MQTT.

  7. Very interesting – thanks for posting it.
    Would you recommend buying now or waiting a bit until the technology becomes more streamlined (I dont mind playing but dont want to play all the time :))


    • I would recommend getting the ZY-M100 now. The Aqara FP2 is currently in development, but I expect that device to be at least twice the price of the Tuya ZY-M100.

      The features the ZY-M100 offers now are great for the price tag. Go for it.


    • Hello Aidan,

      No, absolutely not. Unlike 2.4GHz, 5GHz has 25 non-overlapping channels.
      I just checked, channel width is set to 40 and channel on auto.
      No issues whatsoever.


  8. I am wondering how these would stack up against the “Everything Presence One” which is a presence detector a YouTuber built and is now selling. problem is they are hard to get but outside the controller board you can purchase all the other parts on your own. It uses a Panasonic Industrial PIR motion sensor (12 meter detection), a 24GHz mmWave SEN0395 Module from DFRobot, and also has a Temperature and Humidity sensor for monitoring climate status, Ambient Lighting sensor for smart control of lights, Bluetooth Tracking for wearables and an ESP32 for connectivity. It uses ESPHome and is made for Home Assistant. It’s slightly more expensive then the FP1 but he built it because he wasn’t happy with the FP1. It still doesn’t solve the issue with fans and other motion which is the only issue with MmWave sensors. I have used some aluminum foil over the FP1 to not detect my overhead fan but it’s an eyesore for lack of a better term but metal is the only material MmWave sensors can’t penetrate.

    • Hello,

      I am very farmiliar with the Everything Presence One. I have not managed to get my hands on one yet though 🙁

      There are some major differences between the EP1 and FP1 or ZY-M100, such as the dedicated PIR motion sensor. Other noteworthy (and deterrent for some) is the EP1 is wifi only and not Zigbee. This can prove to be an issue when implementing the sensor at scale, as I suspect connectivity issues will start to arise.

      For everything else, I consider the EP1 the superior device even though I have yet to test it. Lewis did a great job and he’s an awesome human being that deserves to be supported!


    • No, both integrations cannot run on a single coordinator. And there is no need to run both anyway.
      Can I ask why are you asking? What are you trying to achieve?

    • You can run Z2M on a separate VM, or bare metal (e.g. a Pi). Only one instance per coordinator though. I run Z2M instances one separate machines. One as a HA add on and one on a Pi running Debian, but connected to the same HA instance.

      So you can run ZHA on your HA device , an run an MQTT broker. You can then connect to that broker from a separate device running Z2M with it’s own coordinator dongle.

      Each device will only connect to the network (and hence coordinator) it is paired with though.

  9. Would any of the mmwave devices *require* that there be line of sight? I.e., if I were to install any of these facing “down” through the attic (i.e., laying flat against the backside of the drywall), would they work as expected?

      • Doesn’t that cause false positives between rooms? If I put a mmWave sensor in two rooms right next to each other, would I have problems with motion from one room causing a false positive in the other room?

        • In my experience no, no It doesn’t. But if it’s a really small room, it might.
          Depends on placement mostly.

  10. I have 30 of the Tuya ZY-M100 (7 wall mounted, the rest ceiling mounted) and have been testing and running combinations for months. Here’s my observations:

    The ceiling ones run on 120-240V which is so much easier to wire up than using a transformer. In my testing they are much better for most rooms as they don’t get ‘distracted’ by things passing doors/windows as much. Wall sensors are better in longer corridors, but I have paired with some small inline transformers to make the wiring neater.

    Sadly, they suffer from manufacturing quality issues, about 1 in 7 (in my limited sample size) have problems, like bad detection, or loss of pairing on power cycles.

    Worse they are SUPER chatty and their firmware is buggy (with no updates). They’re so bad I now run a separate z2m instance with a dedicate network just for them, so they don’t constantly swamp and kill my main network (which happily has ~150 devices on them). Even then, after 10 devices you start getting problems, and between 15-20 all bets are off, because they swamp the channel. This isn’t a Z2M or Home Assistant issue, as I run them on a meaty server, and debounce the messages.

    If you’re only putting one of two in your home then they’re great – but be aware you’re reducing the overall network capacity by ~10 devices for each one you add.

  11. Hello, I would like to add something here that is kind of relevant. I have had troubles with positioning my sensors into the correct direction, so I was looking online for a stand that will help achieve this.

    Here is the link –

    It should work with both PS-HPS and ZY-M100, or any other future mmwave sensors, as I know some of them or most of them dont include one. The price is good as well! I hope this helps other of your readers.


  12. Just in the good spirit of mmwave human presence sensors, I found several more. Here is the link:

    How many have you got already? Waiting on more? I cant wait to see detailed comparing the way you do it! I am in need for a the best one 🙂

    My biggest problem is false positives/negatives. In the dining room while eating is all good. But in the living room when watching TV it fails to detect me from time to time, goes to AWAY and few seconds latter to HOME again. I have tried everything, all settings, all positions and mounting, no help!

    Best of luck friends!

Comments are closed.