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

Received sensors today. Love the small sensor, was not expecting it to be that tiny! It reports as:

  • endpointId: 01
  • application: 40
  • softwareBuild:
  • inClusters: 0001,0500,0000
  • outClusters: 0019,000A
  • model: TS0601
  • manufacturer: _TZE200_3towulqd

It's showing NOT PROCESSED message in the logs, believe it's to do with luminance. Is it because manufacturer code (_TZE200_3towulqd) need to be included in the driver?

dev:972022-06-10 12:29:44.807 pm warnOffice sensor NOT PROCESSED Tuya cmd: dp=12 value=244 descMap.data = [00, 85, 0C, 02, 00, 04, 00, 00, 00, F4]

dev:972022-06-10 12:29:44.806 pm traceOffice sensor dp_id=2 dp=12 fncmd=244

dev:972022-06-10 12:29:44.802 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00850C020004000000F4, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 85, 0C, 02, 00, 04, 00, 00, 00, F4]]

dev:972022-06-10 12:29:35.203 pm warnOffice sensor non-radar motion event 0x01 fncmd = 0

dev:972022-06-10 12:29:35.202 pm traceOffice sensor dp_id=4 dp=1 fncmd=0

dev:972022-06-10 12:29:35.198 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00840104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 84, 01, 04, 00, 01, 00]]

1 Like

This 2-in-1 motion and lux sensor seems promising! It should have configurable sensitivity and motion reset time (we can check this later).

Please update the driver to the development branch linked in the second post, the version should be 1.0.5 and the motion and the illuminance events should be working now.

After that, make sure the Debug preference option is turned on and press Save.
Then remove the battery for at least 10 seconds.
Insert the battery back and please copy and paste the debug logs. If we are lucky, the device will report the motion reset time and the sensitivity parameters that I will try to implement in a future version.

Please include the long debug logs in a 'Hide details' summary section (the cog wheel icon in this editor)

1 Like

Sensor is working, reporting motion and luminance, there is literally no delay between activations, I've set it up to 10s cause it was spamming logs :smile: What would be the most reasonable time to set it to, 60s? Don't want battery to die in 1 week...

It's great little device, just need to know how long battery lasts, but I'll be getting more of them lol

Logs below

Summary

dev:972022-06-10 07:08:39.666 pm infoOffice sensor Motion reset to inactive after 10s

dev:972022-06-10 07:08:29.663 pm infoOffice sensor Detected motion

dev:972022-06-10 07:08:29.646 pm debugOffice sensor motion event 0x01 fncmd = 1

dev:972022-06-10 07:08:29.643 pm traceOffice sensor dp_id=4 dp=1 fncmd=1

dev:972022-06-10 07:08:29.641 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00170104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 17, 01, 04, 00, 01, 01]]

dev:972022-06-10 07:08:29.426 pm infoOffice sensor illuminance is 94 Lux

dev:972022-06-10 07:08:29.423 pm traceOffice sensor dp_id=2 dp=12 fncmd=94

dev:972022-06-10 07:08:29.421 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00160C0200040000005E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 16, 0C, 02, 00, 04, 00, 00, 00, 5E]]

dev:972022-06-10 07:08:13.380 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:08:13.377 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:08:13.373 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00150C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 15, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:08:02.062 pm debugOffice sensor ignored motion inactive event after 16s

dev:972022-06-10 07:08:02.059 pm debugOffice sensor motion event 0x01 fncmd = 0

dev:972022-06-10 07:08:02.057 pm traceOffice sensor dp_id=4 dp=1 fncmd=0

dev:972022-06-10 07:08:02.054 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00140104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 14, 01, 04, 00, 01, 00]]

dev:972022-06-10 07:08:01.832 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:08:01.830 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:08:01.827 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00130C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 13, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:07:55.868 pm infoOffice sensor Motion reset to inactive after 10s

dev:972022-06-10 07:07:45.865 pm infoOffice sensor Detected motion

dev:972022-06-10 07:07:45.847 pm debugOffice sensor motion event 0x01 fncmd = 1

dev:972022-06-10 07:07:45.845 pm traceOffice sensor dp_id=4 dp=1 fncmd=1

dev:972022-06-10 07:07:45.843 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00120104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 12, 01, 04, 00, 01, 01]]

