ANNIVERSARY SALE 20.03-26.03
EXCLUSIVE DISCOUNT CODES
SHS5 ($5 off $45) | SHS9 ($9 off $75) | SHS18 ($18 off $150) | SHS25 ($25 off $210) | SHS35 ($35 off $290)
EXCLUDING RU, AE, UZ, BH, KR, AM, KW, YE, FR, SA, ES, KZ, QA, BR, TJ, BY, MD, AZ, TM, KG, GE, OM, US
UPDATE: We’ve made a detailed head-to-head comparison of the top three mmWave presence sensors available currently on the market: Aqara FP1, Tuya ZY-M100 and Tuya PS-HPS. Read the full article.
Recently I tested an mmWave-based Human Presence sensor made by Tuya, model PS-HPS. It was good for basic human presence detection in specific circumstances, but had a few flaws and fell short in some areas behind the Aqara FP1. This is a review of a similar device, Tuya Human Presence Sensor ZY-M100. This model is available in two versions:
- ZY-M100-S: ZigBee based, wall-mounted version
- ZY-M100-L: ZigBee based, ceiling-mounted version
Aside from the casing, the hardware for both sensors is almost identical and the main difference is the wall-mounted version needs a 5V1A supply, while the ceiling mounted version can be directly powered by 80-250VAC.
A Wi-Fi version is also available, but as usual, it’s Tuya cloud dependent, so I suggest you avoid it. This device (~$27) is considerably cheaper than the FP1 (~$49), so let’s test if this is a viable human presence alternative.
You can currently buy the Tuya ZY-M100 for ~$25 on AliExpress or Amazon.com (jump to more links). Note that Amazon’s prices are considerably higher.

Technical Specification
- Celling Mount Size: Ø61×39 mm
- Celling Mount Opening Size: 53-58mm
- Wall Mount Size: 58x58x11mm
- Sensor: 5.8GHz Millimeter Wave Radar
- Communication Protocol: ZigBee/ Wi-Fi
- Celling Mount Sensor Input: 80-240VAC
- Wall Mount Sensor Input: USB 5V1A.
- Working Temperature: -20℃~+70℃
- Wall mount sensor sensing distance: 0.3-9m(Default 6m).
- Celling mount sensor sensing distance: 0-7m(Default 5m).
- Illuminance Sensor: 0-2000 LUX.
- Detection Time: 0-10s
- Detection Clear Time: 2-1500s.
What’s inside?
The Tuya Human Presence Sensor ZY-M100 comes in a cardboard package containing the sensor, manual, USB-A to Micro-USB cable and some silicone stickers for installation. A 5V1A adapter is not included.

The ZY-M100 sensor is neatly packed in a well designed plastic case. A human logo is placed on the front side, as well as two small holes on the top: one is the status LED, the other the Illuminance sensor.
The case is held together with 3 hex screws found on the back. They labeled this the “Mini Human Breathe Sensor”, indicating it can detect a human breathing.

On the bottom, a small pairing button is placed next to the Micro USB port. The device is very thin and light, which is completely opposite to the Tuya PS-HPS Human Presence sensor. That device is shelled in a giant glass-pane case, possibly reused for something else.

Once the hex screws are removed, a small PCB is revealed. It is in line with its surrounding case, unlike the PS-HPS model, which felt like the PCB was stretched to fit the enormous case.

The mmWave sensor itself is model LeapMMW MR5G21 (datasheet) made by a Chinese company Chengdu Jiyue Shijin Technology Co., Ltd. This company already manufactures the well known DFRobot SEN0395 mmWave sensor which is based on their LeapMMW HS2xx3A series 24GHz sensor.

The logic of operation is handled by a Gigadevice GD32E230 ARM Cortex-M23 Microcontroller (datasheet).

Considering this is the ZigBee variant, communication is enabled by a Tuya Module ZS3L, which is based on a 32-bit low-power Arm Cortex-M33 core, 768-KB flash memory, and 64-KB RAM, with rich peripherals. This module operates on channels 11 – 26@2.400-2.483GHz, 250 Kbit/s air interface rate.

The Illuminance sensor is placed next to the LED and labelled D2. Full view of the PCB front and back side.

