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

my 4-in-1 should be here any day so I can throw my hat into the ring for testing

Just want to give a big shout out to the OP for developing such a versatile driver.

I had a couple of Neo Coolcam Motion Sensors (NAS-PD07 model: TS0601, manufacturer: _TZE200_7hfcudw5 ) which had been stuffed in drawer for about 6 months after unsuccessful and frustrated attempts to get them working with a number of other device handlers.

I have limited experience with the Zigbee payload so I had limited success in hacking together another driver based on the Zigbee - Tuya Alarm as it was limited to motion detection but the temperature values were way off.

Needless to say, finding this driver has made me one happy chappy! Cheers!

1 Like

My 4 in 1 finally got here, and seems to be working with your driver. Thanks! Is it possible to get the temp reports in °F instead of °C?

Sure, I am planning to get back to this driver development in the next days.

2 Likes

Tested this version of the TS0202:
image
I can not get active events less than a minute. The inactive event is random.

I also have these motion sensors:

Ugly and creepy. Like there is a Cylon watching you.
Interestingly the foot print is the same and it acts the same as the round one.

1 Like

FYI I also have these Tuya contact sensors. The are Huge. They have been rock solid using the Hubitat generic driver. None have ever dropped off the mesh. I have been using them on my refrigerator which historically has given me trouble using Xiaomi/Aqara and Sonoff sensors.
image

1 Like

It seems these simple sensors ( a.k.a. ZM-RT20) are capable of configuring the sensitivity and the 'keep time''' parameters. I have added a task in my TODO list to research more and implement it if possible.

The C/F conversion depending on the HE hub setting was added in ver 1.0.4.
Can you update the driver from the dev. branch (in post #2) and let me know if it works for you?
There were a lot of changes in the code related to the Radar sensors, if nothing is broken I will publish the release version tomorrow and will add the driver in HPM.

Mine is now saying it's due on the 29th of may (ordered a few weeks ago)...

Thanks, I really wasn't trying to add anything to your work. I thought I'd post other Tuya devices that I found were compatible with HE so that others can have more choice in devices.

1 Like

No worries, the idea for configuring the 'keep time' and the sensitivity for some TS0202 sensors was already in my plans.

Thank you. I updated and the driver automatically started to follow my Hubitat setting of °F

1 Like

@kkossev Got mine in today, using driver 1.04

and some not parsed stuff

dev:16382022-05-16 08:11:51.911 pm debugtuya 4-in-1 NOT PARSED : descMap = [raw:catchall: 0000 8021 00 00 0040 00 6D8A 00 00 0000 00 00 4C00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:6D8A, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[4C, 00]]

dev:16382022-05-16 08:11:51.907 pm debugtuya 4-in-1 parse() descMap = [raw:catchall: 0000 8021 00 00 0040 00 6D8A 00 00 0000 00 00 4C00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:6D8A, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[4C, 00]]

dev:16382022-05-16 08:11:50.911 pm debugtuya 4-in-1 NOT PARSED : descMap = [raw:catchall: 0000 8021 00 00 0040 00 6D8A 00 00 0000 00 00 4D00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:6D8A, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[4D, 00]]

dev:16382022-05-16 08:11:50.908 pm debugtuya 4-in-1 parse() descMap = [raw:catchall: 0000 8021 00 00 0040 00 6D8A 00 00 0000 00 00 4D00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:6D8A, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[4D, 00]]

dev:16382022-05-16 08:11:49.902 pm debugtuya 4-in-1 NOT PARSED : descMap = [raw:catchall: 0104 0000 01 01 0040 00 6D8A 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:6D8A, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]

dev:16382022-05-16 08:11:49.899 pm debugtuya 4-in-1 parse() descMap = [raw:catchall: 0104 0000 01 01 0040 00 6D8A 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:6D8A, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]

dev:16382022-05-16 08:09:52.185 pm infoZigbee description:enroll request endpoint 0x01 : data 0x0015

dev:16382022-05-16 08:09:51.886 pm infoZigbee description:zone status 0x0000 -- extended status 0x00 - sourceEndpoint:01, zoneId:FF, delay:0000

dev:16382022-05-16 08:09:19.863 pm infofingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0001,0500,EF00", outClusters:"0019,000A", model:"TS0202", manufacturer:"_TZ3210_zmy9hjay"

dev:16382022-05-16 08:09:19.765 pm infoZigbee description:enroll request endpoint 0x01 : data 0x0015

dev:16382022-05-16 08:09:19.507 pm traceZCL version:03

dev:16382022-05-16 08:09:19.498 pm traceSoftware Build Id:unknown

dev:16382022-05-16 08:09:19.496 pm traceModel:TS0202

dev:16382022-05-16 08:09:19.495 pm traceManufacturer:_TZ3210_zmy9hjay

dev:16382022-05-16 08:09:19.365 pm infoZigbee description:zone status 0x0001 -- extended status 0x00 - sourceEndpoint:01, zoneId:FF, delay:0000

dev:16382022-05-16 08:09:18.783 pm debuggetting info for unknown Zigbee device...

dev:16382022-05-16 08:09:16.768 pm debugconfigure() called...

First of all thanks to OP for this thread. I was looking everywhere for motion&lux zigbee detector compatible with HE. I've just ordered 4in1 from the above link, one unit to start with but if working as advertised I'll be buying many more to kit out whole house.
Also found these from the same seller on Aliexpress, similar to TS0202 but with light sensor.

Ordered 1 for testing, I'll let you know if it works.

1 Like

It will be interesting to know for the 2 in 1 model whether the illuminance is reported when the light changes, no matter whether there is a motion or not. The 4 in 1 sensor works this way (independent illuminance reporting).

However, some cheaper motion sensors use to send illuminance reports only at the time when there is a motion detected, which makes the useability a bit questionable, except there is a 100% guarantee that the illuminance is reported (and processed in HE) well ahead of the motion event.

I'll update here as soon as I test it. Might be a nice(cheap) alternative to the 4in1.

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