dev:972022-06-10 07:07:45.613 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:07:45.610 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:07:45.607 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00110C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 11, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:07:33.774 pm debugOffice sensor ignored resetToMotionInactive after 10s

dev:972022-06-10 07:07:33.582 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:07:33.579 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:07:33.577 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00100C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 10, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:07:26.476 pm infoOffice sensor Motion reset to inactive after 3s

dev:972022-06-10 07:07:26.474 pm debugOffice sensor motion event 0x01 fncmd = 0

dev:972022-06-10 07:07:26.471 pm traceOffice sensor dp_id=4 dp=1 fncmd=0

dev:972022-06-10 07:07:26.469 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 000F0104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0F, 01, 04, 00, 01, 00]]

dev:972022-06-10 07:07:26.244 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:07:26.242 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:07:26.239 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 000E0C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0E, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:07:23.791 pm infoOffice sensor Detected motion

dev:972022-06-10 07:07:23.755 pm debugOffice sensor motion event 0x01 fncmd = 1

dev:972022-06-10 07:07:23.753 pm traceOffice sensor dp_id=4 dp=1 fncmd=1

dev:972022-06-10 07:07:23.750 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 000D0104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0D, 01, 04, 00, 01, 01]]

dev:972022-06-10 07:07:23.547 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:07:23.541 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:07:23.539 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 000C0C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0C, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:06:57.793 pm debugOffice sensor ignored resetToMotionInactive after 10s

dev:972022-06-10 07:06:51.723 pm infoOffice sensor Motion reset to inactive after 4s

dev:972022-06-10 07:06:51.718 pm debugOffice sensor motion event 0x01 fncmd = 0

dev:972022-06-10 07:06:51.716 pm traceOffice sensor dp_id=4 dp=1 fncmd=0

dev:972022-06-10 07:06:51.713 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 000B0104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0B, 01, 04, 00, 01, 00]]

dev:972022-06-10 07:06:51.504 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:06:51.500 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:06:51.497 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 000A0C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0A, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:06:50.784 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:06:50.782 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:06:50.777 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00090C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 09, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:06:47.796 pm infoOffice sensor Detected motion

dev:972022-06-10 07:06:47.774 pm debugOffice sensor motion event 0x01 fncmd = 1

dev:972022-06-10 07:06:47.771 pm traceOffice sensor dp_id=4 dp=1 fncmd=1

dev:972022-06-10 07:06:47.769 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00010104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 01, 01, 04, 00, 01, 01]]

dev:972022-06-10 07:06:47.757 pm infoOffice sensor device announcement

dev:972022-06-10 07:06:47.755 pm debugOffice sensor parse() descMap = [raw:catchall: 0000 0013 00 00 0040 00 8BDB 00 00 0000 00 00 00DB8B2BCFD423A138C1A480, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:8BDB, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[00, DB, 8B, 2B, CF, D4, 23, A1, 38, C1, A4, 80]]

Also, thanks for explaining how to hide additional data in the post, makes it much cleaner :+1:

So.. I've set up basic rule, when motion on - turn light switch on, and found there is 15s delay for the action to complete. Looking at the logs (attached below), there is an entry at the time of movement

07:45:23.963 pm debugOffice sensor ignored motion inactive event after 21s
07:45:23.960 pm debugOffice sensor motion event 0x01 fncmd = 0.

but showing fncmd = 0, next event is 15 seconds later showing 1 turning switch on immediately.

If I change status manually through device settings, it works instantanuously, am I doing something wrong here?

Summary

dev:32022-06-10 07:45:41.534 pm infoOffice Switch was turned off

dev:972022-06-10 07:45:39.034 pm infoOffice sensor Motion reset to inactive after 1s

dev:32022-06-10 07:45:38.232 pm infoOffice Switch was turned on

dev:32022-06-10 07:45:38.228 pm infoOffice Switch was turned on

dev:972022-06-10 07:45:38.032 pm infoOffice sensor Detected motion

dev:972022-06-10 07:45:38.013 pm debugOffice sensor motion event 0x01 fncmd = 1

dev:972022-06-10 07:45:38.010 pm traceOffice sensor dp_id=4 dp=1 fncmd=1

dev:972022-06-10 07:45:38.008 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 007C0104000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7C, 01, 04, 00, 01, 01]]