Integration Compatibility
The sensor is fully supported only ZigBee2MQTT and partially in ZHA, with Deconz support yet to come. To pair this device, simply hold the pairing button for ~5 seconds until pairing mode is indicated by the small blinking LED.
In ZHA, only a binary_sensor.presence entity is exposed to Home Assistant which means the device is not yet fully integrated. In ZigBee2MQTT, all the options are available and the sensor can be fine tuned and adjusted.

Because their hardware is the same, the image from the ceiling mounted version is pulled, even though this is the wall mounted version.

The following exposed entities are available in Home Assistant through ZigBee2MQTT:
- binary_sensor: Human Presence Detected On/True, Off/False
- sensor:
- Illuminance (lux)
- self_test: Health check with possible resuts: checking, check_success, check_failure, others, comm_fault, radar_fault.
- target_distance: Distance of the detected target
- number:
- detection_delay: Delay detection 0-10sec
- fading_time: Sensor fade time 0-1500sec
- minimum_range: Minimum range to detect motion 0-9.5m
- maximum_range: Maximum range to detect motion 0-9.5m
- radar_sensitivity: Adjust sensitivity of the sensor 0-9
- linkquality: Signal quality in LQI
Testing
As usual with mmWave sensors, constant trial and error is required to achieve optimum results. You will probably have to test multiple mounting positions, angle and direction. The wall-mounted version comes without a 5V1A adapter and a short cable (1m), so you will have to get creative when installing the device.
The main goal is to avoid false positives and negatives in detecting motion. This is the leading culprit of automations triggering when they shouldn’t or failing to trigger when they should. Luckily, when integrated through ZigBee2MQTT, the sensor sensitivity and range can be adjusted and fine-tuned so you can minimize false triggers.
To test the sensitivity and range of the Tuya ZY-M100, I compared it against the Aqara FP1. Both devices were positioned next to each other at eye-height and I documented the results in Home Assistant. I examined the history chart by using the awesome History Explorer Card by dev alexarch21.

Detecting Motion
The detection delay is the most important variable for triggering automations. The FP1 detects motion in around 5-6 seconds with the same constant delay which cannot be adjusted. This is where the ZY-M100 shines, as it blows the Aqara FP1 out of the water. In my test, (Sensitivity 7, Range 8m) the Tuya ZY-M100 detected motion almost instantly! This is nearly as good as a fast PIR motion sensor! Have a look at this video:
I added the main binary_sensor entities, and simply walked in the room. As expected, the Aqara FP1 took ~7 seconds to trigger, while the Tuya detected motion in 1 second! I repeated the test multiple times, the ZY-M100 detected motion, without fail within 1.5 seconds.
Clearing Motion
With default settings, the FP1 is a little faster in clearing motion (about 10-12 seconds) and is always constant, while the ZY-M100s clears motion in about 60 seconds. This results in more detection events recorded by the Aqara compared to the Tuya when using the factory settings.
However, you can tweak this variable by changing the value of the fading_time entity. In my test, if the fading_time was set to 0 seconds, it cleared motion in about 4-5 seconds. If the fade time was set to 5 seconds, it cleared motion in about 10-11 seconds. It adds a couple of seconds as a cooldown, but it works for fine-tuning the delay. I suggest you keep it higher, to avoid false negatives triggering, especially in a large room.

