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.
- 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.
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.
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 – firstname.lastname@example.orgGHz, 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.
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
- 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
- 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
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.
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.
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.
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.
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.
If you want to order the Tuya ZY-M100 Human Presence Sensor or the Aqara FP1, consider using one of affiliate links bellow as it helps us order and test more home automation devices.
By visiting the Amazon, AliExpress and Banggood stores through the links above, you are shopping through our affiliate links.
This incurs no additional cost to you and supports smarthomescene.com in the form of sales commission.
By visiting the Amazon, AliExpress and Banggood stores through the links above, you are shopping through our affiliate links. This incurs no additional cost to you and supports smarthomescene.com in the form of sales commission.
SmartHomeScene © 2022 All rights reserved