dev:972022-06-10 07:45:37.790 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:45:37.787 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:45:37.784 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 007B0C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7B, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:972022-06-10 07:45:23.963 pm debugOffice sensor ignored motion inactive event after 21s

dev:972022-06-10 07:45:23.960 pm debugOffice sensor motion event 0x01 fncmd = 0

dev:972022-06-10 07:45:23.958 pm traceOffice sensor dp_id=4 dp=1 fncmd=0

dev:972022-06-10 07:45:23.955 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 007A0104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7A, 01, 04, 00, 01, 00]]

dev:972022-06-10 07:45:23.745 pm infoOffice sensor illuminance is 1000 Lux

dev:972022-06-10 07:45:23.742 pm traceOffice sensor dp_id=2 dp=12 fncmd=1000

dev:972022-06-10 07:45:23.739 pm debugOffice sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 8BDB 01 00 0000 02 01 00790C020004000003E8, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8BDB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 79, 0C, 02, 00, 04, 00, 00, 03, E8]]

dev:32022-06-10 07:45:18.218 pm infoOffice Switch was turned off

dev:32022-06-10 07:45:17.181 pm infoOffice Switch was turned on

This sensor is reporting both MotionActive and MotionInactive events to the hub.
So you don't need to use the option "After motion is detected, wait ___ second(s) until resetting to inactive state". Set it to 0, which will disable the software reset/timeout). This timer is mostly useful for other types of PIR sensors, that never send an event when the motion is stopped.

I will analyze your sensor timings tomorrow, but it is easier when the software reset timer is not used (set to 0). You can observe the timings in the INFO logs (disable the debug logs for easier reading). There may be two timings - one is the active period between the motion detected and the motion stop event. Second timing is a kind of 'blind window', in which time period the motion will be ignored by the sensor. Depending on the frequency of the motion, the 'motion inactive' event may come after 10 seconds, but also may come after a much longer period, if there is a constant motion detected. It is not easy to explain this, probably a graph showing the combinations of the different scenarios will help. And different models of motion sensors may behave differently, which complicates the Active/Inactive timings even more..

The SetMotion (active/inactive) button is intended to be used for debugging of your automation rules (RM5.1 for example or a lighting automation app of your choice). This button simulates the motion activation, so that you can tune your automation logic.

Unfortunately, the logs after battery removal and instertion don't show the sensitivity and the keep_time commands, but I think that I have found information for this model. Hopefully, in the next few days I will be able to add the hardware 'keep time' configuration for your model, it should be 10, 30, 60 or 120 seconds.

Until then you can experiment with the default timings, just keep the 'After motion...' parameter zero. Probably the best approach would be to hide it for the models that instantly report motion inactive.

@sirkitealot the latest development branch version adds support for configuration of the sensitivity and the 'keep time' for _TZ3000_msl6wxk9 motion sensor. When you have a chance, you can give it a try.

Configuring any battery-powered Zigbee devices is tricky, as these are 'sleeping' most of the time in order to save battery, so the configuration is possible only when they are awake.

The sensitivity and the keep time parameters reconfiguration are successful only if you see a confirmation Info logs:

An easy way to wake up TS0202 sensor is to press (shortly!) the pair button using a suitable needle.

that sounds promising, i'll give it a try! Thanks again!

I just received 1 of the $7 Tuya motion sensors with the following (below) ...it wouldn't work with the generic zigbee motion sensor so I used your latest driver and it worked. I read above where you told someone to try the generic zigbee motion sensor (no temp), so I did and it worked.

Q1. is one recommended over the other
Q2. is there any configuration for this motion sensor in either driver?
Thanks for a great job creating a driver to allow us to use these very inexpensive sensors !!

  • endpointId: 01
  • application: 46
  • softwareBuild:
  • inClusters: 0001,0500,0003,0000
  • outClusters: 1000,0006,0019,000A
  • model: TS0202
  • manufacturer: _TZ3000_msl6wxk9
1 Like

This driver sends specific initialization commands required by some (not all!) Tuya devices during the initial pairing process.

This is another Tuya phenomena - once a device is initialized in a similar way the Tuya Zigbee gateway does it, from this time on the device can be used with the 'standard' zigbe drivers.

An advantage over the inbuilt driver is the possibility to adjust the sensor sensitivity and the device internal 'keep time'. I find useful reducing the sensitivity for my two motion sensors in the kitchen that activate some spotlights only when a person approaches really close to that particular area of the room.

When changing the motion sensor parameters, you need to press the pair/reset button at the same time when you click on the 'Save Preferences' button.

1 Like

Hi @kkossev did you have chance to add 'keep time' configuration of this device to the driver?

1 Like

Not yet, but it comes on the top of my TODO list now.

The decoding of the sensitivity and the 'keep time' was already added in this driver version 1.0.5, but not the configuration of these settings.

BTW, have you tried using this sensor ( _TZE200_3towulqd ) illuminance reading in a RM 5.1 or other HE lighting automation?
When the rule or the app gets triggered because of motion active event, is the illuminance reading correct (the illum. value that was seen in the info logs together with the motion active event), or it may be the previous illuminance value?

@Gr0sh checking the code now, I see that I have actually implemented the setting of the sensitivity and the 'keep time' for your device in version 1.0.5, I have just forgotten to announce and document it ...

Can you try changing these 2 parameters? Remember, you need to shortly press the sensor button at the same time when you click on Save Preferences button. If it doesn't work, copy/paste the logs that follow the change preferences operation.

The development branch version 1.0.7 now provides full functionality for the Tuya ZigBee Smart Ceiling-mounted Human Presence Sensor (w/ distance measurement). Many thanks to @jw970065 for the tests and the feedback!

Next on my radar is the Human Presence AIR (the ugly looking one). The behavior of this device seems to be rather different than the first one. The Chinese site mentions that it uses some kind of "MFAI Intelligent Algorithm" to "accurately identify the presence of people in the room". if MFAI stands for Mathematical Foundations of Artificial Intelligence (Australian National University, Canberra, Australia), then it could be really interesting... What I like in this device is that it does not send every second distance or other useless (for now) information, like the first sensor does. It provides the option for 3 different operational modes : "General Model", "Temporay Stay", "Basic Detecton" ( plus PIR sensor only test mode). The AIR model has 2 different tuning parameters : V-Sensitivity ["Speed Priority", "Standard", "Accuracy Priority"] and O-Sensitivity ["Sensitive", "Normal", "Cautious" ]. The 'Vacancy Delay' can be set in the range 0..1000 seconds.

1 Like

I'm leaving a short message because I don't have time now.
You've worked so hard, and I'm really grateful.
I switched one Tuya switch used in the fishing cafe to Hubitat
I filmed a test video.
It looks very successful. The rest of Tuya's use will also be moved to Hubitat, and we will leave a more normal video later.
It's a noisy environment, so FP1 is a difficult place to use.
https://blog.naver.com/ispark0114/222815443522

1 Like

I ordered this sensor, too.
I don't know, but I'm interested in the combination of "mmWave" + "MFAI Intelligent Algorithm".
And I'm also interested in being able to respond to noise by choosing a variety of options, whether it will be enough or not.
I have two important things in the presence sensor
I think it is an option that can handle and respond to sensing speed and noise.

1 Like

With HE you could easily change the radar operational parameters from the inbuilt Rule Machine app:

With most sensors, the parameters are usually changed once in the Preference section. But these parameters, which really make sense to be changed dynamically can be exposed as custom commands.

1 Like

Today, the switch connected to all presence sensors in the urban fisherman's fishing cafe has been changed to Hubitat.
In the process, I found that using Hubitat now reacts much more sensitively.
I wonder why.
In fact, I had to change the sensitivity of all sensors from 9 to 7~8.
I will upload the final applied values and videos on the last link.

I will study about the parameters. Thank you.

1 Like

이 모델이 지원되고 있는지 궁금하다.
내가 연결을 했는데, 나는 움직임을 볼 수가 없다.
아래에 로그파일이 있다.

  • endpointId: 01
  • model: TS0202
  • application: 46
  • manufacturer: _TZ3000_msl6wxk9