As you can see from the logbook, the Tuya is faster at detecting motion than the FP1 and if tweaked correctly, it will clear motion in a similar time frame like the Aqara FP1.
Other Parameters
The sensitivity setting also reacted appropriately to my adjustments. I cranked it up to maximum (9), so I could test the difference. When set lower, a false negative can occur if the room is too large. In other words, the sensor can’t “see” you accurately when you are too far. When set to maximum, no false negatives appeared and the Tuya ZY-M100 worked as it should.
The target_distance entity measures distance to target in meters. When motion is cleared, it will set its state to 0. As you move through the room, the value changes very fast. In my opinion, this is unreliable and useless for any kind of automation. Please note, this entity is very noisy, changing state every half a second or so. You may want to exclude it from your recorder.
The maximum and minimum range settings can be used to change the distance the sensor can “see”. Maximum is set to 6 meters by default, I suggest setting it to 8-9m. You can leave the minimum to 0, so it can detect moving objects in its immediate vicinity.
The Illuminance sensor was fairly inaccurate, possibly because the hole is too small and not enough light reaches the sensor. This was not an issue for me, because I am testing a Human Presence Sensor and not a Lux sensor.
Verdict
The Tuya ZY-M100 human presence sensor is an incredibly capable and versatile presence detection device. It’s very comparable to the Aqara FP1, and in some instances, it performed even better. It detected motion faster than the FP1 is every instance we tested it.
The wall mounted version of ZY-M100 has no mounting swivel, like the one of the FP1, which limits it mounting position. You will have to get creative and experiment with tilting the device so it can see the whole room. The ceiling mounted version doesn’t require such a swivel, as it’s meant to be mounted perpendicular to the floor/ceiling and can detect motion within its line of sight.
You will have to supply a 5V1A adapter for the wall-mounted version, as it comes without one. It is not needed for the ceiling-mounted version because it’s directly powered by 80-240VAC.
As far as performance goes, this is excellent mmWave-based presence sensor. In my test, it triggered a false negative a couple of times, while I was still experimenting with position and angle. Once I set it up correctly, increase its sensitivity and range, it never triggered a false negative (eg. Turn off lights when no motion is detected). It operates as a router in a ZigBee mesh network and is very stable.
To achieve the best results, tweaking the available options is necessary (sensitivity, range, cooldown). These are only available in ZigBee2MQTT for now, I will update the guide when ZHA offers full support.
Buy
The ZY-M100 is sold on AliExpress for ~$25, depending on your location. Prices are considerably higher on Amazon because the item is being resold by various retailers. If you do not have a problem with waiting a little longer for AliExpress shipping, I suggest you save a little money and order from there.
If you want to order the Tuya ZY-M100 Human Presence Sensor, consider using one of affiliate links bellow as it helps us order and test more home automation devices.
Tuya ZY-M100 – Ceiling Mounted ~ $30
AliExpress | AliExpress | AliExpress | AliExpress
Amazon.com | Amazon.co.uk | Amazon.de
Amazon.ca | Amazon.nl | Amazon.es
Amazon.it | Amazon.fr
*If links fail to open, try disabling your AdBlocker.
Tuya ZY-M100 – Wall Mounted ~ $30
AliExpress | AliExpress | AliExpress | AliExpress
Amazon.com | Amazon.co.uk | Amazon.de
Amazon.ca | Amazon.nl | Amazon.es
Amazon.it | Amazon.fr
*If links fail to open, try disabling your AdBlocker.
UPDATE: We’ve made a detailed head-to-head comparison of the top three mmWave presence sensors available currently on the market: Aqara FP1, Tuya ZY-M100 and Tuya PS-HPS. Read the full article.
Great review – thanks.
You refer to this as a presence sensor but then mostly explain the accuracy and results around motion – arriving and leaving etc.
What’s it like with no motion? Does it accurately report presence if you are present but static for a long time? (e.g. watching TV).
Thanks
Yes, its very accurate when you are still. False negative triggers are almost non existent when the sensitivity is cranked up. It performs well as a constant presence detection sensor
… And also what’s the range like at static presence compared to FP1?
Honestly, better than the FP1. I’m preparing a detailed comparison mega post, testing both of them in different scenarios. So far, this weird sensor is ahead ZY-M100
Thank you for the quick reply.
I’ve been using the FP1 and mostly impressed with it. I’d like to add more but it’s good to see a cheaper alternative that is as good, and possibly better.
i have tested tuya versions
ZY-M100-S: ZigBee based, wall-mounted version
ZY-M100-L: ZigBee based, ceiling-mounted version (12v version)
lots of tries and i can say still not enough for human presence detection
ZY-M100-S can detect presence almost as fast as aqara PiR sensor, more precise
ZY-M100-L a little slower on detection that ZY-M100-S not by much, had been times when it detects u after u pass it (mounted in celling)
unfortunately had false negative on booth of them while watching TV, reading a book, playing on phone/tablet or fall to sleep – staying for a longer time still (ZY-M100-L had a little less false negative that ZY-M100-S)
did not test them together as a group in same room
ZY-M100-L always give a false positive to a robot vacuum cleaner same for ZY-M100-S if oriented to scan the floor
Best way to test it for false negative is while u sleep
Thank you for your detailed response.
This is also inline with my tests. I mentioned false positives or negatives are a real challenge to avoid, but this goes for all mmWave presence sensors not just this one.
There is no specific setting that would achieve optimum results for every user, people need to experiment by themselves. Overall its a good device at half the price of the FP1.
Cheers
How’s the comparison for the angle of view?
The Aqara FP1 claims an angle of 120° while the Tuya ZY-M100 of 100°. However, in real life scenario this does not translate exactly as declared. They operate almost the same and it largely depends on mounting position. Thanks for reading
hey thanks for the great review.
I just got the zigbee version of the ZY-M100. However I cannot connect it to Zigbee2Mqtt. It pairs fine but says its unsupported.
How did you connect it to zigbee2mqtt? did you use any external converters? and finally what version of zigbee2mqtt are you using?
Many thanks.
Hello Ahmed,
You need to update ZigBee2MQTT to the latest version. This sensor is officially supported, see here:
https://www.zigbee2mqtt.io/devices/TS0601_smart_human_presense_sensor.html
Cheers
I am using Home Assistant Operating System on a PC with the add-in for Z2M. It’s showing version 1.28.2, which seems to be current, but it’s showing my new ZY-M100S as Unsupported.
Looking at this issue it looks like I’m not alone.
https://github.com/Koenkk/zigbee2mqtt/issues/15032
Did you have to do anything special to get yours to work?
No, I did not do any additional configuration.
My testing setup is: ZigBee2MQTT v1.28.2-1 + Conbee II with latest firmware.
I’ve also installed the device to ZigBee2MQTT v1.28.2-1 + Sonoff ZBDongle-P.
Also no issues. Maybe you should try the dev branch of Z2M?
hey I got it working finally thanks.
quick question what value did you put for your detection delay?
Love this review! I’m really interested in the ceiling mounted version but have a couple of questions.
If it’s mounted on a 8’ ceiling what radius could one expect at about 1-2’ (couch height)?
Also, I’m not 100% clear on the power supply I’d need. You mention 80-250VAC. Is that the power supply I would need to purchase? Do you happen to have a link to one that would work? Also, could you wire 4 of these into the same power supply?
Last but not least, do you install this straight into the drywall or should you install some sort of lighting can or something so it’s up to code?
Would really love some more details on the ceiling version as it’s so unique!
Hello Phillip,
The one listed on Amazon ships a power supply, so you only need to connect it to your mains power. You could wire as many as you want.
As for installation, you can install it directly in your drywall by cutting the appropriate diameter hole. Nothing else is needed. As for if its up to code, I do not know the answer to this question. Every country is different, I am location in the EU.
Cheers!
Cheers mate! I ordered them and am trying to add the ceiling mount model into my zigbee2mqtt install but I’m getting an error message that it’s not supported:
“Device ‘Oxf4b3b1fffec9a175’ with Zigbee model ‘TS0601’ and manufacturer name
‘_TZE204_ztc6ggyl’ is NOT supported, please follow hhttps://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html”
Have you tested and confirmed that the ceiling model works with Zigbee2Mqtt?
https://i.postimg.cc/Yq1L0mpM/Screenshot-2022-11-26-at-1-00-55-PM.png
Hello Phillip,
The ceiling model is DEFINITELY supported, you do not need to worry. I have one installed in a hallway, works perfectly.
Please check the official Zigbee2MQTT database here: https://www.zigbee2mqtt.io/devices/TS0601_smart_human_presense_sensor.html
You most likely need to update your Zigbee2MQTT version and Home Assistant version if you have not already.
It’s also possible you need a coordinator firmware update. What stick are u using?
If you need further help, please send me an e-mail admin@smarthomescene.com.
I’ll be happy to assist you.
Cheers!
Thank you! I have the Tubes Ethernet stick. Just purchased it.
Here are my versions:
Home Assistant 2022.11.2Supervisor 2022.11.2Operating System 9.3Frontend 20221108.0 – latest
Zigbee2mqtt : 1.28.2-1
I also just emailed you if that’s easier. Thanks so much for your help!
I finally got it to work. I had to install the dev version of zigbee2mqtt. Apparently there’s a new profile for some of these that was just added and is not yet in the stable channel.
These are WAY better than the Aqara, you were right. The ceiling mounts are so nice!
Wish the wall mounts had some sort of swivel. Will be hard to mount those I think.
I just received a few of the ceiling variants yesterday but while they work, they’re absolutely spamming my zigbee network. I’m seeing multiple messages per second constantly. Can you verify if this is not an issue for you?
Hello,
No this has not been a problem for me. If you are using Zigbee2MQTT, you can use debounce to combine messages in one and publish them:
Debounces messages of this device. When setting e.g. debounce: 1 and a message from a device is received, Zigbee2MQTT will not immediately publish this message but combine it with other messages received in that same second of that device.
Anyone else with the Tuya sensor finding it is completely useless? I have 2 connected to Home Assistant by Z2M (dev branch) and both sensors keep flip flopping to Home and Away constantly. I have set the radar sensitivity to max, set detection delay to 0, set fade timer to 60, reigned in the range to 4m yet even with someone sat 1m away (clear line of sight) from it for a few hours the sensor keeps flip flopping the entire time. Specifically after half an hour the sensor goes to Away and doesn’t change again
Yep, I bought a few of these and set them up yesterday on the Z2M HA Edge add-on. Level 9 sensitivity, within range, 30s fading time… they do seem to report “false” a lot. I think they’re on the non-dev branch now, so perhaps switching back to Z2M Stable will improve things…
Same here just got one and even at night with nobody in the room it was flipping back and forward between home and away. Did you ever get this fixed?
Something is triggering the sensor. They are set off by the most obscure things.
Figure out if there is something in the room that might create small motion when you are not around
I’ve been fiddling with the ceiling mounted version and it’s a cool bit of kit. A few things worth noting – there’s no ground connection on the device. Also I’ve been unable to determine anywhere that it is IC rated (insulation contact). Also no easy way to run multiple of these on the same circuit (in the US at least) you’d need to run cable to a junction box near it and use a pig tail out to the sensor and then run from the junction box to your next location
Thank you for this review, which is amazing and helped me decide what to do.
Recently I received this wall-mount sensor, and I’m really excited about it!
I think I will need to buy 2 or 3 more 🙂
But…they call it wall “mount”, but you can’t mount it. If anyone has found (or created) a 3d printcase…let me know?
Hello Dennis,
Wall mounted refers to the flat design meant to go on a wall instead of a ceiling. You can mount it with the included stickers.
It’s a great device, works very good! Cheers!
I have these and they work OK, I really need to tweak the parameters but only have the default zigbee install running on HA Yellow. Do I really have to add Zigbee2MQTT just to access the parameters of this device?
Hey Nick,
No need to install zigbee2mqtt, there is a custom quirk available for ZHA.
You can either:
1. Apply the quirk yourself
2. Wait for it to be pushed with a future update
It’s available here:
https://github.com/zigpy/zha-device-handlers/pull/1928
Cheers!
How about pets like aquarium fish or air bubbles? Do you think they might trigger fase positives?
Honestly I am not sure. But It’s safe to assume yes, they would.
Thanks for this very in depth review.
Even after reading it I made the mistake of ordering the wifi version. 😅
When looking at your close ups photos. They seem quite similar and was wondering if it’s just a matter of replacing the wifi module with a Zigbee one?
I have a WBR3 instead of the ZS3L.
Also the controller is a GD32E230F8P6TR – BSTM5P -JJ2236.
Unless there’s a better option such as ESP module that could work with leapMMW ?
I’ve never done anything like this but I’m willing to try! Otherwise it will end up in the trash ! Thanks for your help 🙂
Hey Claude,
No, not worth it. It would be better to buy the Zigbee version, AliExpress is going to have some discounts by the end of the month I think.
Cheers