[RELEASE] Tuya Zigbee Multi-Sensor 4 In 1 (PIR motion sensors and mmWave presence radars) w/ healthStatus

@iEnam thank you for the debug logs!
I think that the 'Invert Motion' for your device must be switched on. The only change in the new dev. branch version "2023/04/01 8:05 PM" is that it is set by default to true for the 2-in-1 sensor and is disabled for all other sensors.

When you tested, was this new option enabled or disabled?

When you have a chance, can you try again? Please post the logs from the tests with the dev. branch version only, this is where I can make changes in the code.

It's a bit confusing to me to understand what event exactly is the start of the motion and which is the end ... .can you try to write down the exact time (including seconds) when the motion was activated and the time when it was actually deactivated?

1 Like

I believe the motion invert was disabled this morning when I tested.
And, enabling "invert motion" also did not work.
However, I have just tested now and it seems to be working fine with "invert motion" already enabled.

device


Logs

dev:17832023-04-01 07:14:24.689 PMinfoSamah's room sensor Motion reset to inactive after 23s

dev:17832023-04-01 07:14:24.686 PMdebugSamah's room sensor (DP=0x01) motion event fncmd = 1

dev:17832023-04-01 07:14:24.685 PMdebugSamah's room sensor Tuya cluster: dp_id=4 dp=1 fncmd=1

dev:17832023-04-01 07:14:24.680 PMdebugSamah's room sensor parse (_TZE200_3towulqd, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0E5 01 00 0000 02 01 00950104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0E5, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 95, 01, 04, 00, 01, 01]]

dev:17832023-04-01 07:14:24.466 PMinfoSamah's room sensor Illuminance is 0 Lux

dev:17832023-04-01 07:14:24.462 PMdebugSamah's room sensor Tuya cluster: dp_id=2 dp=12 fncmd=0

dev:17832023-04-01 07:14:24.457 PMdebugSamah's room sensor parse (_TZE200_3towulqd, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0E5 01 00 0000 02 01 00940C02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0E5, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 94, 0C, 02, 00, 04, 00, 00, 00, 00]]

dev:17832023-04-01 07:14:02.922 PMinfoSamah's room sensor Motion is active 1s

dev:17832023-04-01 07:14:02.920 PMdebugSamah's room sensor (DP=0x01) motion event fncmd = 0

dev:17832023-04-01 07:14:02.918 PMdebugSamah's room sensor Tuya cluster: dp_id=4 dp=1 fncmd=0

dev:17832023-04-01 07:14:02.913 PMdebugSamah's room sensor parse (_TZE200_3towulqd, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0E5 01 00 0000 02 01 00930104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0E5, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 93, 01, 04, 00, 01, 00]]

dev:17832023-04-01 07:14:01.715 PMinfoSamah's room sensor Detected motion

dev:17832023-04-01 07:14:01.713 PMdebugSamah's room sensor (DP=0x01) motion event fncmd = 0

dev:17832023-04-01 07:14:01.712 PMdebugSamah's room sensor Tuya cluster: dp_id=4 dp=1 fncmd=0

dev:17832023-04-01 07:14:01.707 PMdebugSamah's room sensor parse (_TZE200_3towulqd, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0E5 01 00 0000 02 01 00930104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0E5, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 93, 01, 04, 00, 01, 00]]

dev:17832023-04-01 07:14:01.396 PMinfoSamah's room sensor Illuminance is 11 Lux

dev:17832023-04-01 07:14:01.392 PMdebugSamah's room sensor Tuya cluster: dp_id=2 dp=12 fncmd=11

dev:17832023-04-01 07:14:01.387 PMdebugSamah's room sensor parse (_TZE200_3towulqd, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0E5 01 00 0000 02 01 00920C0200040000000B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0E5, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 92, 0C, 02, 00, 04, 00, 00, 00, 0B]]

dev:17832023-04-01 07:13:35.886 PMinfoSamah's room sensor Motion reset to inactive after 27s

EDIT: I think there maybe an issue with high sensitivity option selected; i have put the device in it's original position and motion keeps activating and deactivating although there is no presence. Seems to be okay with medium sensitivity. Will need to monitor

1 Like

Do you have any heating devices in that room, something that may change its temperature like an air conditioner or a heater w/ a fan?