dev:46802022-07-19 04:04:07.360 pm info수관리실외부MotS preferencies updates are sent to the device...
dev:46802022-07-19 04:04:07.355 pm debug수관리실외부MotS sendZigbeeCommands (cmd=[he wattr 0xCF54 0x01 0x0500 0x0013 0x20 {01} {}, delay 200, he wattr 0xCF54 0x01 0x0500 0xF001 0x20 {00} {}, delay 200])
dev:46802022-07-19 04:04:07.354 pm debug수관리실외부MotS sending the changed AdvancedOptions
dev:46802022-07-19 04:04:07.347 pm debug수관리실외부MotS changing IAS Keep Time to : 30
dev:46802022-07-19 04:04:07.346 pm debug수관리실외부MotS sending sensitivity : 30 (0)
dev:46802022-07-19 04:04:07.343 pm debug수관리실외부MotS changing IAS sensitivity to : medium
dev:46802022-07-19 04:04:07.342 pm debug수관리실외부MotS sending sensitivity : medium (1)
dev:46802022-07-19 04:04:07.337 pm debug수관리실외부MotS Config parameters changed! old=bd24320921d37f1d8121bd new=bd24320913d37f1d813fbd
dev:46802022-07-19 04:04:07.329 pm info수관리실외부MotS Debug logging is will be turned off after 24 hours
dev:46802022-07-19 04:04:07.297 pm info수관리실외부MotS Debug logging is true; Description text logging is true
dev:46802022-07-19 04:04:07.296 pm info수관리실외부MotS Updating 수관리실외부MotS (Tuya Multi Sensor 4 In 1) model TS0202 manufacturer _TZ3000_msl6wxk9
dev:46802022-07-19 04:03:57.446 pm info수관리실외부MotS preferencies updates are sent to the device...
dev:46802022-07-19 04:03:57.441 pm debug수관리실외부MotS sendZigbeeCommands (cmd=[])
dev:46802022-07-19 04:03:57.440 pm debug수관리실외부MotS sending the changed AdvancedOptions
dev:46802022-07-19 04:03:57.433 pm debug수관리실외부MotS changing IAS Keep Time to : No selection
dev:46802022-07-19 04:03:57.432 pm warn수관리실외부MotS Keep Time No selection is not supported for your model:TS0202 manufacturer:_TZ3000_msl6wxk9
dev:46802022-07-19 04:03:57.430 pm debug수관리실외부MotS changing IAS sensitivity to : No selection
dev:46802022-07-19 04:03:57.429 pm warn수관리실외부MotS sensitivity No selection is not supported for your model:TS0202 manufacturer:_TZ3000_msl6wxk9
dev:46802022-07-19 04:03:57.427 pm debug수관리실외부MotS Config parameters changed! old=bd24320921d37f1d8121bd new=bd24320921d37f1d8121bd
dev:46802022-07-19 04:03:57.419 pm info수관리실외부MotS Debug logging is will be turned off after 24 hours
dev:46802022-07-19 04:03:57.388 pm info수관리실외부MotS Debug logging is true; Description text logging is true
dev:46802022-07-19 04:03:57.386 pm info수관리실외부MotS Updating 수관리실외부MotS (Tuya Multi Sensor 4 In 1) model TS0202 manufacturer _TZ3000_msl6wxk9

