[FINAL RELEASE] Tuya Zigbee mmWave Sensors (code moved from the Tuya 4 In 1 driver)

Can there be a version A of this driver that supports the current set of devices, and a version B that supports only new devices?

Is anyone find that the Radar Sensitivity and Static Detection Sensitivity keep reverting back to Zero again after sometime??
I have tried both methods (via Preferences tab and Set Par/Val) and neither seems to work anymore for me

What specific device are you using? I've been using this driver with a Linptech for a couple years now, and I've never seen such behavior with it.

This one from the 1st post

It has worked fine for me too the past year, but all of a sudden it keeps reverting

Make sure you are using the latest driver version. One of the HE platform changes affected the preferences of a type ‘decimal’ in this driver, this issue was fixed some time ago.

3 Likes

Have checked now, and am running on latest version

Snagged a couple of 24GHz units off Aliexpress that I thought were clones to ones I had before. Plastic wise, yes, software, not so much! :joy:

They show up as "HOBEIAN CK-BL702-MWS-01(7016) 24GHz Radar" and are almost identical as the "TS0225_2AAELWXK_RADAR" for DP's. Only real difference is the humanMotionState. They add a state 4 (moving away) and a state 5 (moving towards).

Just a note on these. They work amazing, very little network activity (only what is needed), and not chatty like other el cheapo Aliexpress units that I snagged.

Here is the link if anyone is interested: https://www.aliexpress.com/item/1005008232999662.html

2 Likes

Can you post a Device Details screenshot (where the Zigbee model, manufacturer and Tuya firmware version are shown)?

You bet:
image

Here are the DP's that I mapped/didn't map:
image

1 Like

I just got one of these HOBEIAN Human Motion Sensors too. Seems to be a different one.

I just bought my first one of these, but it seems like it is not supported. The listing seems to indicate it is a device as listed in this thread, but the inclusion data is not correct.

MmWave Human Presence Sensor, Zigbee Millimeter Wave Radar Detection Sensor, Requires TUYA HUB, Support Home Assistant Zigbee2mqtt : Amazon.de: Business, Industry & Science

Go to Preferences, toggle the ‘Advanced Options’, Save and refresh the device page. Then, from the Preferences ‘Device Profiles’ drop-down menu try some of the ‘TS0601’ profiles - hopefully the first one may work. If it doesn’t, pair the sensor once again to your hub, with this driver already assigned and configured for ‘TS0601_xxxxxx’ profile.

1 Like

Based on the onClusters list there is a chance that this device may work with some of the HE inbuilt motion sensors drivers. Click on the Configure button after changing to the inbuilt drivers.

HE also has an inbuilt mmWave driver, search for it in the list of the device ‘types’. It may work for the basic Motion active/inactive function.

1 Like

Thanks for the suggestions. I did this, but unfortunately did not work. On the back of the device it lists zy-m100-24g, but choosing this device will not work either.

I then serched the community and realized that the issue might be that I have a C7, which I believe is not Zigbee 3.0. Perhaps it is time to break out the C8 in my drawer?

It’s possible that this new device may not remain connected to a non-Zigbee 3.0 hub, even though all other mmWave sensors using Tuya chipsets appear to be compatible with the older C-7 models.

‘Compatible’ means that devices will pair with the C-7 Zigbee network. However, their functionality depends on whether the specific manufacturers' Tuya Data Points are recognized and supported in this driver code. In this case, even if you pair this new device to a C-8 hub, it will still not be recognized automatically, as it is new and unknown device.

Try a few more times to pair it to your C-7 hub :

  • put it close to the hub (no more than 2 meters away)
  • Reboot the C-7 hub
  • Pair it as soon as the C-7 web interface becomes responsive after the reboot.

If the pairing process completes successfully (the known device was found), click on the Ping() button on the device web page ‘Commands’ tab. Do you see a numeric ‘RTT’ value, or a ‘Timeout’ after 10 seconds?

1 Like

It seems that It paired "correctly" now, I at least see more information and Ping does show a value. It still shows up as a TS0601, but the back of the device says ZY-M10024G.

I switched the driver to that version and it does detect some motion, but it is not working as I expect, although it is my first mmWave device, so not sure how it should work.

Device details

Some debug logs

dev:27462025-07-17 20:26:58.318

warn

Radar2 NOT PROCESSED Tuya cmd: dp=105 value=5 descMap.data = [00, 3C, 69, 02, 00, 04, 00, 00, 00, 05]

dev:27462025-07-17 20:26:58.314

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=2 dp=105 (0x69) fncmd=5 fncmd_len=4 (index=0)

dev:27462025-07-17 20:26:58.309

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 003C6902000400000005, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 3C, 69, 02, 00, 04, 00, 00, 00, 05]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 003C6902000400000005

dev:27462025-07-17 20:26:58.047

debug

Radar2 skipped illuminance 1, less than delta 10 (lastIllum=0)