The PIR sensors are sensitive to any objects temperature change (the change of the object infrared radiation).

There is a low-noise ventilation fan...
Not sure if that caused any issues, but it seems to be stable now. Thanks

1 Like

hi
i have the zy m100 using with HE but the driver doesnt store any parameters i throw at it. Im not sure its working at all . ill probable send it back.

  • deviceProfile : TS0601_TUYA_RADAR
  • packetID : 12
  • rxCounter : 569
  • driverVersion : 1.3.1 2023/04/01 8:05 PM
  • txCounter : 86
  • notPresentCounter : 0
  • motionStarted : 1681717142438

Can you post the device details Data section? (the model, manufacturer and the application version)

  • endpointId: 01
  • application: 46
  • manufacturer: _TZE204_ztc6ggyl
  • model: TS0601
  • tuyaVersion: 1.0.6

thank you Krassimir

the debug log is full of unnecessary things
dev:15822023-04-17 08:57:04.277debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=208

dev:15822023-04-17 08:57:04.271debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 001509020004000000D0, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 15, 09, 02, 00, 04, 00, 00, 00, D0]]

dev:15822023-04-17 08:57:03.274debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=207

dev:15822023-04-17 08:57:03.269debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 001409020004000000CF, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 14, 09, 02, 00, 04, 00, 00, 00, CF]]

dev:15822023-04-17 08:57:02.275debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=209

dev:15822023-04-17 08:57:02.269debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 001309020004000000D1, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 13, 09, 02, 00, 04, 00, 00, 00, D1]]

dev:15822023-04-17 08:57:01.274debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=213

dev:15822023-04-17 08:57:01.268debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 001209020004000000D5, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 12, 09, 02, 00, 04, 00, 00, 00, D5]]

dev:15822023-04-17 08:57:00.272debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=214

dev:15822023-04-17 08:57:00.267debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 001109020004000000D6, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 11, 09, 02, 00, 04, 00, 00, 00, D6]]

dev:15822023-04-17 08:56:59.474infozigbee breath sensor Illuminance is 39 Lux

dev:15822023-04-17 08:56:59.470debugzigbee breath sensor Tuya cluster: dp_id=2 dp=104 fncmd=39

dev:15822023-04-17 08:56:59.465debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 00106802000400000027, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 10, 68, 02, 00, 04, 00, 00, 00, 27]]

dev:15822023-04-17 08:56:59.349debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=217

dev:15822023-04-17 08:56:59.268debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 000F09020004000000D9, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0F, 09, 02, 00, 04, 00, 00, 00, D9]]

dev:15822023-04-17 08:56:58.282debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=221

dev:15822023-04-17 08:56:58.277debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 000E09020004000000DD, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0E, 09, 02, 00, 04, 00, 00, 00, DD]]

dev:15822023-04-17 08:56:57.272debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=210

dev:15822023-04-17 08:56:57.267debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 000D09020004000000D2, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0D, 09, 02, 00, 04, 00, 00, 00, D2]]

dev:15822023-04-17 08:56:56.274debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=200

dev:15822023-04-17 08:56:56.269debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 000C09020004000000C8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0C, 09, 02, 00, 04, 00, 00, 00, C8]]

dev:15822023-04-17 08:56:55.273debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=210

dev:15822023-04-17 08:56:55.268debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 000B09020004000000D2, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0B, 09, 02, 00, 04, 00, 00, 00, D2]]

dev:15822023-04-17 08:56:54.273debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=211

dev:15822023-04-17 08:56:54.268debugzigbee breath sensor parse (_TZE204_ztc6ggyl, 1.3.1 2023/04/01 8:05 PM) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B576 01 00 0000 02 01 000A09020004000000D3, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B576, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0A, 09, 02, 00, 04, 00, 00, 00, D3]]

dev:15822023-04-17 08:56:52.274debugzigbee breath sensor Tuya cluster: dp_id=2 dp=9 fncmd=215