dev:46802022-07-19 03:53:44.890 pm info수관리실입구MotS preferencies updates are sent to the device...
dev:46802022-07-19 03:53:44.887 pm debug수관리실입구MotS sendZigbeeCommands (cmd=[])
dev:46802022-07-19 03:53:44.886 pm debug수관리실입구MotS sending the changed AdvancedOptions
dev:46802022-07-19 03:53:44.879 pm debug수관리실입구MotS changing IAS Keep Time to : No selection
dev:46802022-07-19 03:53:44.877 pm warn수관리실입구MotS Keep Time No selection is not supported for your model:TS0202 manufacturer:_TZ3000_msl6wxk9
dev:46802022-07-19 03:53:44.876 pm debug수관리실입구MotS changing IAS sensitivity to : No selection
dev:46802022-07-19 03:53:44.875 pm warn수관리실입구MotS sensitivity No selection is not supported for your model:TS0202 manufacturer:_TZ3000_msl6wxk9
dev:46802022-07-19 03:53:44.872 pm debug수관리실입구MotS Config parameters changed! old=bdbdbdbdbdbdbdbdbdbdbd new=bd24320921d37f1d8121bd
dev:46802022-07-19 03:53:44.860 pm info수관리실입구MotS Debug logging is will be turned off after 24 hours
dev:46802022-07-19 03:53:44.832 pm info수관리실입구MotS Debug logging is true; Description text logging is true
dev:46802022-07-19 03:53:44.831 pm info수관리실입구MotS Updating 수관리실입구MotS (Tuya Multi Sensor 4 In 1) model TS0202 manufacturer _TZ3000_msl6wxk9
dev:46802022-07-19 03:53:21.168 pm infoTuya Multi Sensor 4 In 1 Motion reset to inactive after 9s
dev:46802022-07-19 03:53:21.165 pm debugTuya Multi Sensor 4 In 1 Zone status: zone status 0x0000 -- extended status 0x00 - sourceEndpoint:01, zoneId:FF, delay:0000
dev:46802022-07-19 03:53:21.164 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [:]
dev:46802022-07-19 03:53:12.284 pm infoTuya Multi Sensor 4 In 1 Detected motion
dev:46802022-07-19 03:53:12.260 pm debugTuya Multi Sensor 4 In 1 Zone status: zone status 0x0001 -- extended status 0x00 - sourceEndpoint:01, zoneId:FF, delay:0000
dev:46802022-07-19 03:53:12.258 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [:]
dev:46802022-07-19 03:53:11.349 pm debugTuya Multi Sensor 4 In 1 NOT PARSED : descMap = [raw:CF540100001605004206545330323032, dni:CF54, endpoint:01, cluster:0000, size:16, attrId:0005, encoding:42, command:01, value:TS0202, clusterInt:0, attrInt:5]
dev:46802022-07-19 03:53:11.346 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [raw:CF540100001605004206545330323032, dni:CF54, endpoint:01, cluster:0000, size:16, attrId:0005, encoding:42, command:01, value:TS0202, clusterInt:0, attrInt:5]
dev:46802022-07-19 03:53:11.128 pm debugTuya Multi Sensor 4 In 1bind response, data=[16, 82] (Sequence Number:16, Status: FAILURE)
dev:46802022-07-19 03:53:11.125 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [raw:catchall: 0000 8021 00 00 0040 00 CF54 00 00 0000 00 00 1682, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:CF54, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[16, 82]]
dev:46802022-07-19 03:53:10.988 pm debugTuya Multi Sensor 4 In 1bind response, data=[15, 82] (Sequence Number:15, Status: FAILURE)
dev:46802022-07-19 03:53:10.985 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [raw:catchall: 0000 8021 00 00 0040 00 CF54 00 00 0000 00 00 1582, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:CF54, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[15, 82]]
dev:46802022-07-19 03:53:10.613 pm debugTuya Multi Sensor 4 In 1bind response, data=[14, 82] (Sequence Number:14, Status: FAILURE)
dev:46802022-07-19 03:53:10.609 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [raw:catchall: 0000 8021 00 00 0040 00 CF54 00 00 0000 00 00 1482, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:CF54, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[14, 82]]
dev:46802022-07-19 03:53:10.252 pm debugTuya Multi Sensor 4 In 1 write attribute response is success
dev:46802022-07-19 03:53:10.248 pm debugTuya Multi Sensor 4 In 1 parse(_TZ3000_msl6wxk9) descMap = [raw:catchall: 0104 0000 01 01 0040 00 CF54 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:CF54, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:46802022-07-19 03:53:09.828 pm infoTuya Multi Sensor 4 In 1 installed()

Yes. it is supported and I see in the logs, that motion was detected and reset to inactive after 9 seconds.

Have in mind, that changing battery-powered devices parameters is a bit tricky. They 'sleep' most of the time for the purpose of battery saving, so if you change a parameter and press ''Save' the sensor may miss the parameters change command, except the device was 'awake' at that time. Contrary, the mains / DC-powered devices (like Tuya radars) accept commands at any time.

You need to wake up the battery-powered sensor at the same time as you click on the Save button. The most effective way to wake it up is to press shortly the pair button. Most battery devices will accept parameter change also at the time when there is a movement, illuminance, or temperature/humidity change.

1 Like

I tested with two sensors. But neither of them worked properly.
But because I trust you, I went through several pairs again, and now it's working well.
I don't think this is a very good sensor.
You'd better guide others to repeat it over and over again if they ask you not to do well.