dev:27462025-07-17 20:26:58.023

info

Radar2 Detected motion

dev:27462025-07-17 20:26:58.017

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=4 dp=1 (0x01) fncmd=1 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:58.013

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00350104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 35, 01, 04, 00, 01, 01]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00350104000101

dev:27462025-07-17 20:26:57.870

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 34, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:57.866

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:57.862

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0034FF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 34, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0034FF01000100

dev:27462025-07-17 20:26:57.815

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 33, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:57.811

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:57.806

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0033FF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 33, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0033FF01000100

dev:27462025-07-17 20:26:48.318

warn

Radar2 NOT PROCESSED Tuya cmd: dp=105 value=5 descMap.data = [00, 31, 69, 02, 00, 04, 00, 00, 00, 05]

dev:27462025-07-17 20:26:48.313

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=2 dp=105 (0x69) fncmd=5 fncmd_len=4 (index=0)

dev:27462025-07-17 20:26:48.308

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00316902000400000005, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 31, 69, 02, 00, 04, 00, 00, 00, 05]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00316902000400000005

dev:27462025-07-17 20:26:48.095

debug

Radar2 skipped illuminance 1, less than delta 10 (lastIllum=0)

dev:27462025-07-17 20:26:48.078

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 29, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:47.969

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:47.962

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0029FF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 29, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0029FF01000100

dev:27462025-07-17 20:26:47.925

info

Radar2 Motion reset to inactive after 13s

dev:27462025-07-17 20:26:47.906

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=4 dp=1 (0x01) fncmd=2 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:47.900

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 002A0104000102, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 2A, 01, 04, 00, 01, 02]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 002A0104000102

dev:27462025-07-17 20:26:47.816

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 28, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:47.807

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:47.801

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0028FF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 28, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 0028FF01000100

dev:27462025-07-17 20:26:38.305

warn

Radar2 NOT PROCESSED Tuya cmd: dp=105 value=5 descMap.data = [00, 26, 69, 02, 00, 04, 00, 00, 00, 05]

dev:27462025-07-17 20:26:38.301

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=2 dp=105 (0x69) fncmd=5 fncmd_len=4 (index=0)

dev:27462025-07-17 20:26:38.297

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00266902000400000005, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 26, 69, 02, 00, 04, 00, 00, 00, 05]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00266902000400000005

dev:27462025-07-17 20:26:37.988

debug

Radar2 skipped illuminance 1, less than delta 10 (lastIllum=0)

dev:27462025-07-17 20:26:37.968

debug

Radar2 motion is active (raw:1) (no change)

dev:27462025-07-17 20:26:37.964

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=4 dp=1 (0x01) fncmd=1 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:37.959

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 001F0104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 1F, 01, 04, 00, 01, 01]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 001F0104000101

dev:27462025-07-17 20:26:37.941

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 1E, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:37.936

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:37.853

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 001EFF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 1E, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 001EFF01000100

dev:27462025-07-17 20:26:37.817

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 1D, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:37.813

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:37.808

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 001DFF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 1D, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 001DFF01000100

dev:27462025-07-17 20:26:34.943

info

Radar2 Detected motion [digital]

dev:27462025-07-17 20:26:24.950

warn

Radar2 NOT PROCESSED Tuya cmd: dp=105 value=5 descMap.data = [00, 16, 69, 02, 00, 04, 00, 00, 00, 05]

dev:27462025-07-17 20:26:24.946

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=2 dp=105 (0x69) fncmd=5 fncmd_len=4 (index=0)

dev:27462025-07-17 20:26:24.942

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00166902000400000005, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 16, 69, 02, 00, 04, 00, 00, 00, 05]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 00166902000400000005

dev:27462025-07-17 20:26:24.596

debug

Radar2 skipped illuminance 1, less than delta 10 (lastIllum=0)

dev:27462025-07-17 20:26:24.557

debug

Radar2 ignored motion inactive event after 80s

dev:27462025-07-17 20:26:24.553

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=4 dp=1 (0x01) fncmd=2 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:24.546

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 000F0104000102, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0F, 01, 04, 00, 01, 02]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 000F0104000102

dev:27462025-07-17 20:26:24.498

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 0E, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:24.494

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:24.489

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 000EFF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0E, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 000EFF01000100

dev:27462025-07-17 20:26:24.447

warn

Radar2 NOT PROCESSED Tuya cmd: dp=255 value=0 descMap.data = [00, 0D, FF, 01, 00, 01, 00]

dev:27462025-07-17 20:26:24.443

debug

Radar2 standardParseTuyaCluster: command=02 dp_id=1 dp=255 (0xFF) fncmd=0 fncmd_len=1 (index=0)

dev:27462025-07-17 20:26:24.439

debug

Radar2 parse: descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 000DFF01000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0705, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0D, FF, 01, 00, 01, 00]] description=catchall: 0104 EF00 01 01 0040 00 0705 01 00 0000 02 01 000DFF01000100