These logs are produced from the device reporting the distance to the detected object - sent every 1 second, when a presence is detected. There is no way to disable the distance reporting over the air.. : (
Normally, 2-3 devices like this one should not overload a healthy Zigbee mesh, but it is something that worries me too. I have my 2 Tuya radars paired to the old C-7 hub, while the rest of the 70+ zigbee devices are all paired to a new C-8 hub.

Other than this spammy behavior, the configuration of the rest of the parameters ( sensitivity, min/max detection distance, the 'fading time', etc..) should be working OK?

no i enter the parameters in the drivers it doesnt keep them , goes back to the original settings

I will verify tonight, when at home.

You gave me the idea to suppress even the debug logs for the distance reporting, otherwise it is really hard to find what is going on.

@zsolt.toth.39 please update to the latest dev. branch version 1.3.2 , "2023/04/17 8:48 PM".

When you have the " Ignore distance reports" toggle switched on (this is the default setting), the distance reports from the device will not produce excessive logs anymore.

I have also removed the option 'Send Event when parameters change' - now the changeable radar parameters are always shown in the current states, like this :

image

The states are updated only when a parameter is really changed, i.e. when the device reports back the changed parameter. When a parameter is changed, it is also shown in the live logs (leave only the Info logs) :

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:21.854[info](http://192.168.0.151/logs#)Radar ZY-M100 Motion reset to inactive after 703s

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:21.230[info](http://192.168.0.151/logs#)Radar ZY-M100 received Radar fading time : 7.6 seconds (76)

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:20.977[info](http://192.168.0.151/logs#)Radar ZY-M100 received Radar Maximum detection distance : 3.75 m

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:20.926[info](http://192.168.0.151/logs#)Radar ZY-M100 Motion is active 702s

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:19.408[info](http://192.168.0.151/logs#)Radar ZY-M100 received Radar detection delay : 0.2 seconds (2)

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:17.448[info](http://192.168.0.151/logs#)Radar ZY-M100 received Radar sensitivity : 6

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:17.327[info](http://192.168.0.151/logs#)Radar ZY-M100 preferencies updates are sent to the device...

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:17.275[info](http://192.168.0.151/logs#)Radar ZY-M100 Debug logging is **false**; Description text logging is **true**

[dev:3934](http://192.168.0.151/logs#)2023-04-17 21:03:17.259[info](http://192.168.0.151/logs#)Radar ZY-M100 Updating Radar ZY-M100 (Tuya ZigBee Breath Presence Sensor ZY-M100) model TS0601 manufacturer _TZE204_ztc6ggyl **deviceProfile=TS0601_TUYA_RADAR**

I have the same device, the same firmware version, and the parameters change is working for me.

1 Like

Dear Krassimir

Yepp its working fine now thank you very much.
One thing it takes ages to go inactive. Is it possible to shorten the time no motion?

1 Like

You can experiment with reducing the radar sensitivity, narrowing the minimum and maximum detection distances and lowering the fadingTime parameter.

Do you have any fans or air conditioners or anything else that can interfere with the radar presence detection?

1 Like

I had to turn the sensitivity to 4 to get it to shut off quickly after being triggered. It now goes inactive in about 20 seconds, sometimes less. Distance is set to minimum 1 maximum 8. Fade time is 10.

2 Likes

Hi Henk,

Can you try the latest dev.branch version 1.3.3 2023-04-25 ?

As the Button capability is not a standard feature for this 4-in-1 driver ( typically Motion+Temperature+Humidity+Illuminance), you will need to uncomment these lines in the code :

Also have in mind, that this device doesn't have an analog lux meter, but just a simple 'dark' / 'bright' indicator output. This is represented as illuminance 0/1, but it should be enough to trigger your automations.

Anyone bought one of these and got it working yet? Seem like an amazing product beyond the FP1. How much functionality could we get when linked to Hubitat I wonder…

Aqara Presence Sensor FP2 Multi-Person Detection Fall Detection and Alerts Work With HomeKit Aqara Home APP
https://a.aliexpress.com/_mry6qeY

Ill check that!

1 Like

Aqara FP2 is released outside of China now, although it became quickly out of stock on Amazon. New supplies are expected in the beginning of May, so check often the Amazon links in the next weeks..

Currently, the integration of FP2 to Hubitat is possible via Home Assistant (HomeKit Controller) or via virtual switches from HomeKit.

My advise will be to not buy FP2 from AliExpress now, as it is a Chinese region version and may conflict with other Aqara devices which you may have locked to non-Chinese regions.

1 Like

Thank you. I should have used search :relaxed: