Generic Tuya Contact + temp zigbee device

Gladly:

Log when "opening" and Closing" several times

Summary
dev:7262023-02-11 12:57:40.675debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00300202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:57:40.560debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0030080200040000002B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 08, 02, 00, 04, 00, 00, 00, 2B]]
dev:7262023-02-11 12:57:40.434debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 003007020004000000AE, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 07, 02, 00, 04, 00, 00, 00, AE]]
dev:7262023-02-11 12:57:40.310debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00300101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 01, 01, 00, 01, 00]]
dev:7262023-02-11 12:57:30.424debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002F0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2F, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:57:30.311debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002F080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2F, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7262023-02-11 12:57:30.187debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002F07020004000000AC, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2F, 07, 02, 00, 04, 00, 00, 00, AC]]
dev:7262023-02-11 12:57:30.059debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002F0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2F, 01, 01, 00, 01, 01]]
dev:7262023-02-11 12:56:58.958debugMain_door DELAYING 6 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:58.950debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002E0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2E, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:58.838debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002E080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2E, 08, 02, 00, 04, 00, 00, 00, 2A]]
dev:7262023-02-11 12:56:58.716debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002E07020004000000AE, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2E, 07, 02, 00, 04, 00, 00, 00, AE]]
dev:7262023-02-11 12:56:58.595debugMain_door DELAYING 6 seconds event : [name:temperature, unit:°C, value:0, type:delayed, isStateChange:true, descriptionText:temperature is 0.0 °C]
dev:7262023-02-11 12:56:58.586debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002E0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2E, 01, 01, 00, 01, 00]]
dev:7262023-02-11 12:56:57.640debugMain_door DELAYING 8 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:57.631debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002D0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2D, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:57.547debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002D080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2D, 08, 02, 00, 04, 00, 00, 00, 2A]]
dev:7262023-02-11 12:56:57.392debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002D07020004000000AD, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2D, 07, 02, 00, 04, 00, 00, 00, AD]]
dev:7262023-02-11 12:56:57.268debugMain_door DELAYING 8 seconds event : [name:temperature, unit:°C, value:0.1, type:delayed, isStateChange:true, descriptionText:temperature is 0.1 °C]
dev:7262023-02-11 12:56:57.260debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002D0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2D, 01, 01, 00, 01, 01]]
dev:7262023-02-11 12:56:56.991debugMain_door DELAYING 8 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:56.983debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002C0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2C, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:56.872debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002C080200040000002B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2C, 08, 02, 00, 04, 00, 00, 00, 2B]]
dev:7262023-02-11 12:56:56.746debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002C07020004000000AB, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2C, 07, 02, 00, 04, 00, 00, 00, AB]]
dev:7262023-02-11 12:56:56.629debugMain_door DELAYING 8 seconds event : [name:temperature, unit:°C, value:0, type:delayed, isStateChange:true, descriptionText:temperature is 0.0 °C]
dev:7262023-02-11 12:56:56.621debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002C0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2C, 01, 01, 00, 01, 00]]
dev:7262023-02-11 12:56:55.130debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002B0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2B, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:55.021debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002B080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2B, 08, 02, 00, 04, 00, 00, 00, 2A]]
dev:7262023-02-11 12:56:54.889debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002B07020004000000AD, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2B, 07, 02, 00, 04, 00, 00, 00, AD]]
dev:7262023-02-11 12:56:54.764debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002B0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2B, 01, 01, 00, 01, 01]]
dev:7262023-02-11 12:56:19.884debugMain_door DELAYING 9 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:19.876debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002A0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2A, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:19.764debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002A080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2A, 08, 02, 00, 04, 00, 00, 00, 2A]]
dev:7262023-02-11 12:56:19.638debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002A07020004000000AC, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2A, 07, 02, 00, 04, 00, 00, 00, AC]]
dev:7262023-02-11 12:56:19.520debugMain_door DELAYING 9 seconds event : [name:temperature, unit:°C, value:0, type:delayed, isStateChange:true, descriptionText:temperature is 0.0 °C]
dev:7262023-02-11 12:56:19.511debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002A0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 2A, 01, 01, 00, 01, 00]]
dev:7262023-02-11 12:56:13.612debugMain_door DELAYING 5 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:13.604debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00290202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 29, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:13.488debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0029080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 29, 08, 02, 00, 04, 00, 00, 00, 2A]]
dev:7262023-02-11 12:56:13.367debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002907020004000000AD, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 29, 07, 02, 00, 04, 00, 00, 00, AD]]
dev:7262023-02-11 12:56:13.248debugMain_door DELAYING 5 seconds event : [name:temperature, unit:°C, value:0.1, type:delayed, isStateChange:true, descriptionText:temperature is 0.1 °C]
dev:7262023-02-11 12:56:13.240debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00290101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 29, 01, 01, 00, 01, 01]]
dev:7262023-02-11 12:56:04.956debugMain_door DELAYING 4 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:04.948debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00280202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 28, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:04.839debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0028080200040000002B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 28, 08, 02, 00, 04, 00, 00, 00, 2B]]
dev:7262023-02-11 12:56:04.729debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002807020004000000AA, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 28, 07, 02, 00, 04, 00, 00, 00, AA]]
dev:7262023-02-11 12:56:04.594debugMain_door DELAYING 4 seconds event : [name:temperature, unit:°C, value:0, type:delayed, isStateChange:true, descriptionText:temperature is 0.0 °C]
dev:7262023-02-11 12:56:04.585debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00280101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 28, 01, 01, 00, 01, 00]]
dev:7262023-02-11 12:56:03.713debugMain_door DELAYING 6 seconds event : [value:100, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 100.0 % RH]
dev:7262023-02-11 12:56:03.704debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00270202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 27, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7262023-02-11 12:56:03.587debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0027080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 27, 08, 02, 00, 04, 00, 00, 00, 2A]]
dev:7262023-02-11 12:56:03.447debugMain_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 002707020004000000AC, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 27, 07, 02, 00, 04, 00, 00, 00, AC]]
dev:7262023-02-11 12:56:03.330debugMain_door DELAYING 6 seconds event : [name:temperature, unit:°C, value:0.1, type:delayed, isStateChange:true, descriptionText:temperature is 0.1 °C]

Log When putting the device in the freezer (no joke)

Summary
[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 13:01:46.787[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00330202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 02, 02, 00, 04, 00, 00, 00, 64]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 13:01:46.675[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00330802000400000022, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 08, 02, 00, 04, 00, 00, 00, 22]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 13:01:46.552[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0033070200040000004D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 07, 02, 00, 04, 00, 00, 00, 4D]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:59:56.927[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00320202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 02, 02, 00, 04, 00, 00, 00, 64]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:59:56.813[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00320802000400000023, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 08, 02, 00, 04, 00, 00, 00, 23]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:59:56.735[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0032070200040000009B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 07, 02, 00, 04, 00, 00, 00, 9B]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:58:03.765[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00310202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 02, 02, 00, 04, 00, 00, 00, 64]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:58:03.644[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0031080200040000002B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 08, 02, 00, 04, 00, 00, 00, 2B]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:58:03.567[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 003107020004000000AD, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 07, 02, 00, 04, 00, 00, 00, AD]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:57:40.675[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 00300202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 02, 02, 00, 04, 00, 00, 00, 64]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:57:40.560[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 0030080200040000002B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 08, 02, 00, 04, 00, 00, 00, 2B]]

[dev:726](http://10.10.5.28/logs?tab=past&deviceId=726#)2023-02-11 12:57:40.434[debug](http://10.10.5.28/logs?tab=past&deviceId=726#)Main_door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 E0C3 01 00 0000 01 01 003007020004000000AE, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E0C3, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 07, 02, 00, 04, 00, 00, 00, AE]]
2 Likes

You can try the first test version of the "Tuya Zigbee Contact Sensor++ w/ healthStatus" :

https://raw.githubusercontent.com/kkossev/Hubitat/development/Drivers/Tuya%20Contact%20Sensor/Tuya%20Contact%20Sensor.groovy

There are a lot of things to clean up in the driver, for now just let me know whether the contact open/close, the temperature and the humidity events are OK.

First remove the device from the web page and pair it again. Will this driver be selected automatically? When paired as a new device (or when the Initialize button is clicked) your device name should be set automatically to "Tuya Zigbee Contact Sensor w/ Temperature&Humidity".

Updates:

  • ver. 1.0.0 2023-02-12 - Initial test version
  • ver. 1.0.1 2023-02-15 - dynamic Preferences, depending on the device Profile; setDeviceName bug fixed; added BlitzWolf RH3001; _TZE200_nvups4nh fingerprint correction; healthStatus timer started; presenceCountDefaultThreshold bug fix;
  • ver. 1.0.2 2023-02-17 kkossev - healthCheck is scheduled every 1 hour; added presenceCountThreshold option (default 12 hours); healthStatus is cleared when disabled or set to 'unknown' when enabled back; offlineThreshold bug fix ;added Third Reality 3RDS17BZ
3 Likes

OMG, you are F-A-N-T-A-S-T-I-C. Thank you very much for this.

Installed the driver, removed device and re-added it through Add Devices (zigbee) button in HE. Found device and identified it as "Tuya Multisensor 4 in 1"

Debug logs of the device after adding it, with 2-3 open/close events.

Note: The Open/Close events are recognized as "Motion" with results active/inactive in HE device status

Summary
dev:7272023-02-12 09:50:00.903debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:50:00.899debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00370202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 37, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:50:00.788debugMain_Door dp_id=2 dp=8 fncmd=44
dev:7272023-02-12 09:50:00.783debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0037080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 37, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7272023-02-12 09:50:00.670debugMain_Door dp_id=2 dp=7 fncmd=149
dev:7272023-02-12 09:50:00.664debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00370702000400000095, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 37, 07, 02, 00, 04, 00, 00, 00, 95]]
dev:7272023-02-12 09:50:00.564debugMain_Door (DP=0x01) motion event fncmd = 1
dev:7272023-02-12 09:50:00.562debugMain_Door dp_id=1 dp=1 fncmd=1
dev:7272023-02-12 09:50:00.541debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00370101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 37, 01, 01, 00, 01, 01]]
dev:7272023-02-12 09:49:27.770debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:49:27.765debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00360202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 36, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:49:27.645debugMain_Door dp_id=2 dp=8 fncmd=44
dev:7272023-02-12 09:49:27.640debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0036080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 36, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7272023-02-12 09:49:27.520debugMain_Door dp_id=2 dp=7 fncmd=148
dev:7272023-02-12 09:49:27.516debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00360702000400000094, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 36, 07, 02, 00, 04, 00, 00, 00, 94]]
dev:7272023-02-12 09:49:27.396debugMain_Door (DP=0x01) motion event fncmd = 0
dev:7272023-02-12 09:49:27.395debugMain_Door dp_id=1 dp=1 fncmd=0
dev:7272023-02-12 09:49:27.390debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00360101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 36, 01, 01, 00, 01, 00]]
dev:7272023-02-12 09:49:21.275debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:49:21.270debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00350202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 35, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:49:21.161debugMain_Door dp_id=2 dp=8 fncmd=44
dev:7272023-02-12 09:49:21.156debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0035080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 35, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7272023-02-12 09:49:21.034debugMain_Door dp_id=2 dp=7 fncmd=150
dev:7272023-02-12 09:49:21.029debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00350702000400000096, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 35, 07, 02, 00, 04, 00, 00, 00, 96]]
dev:7272023-02-12 09:49:20.908debugMain_Door (DP=0x01) motion event fncmd = 1
dev:7272023-02-12 09:49:20.907debugMain_Door dp_id=1 dp=1 fncmd=1
dev:7272023-02-12 09:49:20.903debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00350101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 35, 01, 01, 00, 01, 01]]
dev:7272023-02-12 09:49:04.791debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:49:04.786debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00340202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 34, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:49:04.676debugMain_Door dp_id=2 dp=8 fncmd=44
dev:7272023-02-12 09:49:04.672debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0034080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 34, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7272023-02-12 09:49:04.549debugMain_Door dp_id=2 dp=7 fncmd=147
dev:7272023-02-12 09:49:04.544debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00340702000400000093, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 34, 07, 02, 00, 04, 00, 00, 00, 93]]
dev:7272023-02-12 09:49:04.428debugMain_Door (DP=0x01) motion event fncmd = 0
dev:7272023-02-12 09:49:04.427debugMain_Door dp_id=1 dp=1 fncmd=0
dev:7272023-02-12 09:49:04.420debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00340101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 34, 01, 01, 00, 01, 00]]
dev:7272023-02-12 09:49:03.098debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:49:03.093debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00330202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:49:02.983debugMain_Door dp_id=2 dp=8 fncmd=44
dev:7272023-02-12 09:49:02.979debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0033080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7272023-02-12 09:49:02.890debugMain_Door dp_id=2 dp=7 fncmd=148
dev:7272023-02-12 09:49:02.885debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00330702000400000094, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 07, 02, 00, 04, 00, 00, 00, 94]]
dev:7272023-02-12 09:49:02.720debugMain_Door (DP=0x01) motion event fncmd = 1
dev:7272023-02-12 09:49:02.719debugMain_Door dp_id=1 dp=1 fncmd=1
dev:7272023-02-12 09:49:02.715debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00330101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 33, 01, 01, 00, 01, 01]]
dev:7272023-02-12 09:48:59.867debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:0C4B0100001407003003FEFF003000, dni:0C4B, endpoint:01, cluster:0000, size:14, attrId:0007, encoding:30, command:01, value:03, clusterInt:0, attrInt:7, additionalAttrs:[[value:00, encoding:30, attrId:FFFE, consumedBytes:4, attrInt:65534]]]
dev:7272023-02-12 09:48:59.649debugMain_Door sendZigbeeCommands (cmd=[he raw 0x0C4B 1 0x01 0x0000 {10 00 00 07 00 FE FF}, delay 200])
dev:7272023-02-12 09:48:59.648debugMain_Door refresh()...
dev:7272023-02-12 09:48:51.981debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:0C4B0100001407003003FEFF003000, dni:0C4B, endpoint:01, cluster:0000, size:14, attrId:0007, encoding:30, command:01, value:03, clusterInt:0, attrInt:7, additionalAttrs:[[value:00, encoding:30, attrId:FFFE, consumedBytes:4, attrInt:65534]]]
dev:7272023-02-12 09:48:51.960debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:0C4B0100001407003003FEFF003000, dni:0C4B, endpoint:01, cluster:0000, size:14, attrId:0007, encoding:30, command:01, value:03, clusterInt:0, attrInt:7, additionalAttrs:[[value:00, encoding:30, attrId:FFFE, consumedBytes:4, attrInt:65534]]]
dev:7272023-02-12 09:48:51.933debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:0C4B0100001407003003FEFF003000, dni:0C4B, endpoint:01, cluster:0000, size:14, attrId:0007, encoding:30, command:01, value:03, clusterInt:0, attrInt:7, additionalAttrs:[[value:00, encoding:30, attrId:FFFE, consumedBytes:4, attrInt:65534]]]
dev:7272023-02-12 09:48:48.574debugMain_Door sendZigbeeCommands (cmd=[he raw 0x0C4B 1 0x01 0x0000 {10 00 00 07 00 FE FF}, delay 200])
dev:7272023-02-12 09:48:48.572debugMain_Door refresh()...
dev:7272023-02-12 09:48:35.671debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:48:35.666debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00320202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:48:35.516debugMain_Door dp_id=2 dp=8 fncmd=45
dev:7272023-02-12 09:48:35.512debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0032080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 08, 02, 00, 04, 00, 00, 00, 2D]]
dev:7272023-02-12 09:48:35.388debugMain_Door dp_id=2 dp=7 fncmd=147
dev:7272023-02-12 09:48:35.383debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00320702000400000093, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 07, 02, 00, 04, 00, 00, 00, 93]]
dev:7272023-02-12 09:48:35.264debugMain_Door (DP=0x01) motion event fncmd = 0
dev:7272023-02-12 09:48:35.262debugMain_Door dp_id=1 dp=1 fncmd=0
dev:7272023-02-12 09:48:35.258debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00320101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 32, 01, 01, 00, 01, 00]]
dev:7272023-02-12 09:48:25.498debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:48:25.493debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00310202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:48:25.387debugMain_Door dp_id=2 dp=8 fncmd=45
dev:7272023-02-12 09:48:25.383debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0031080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 08, 02, 00, 04, 00, 00, 00, 2D]]
dev:7272023-02-12 09:48:25.260debugMain_Door dp_id=2 dp=7 fncmd=148
dev:7272023-02-12 09:48:25.255debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00310702000400000094, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 07, 02, 00, 04, 00, 00, 00, 94]]
dev:7272023-02-12 09:48:25.140debugMain_Door (DP=0x01) motion event fncmd = 1
dev:7272023-02-12 09:48:25.138debugMain_Door dp_id=1 dp=1 fncmd=1
dev:7272023-02-12 09:48:25.134debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00310101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 31, 01, 01, 00, 01, 01]]
dev:7272023-02-12 09:47:57.842debugMain_Door dp_id=2 dp=2 fncmd=100
dev:7272023-02-12 09:47:57.837debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00300202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:7272023-02-12 09:47:57.714debugMain_Door dp_id=2 dp=8 fncmd=44
dev:7272023-02-12 09:47:57.709debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0030080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 08, 02, 00, 04, 00, 00, 00, 2C]]
dev:7272023-02-12 09:47:57.636debugMain_Door dp_id=2 dp=7 fncmd=150
dev:7272023-02-12 09:47:57.590debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00300702000400000096, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 30, 07, 02, 00, 04, 00, 00, 00, 96]]
dev:7272023-02-12 09:47:56.426debugMain_Door Tuya descMap?.command = 11 descMap.data = [00, 32, 40]
dev:7272023-02-12 09:47:56.418debugMain_Door parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 11 01 003240, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:11, direction:01, data:[00, 32, 40]]
dev:7272023-02-12 09:47:36.610debugTuya Multi Sensor 4 In 1 device has received Tuya cluster ZCL command 0x24 response 0x00 data = [24, 00]
dev:7272023-02-12 09:47:36.605debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 00 00 0000 0B 01 2400, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[24, 00]]
dev:7272023-02-12 09:47:36.513debugTuya Multi Sensor 4 In 1 sending time data : [he cmd 0x0C4B 0x01 0xEF00 0x24 {000863E90A1863E8B5B8}, delay 2000]
dev:7272023-02-12 09:47:36.505debugTuya Multi Sensor 4 In 1 time synchronization request from device, descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 24 01 0031, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:24, direction:01, data:[00, 31]]
dev:7272023-02-12 09:47:36.496debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 24 01 0031, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:24, direction:01, data:[00, 31]]
dev:7272023-02-12 09:47:32.087debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:0C4B01000026DFFF420F8DC67B2B13A1C67B2B12A1C67B2B12, dni:0C4B, endpoint:01, cluster:0000, size:26, attrId:FFDF, encoding:42, command:0A, value:Æ{+¡Æ{+¡Æ{+, clusterInt:0, attrInt:65503]
dev:7272023-02-12 09:47:31.520debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:0C4B0100001801002044E2FF201FE4FF2000, dni:0C4B, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:44, clusterInt:0, attrInt:1, additionalAttrs:[[value:1F, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]
dev:7272023-02-12 09:47:28.850debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0000 8021 00 00 0040 00 0C4B 00 00 0000 00 00 0000, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:0C4B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[00, 00]]
dev:7272023-02-12 09:47:28.604debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0000 8021 00 00 0040 00 0C4B 00 00 0000 00 00 FF00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:0C4B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[FF, 00]]
dev:7272023-02-12 09:47:28.350debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0000 8021 00 00 0040 00 0C4B 00 00 0000 00 00 FC00, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:0C4B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[FC, 00]]
dev:7272023-02-12 09:47:28.100debugTuya Multi Sensor 4 In 1 write attribute response is success
dev:7272023-02-12 09:47:28.095debugTuya Multi Sensor 4 In 1 parse(_TZE200_nvups4nh) descMap = [raw:catchall: 0104 0000 01 01 0040 00 0C4B 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]

I've Changed manually the driver to the one you created in Driver section, User, "Tuya Zigbee Contact Sensor++ w/Health status"

Once I did that change and triggered an open/close event in the device, all the metrics appeared in HE Device Status, Contact, humidity, battery, temperature

Debug logs:

Summary
dev:7272023-02-12 09:56:00.939debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:56:00.931debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00450202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 45, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00450202000400000064)
dev:7272023-02-12 09:56:00.829debugMain_Door DELAYING 9 seconds event : [value:44, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 44.0 % RH]
dev:7272023-02-12 09:56:00.826debugMain_Door humidity raw = 44
dev:7272023-02-12 09:56:00.820debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0045080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 45, 08, 02, 00, 04, 00, 00, 00, 2C]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0045080200040000002C)
dev:7272023-02-12 09:56:00.704debugMain_Door DELAYING 9 seconds event : [name:temperature, unit:°C, value:14.6, type:delayed, isStateChange:true, descriptionText:temperature is 14.6 °C]
dev:7272023-02-12 09:56:00.695debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00450702000400000092, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 45, 07, 02, 00, 04, 00, 00, 00, 92]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00450702000400000092)
dev:7272023-02-12 09:56:00.571debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00450101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 45, 01, 01, 00, 01, 00]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00450101000100)
dev:7272023-02-12 09:55:59.995debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:55:59.987debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00440202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 44, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00440202000400000064)
dev:7272023-02-12 09:55:59.878debugMain_Door humidity raw = 44
dev:7272023-02-12 09:55:59.871debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0044080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 44, 08, 02, 00, 04, 00, 00, 00, 2C]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0044080200040000002C)
dev:7272023-02-12 09:55:59.746debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00440702000400000093, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 44, 07, 02, 00, 04, 00, 00, 00, 93]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00440702000400000093)
dev:7272023-02-12 09:55:59.621debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00440101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 44, 01, 01, 00, 01, 01]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00440101000101)
dev:7272023-02-12 09:55:37.829debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:55:37.821debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00430202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 43, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00430202000400000064)
dev:7272023-02-12 09:55:37.706debugMain_Door humidity raw = 45
dev:7272023-02-12 09:55:37.699debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0043080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 43, 08, 02, 00, 04, 00, 00, 00, 2D]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0043080200040000002D)
dev:7272023-02-12 09:55:37.579debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00430702000400000093, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 43, 07, 02, 00, 04, 00, 00, 00, 93]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00430702000400000093)
dev:7272023-02-12 09:54:57.135debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:54:57.127debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00420202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 42, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00420202000400000064)
dev:7272023-02-12 09:54:57.015debugMain_Door DELAYING 1 seconds event : [value:44, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 44.0 % RH]
dev:7272023-02-12 09:54:57.012debugMain_Door humidity raw = 44
dev:7272023-02-12 09:54:57.006debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0042080200040000002C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 42, 08, 02, 00, 04, 00, 00, 00, 2C]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0042080200040000002C)
dev:7272023-02-12 09:54:56.890debugMain_Door DELAYING 1 seconds event : [name:temperature, unit:°C, value:14.9, type:delayed, isStateChange:true, descriptionText:temperature is 14.9 °C]
dev:7272023-02-12 09:54:56.881debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00420702000400000095, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 42, 07, 02, 00, 04, 00, 00, 00, 95]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00420702000400000095)
dev:7272023-02-12 09:54:56.756debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00420101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 42, 01, 01, 00, 01, 00]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00420101000100)
dev:7272023-02-12 09:54:56.146debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:54:56.138debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00410202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 41, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00410202000400000064)
dev:7272023-02-12 09:54:56.038debugMain_Door DELAYING 2 seconds event : [value:45, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 45.0 % RH]
dev:7272023-02-12 09:54:56.035debugMain_Door humidity raw = 45
dev:7272023-02-12 09:54:56.026debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0041080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 41, 08, 02, 00, 04, 00, 00, 00, 2D]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0041080200040000002D)
dev:7272023-02-12 09:54:55.908debugMain_Door DELAYING 2 seconds event : [name:temperature, unit:°C, value:14.6, type:delayed, isStateChange:true, descriptionText:temperature is 14.6 °C]
dev:7272023-02-12 09:54:55.900debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00410702000400000092, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 41, 07, 02, 00, 04, 00, 00, 00, 92]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00410702000400000092)
dev:7272023-02-12 09:54:55.773debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00410101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 41, 01, 01, 00, 01, 01]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00410101000101)
dev:7272023-02-12 09:54:53.412debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:54:53.404debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00400202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 40, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00400202000400000064)
dev:7272023-02-12 09:54:53.302debugMain_Door DELAYING 5 seconds event : [value:45, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 45.0 % RH]
dev:7272023-02-12 09:54:53.299debugMain_Door humidity raw = 45
dev:7272023-02-12 09:54:53.292debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0040080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 40, 08, 02, 00, 04, 00, 00, 00, 2D]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0040080200040000002D)
dev:7272023-02-12 09:54:53.175debugMain_Door DELAYING 5 seconds event : [name:temperature, unit:°C, value:14.9, type:delayed, isStateChange:true, descriptionText:temperature is 14.9 °C]
dev:7272023-02-12 09:54:53.166debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00400702000400000095, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 40, 07, 02, 00, 04, 00, 00, 00, 95]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00400702000400000095)
dev:7272023-02-12 09:54:53.041debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00400101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 40, 01, 01, 00, 01, 00]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00400101000100)
dev:7272023-02-12 09:54:52.067debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:54:52.059debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3F, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F0202000400000064)
dev:7272023-02-12 09:54:51.958debugMain_Door DELAYING 7 seconds event : [value:45, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 45.0 % RH]
dev:7272023-02-12 09:54:51.956debugMain_Door humidity raw = 45
dev:7272023-02-12 09:54:51.949debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3F, 08, 02, 00, 04, 00, 00, 00, 2D]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F080200040000002D)
dev:7272023-02-12 09:54:51.831debugMain_Door DELAYING 7 seconds event : [name:temperature, unit:°C, value:14.8, type:delayed, isStateChange:true, descriptionText:temperature is 14.8 °C]
dev:7272023-02-12 09:54:51.822debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F0702000400000094, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3F, 07, 02, 00, 04, 00, 00, 00, 94]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F0702000400000094)
dev:7272023-02-12 09:54:51.695debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3F, 01, 01, 00, 01, 01]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003F0101000101)
dev:7272023-02-12 09:54:50.400debugMain_Door Battery Percentage rawValue = 200 -> 100%
dev:7272023-02-12 09:54:50.392debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3E, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E0202000400000064)
dev:7272023-02-12 09:54:50.289debugMain_Door DELAYING 8 seconds event : [value:45, name:humidity, unit:% RH, type:delayed, isStateChange:true, descriptionText:humidity is 45.0 % RH]
dev:7272023-02-12 09:54:50.286debugMain_Door humidity raw = 45
dev:7272023-02-12 09:54:50.279debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E080200040000002D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3E, 08, 02, 00, 04, 00, 00, 00, 2D]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E080200040000002D)
dev:7272023-02-12 09:54:50.162debugMain_Door DELAYING 8 seconds event : [name:temperature, unit:°C, value:14.9, type:delayed, isStateChange:true, descriptionText:temperature is 14.9 °C]
dev:7272023-02-12 09:54:50.152debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E0702000400000095, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3E, 07, 02, 00, 04, 00, 00, 00, 95]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E0702000400000095)
dev:7272023-02-12 09:54:50.026debugMain_Door parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 3E, 01, 01, 00, 01, 00]] (description=catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 003E0101000100)

A couple of random notes:

Battery seems to be reported, which is fantastic
I paired it "fairly" away from my HE, but close to the repeater, no issues, found at the first attempt. Status change is reported SUPER quick to HE.

You are fantastic, I have no idea how can I thank you for this. How can I? :wink:

3 Likes

You have a link to this device where you got it?

Not really, bought them in a local store, assume they are from Aliexpress or something like that.

Here are some pictures (in the hidden section) for you to have reference, @kkossev if these pics help/useful for any release post, feel free to use them:

Summary
https://cloud.disroot.org/s/mDaYaNtdP8e2TkS

https://cloud.disroot.org/s/Cjbg3BM7w3LiceJ

https://cloud.disroot.org/s/z7E9aEZ6sFcAR7Z
1 Like

Not op, but there are tons of Tuya Zigbee stuff on Amazon. Some is listed as Smartlife also, but it’s all Tuya. I have found almost everything you get that’s WIFi, BT or Zigbee, Zwave at Costco, HD, lowes ( like led, string, landscape ) lights all work with the Smartlife App.

Hi Prozak,

I am glad the driver worked for you, thank you too! :slight_smile:

I will need the exact fingerprint for this sensor so that the new driver is picked up automatically when paired to HE as a new device. Please switch temporarily the driver to the HE inbuilt one name 'Device', then click on the "Get Info" button and open/close the sensor at the same time. This will wake up the device and will show the fingerprint in the live logs.

This is a link to AE

There are a lot of similar, but not the same devices on Walmart.

1 Like

AliExpress link from here.

Should be close. :wink:

Edit: Hah, too slow. But different SKU... :thinking:

1 Like

Hello!, here are the readings when using the "Device" driver (only said Device), hopefully these are the ones needed:

Summary
2023-02-13 19:17:44.149[info](http://10.10.5.28/logs#)Zigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00030202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 03, 02, 02, 00, 04, 00, 00, 00, 64]]

[dev:727](http://10.10.5.28/logs#)2023-02-13 19:17:44.041[info](http://10.10.5.28/logs#)Zigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0003080200040000002A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 03, 08, 02, 00, 04, 00, 00, 00, 2A]]

[dev:727](http://10.10.5.28/logs#)2023-02-13 19:17:43.918[info](http://10.10.5.28/logs#)Zigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 000307020004000000EE, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 03, 07, 02, 00, 04, 00, 00, 00, EE]]

[dev:727](http://10.10.5.28/logs#)2023-02-13 19:17:43.807[info](http://10.10.5.28/logs#)Zigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00030101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 03, 01, 01, 00, 01, 00]]

[dev:727](http://10.10.5.28/logs#)2023-02-13 19:17:43.682[info](http://10.10.5.28/logs#)Zigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 00030202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 03, 02, 02, 00, 04, 00, 00, 00, 64]]

[dev:727](http://10.10.5.28/logs#)2023-02-13 19:17:43.560[info](http://10.10.5.28/logs#)Zigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 0C4B 01 00 0000 01 01 0003080200040000002B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:0C4B, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 03, 08, 02, 00, 04, 00, 00, 00, 2B]]

Hi @Pr0z4k ,

After switching to 'Device' driver, you must click on the "Get Info" button and open/close the contact sensor at the same time.

If the the device was awake at the time when 'Get Info' button is pressed, it should produce result like this in the live logs:

1 Like

Hopefully this is the correct one, apologies, my first time :wink:

dev:7272023-02-14 18:44:10.338infofingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0004,0005,EF00", outClusters:"0019,000A", model:"TS0601", manufacturer:"_TZE200_nvups4nh"
dev:7272023-02-14 18:44:10.312infofingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0004,0005,EF00", outClusters:"0019,000A", model:"TS0601", manufacturer:"_TZE200_nvups4nh"
dev:7272023-02-14 18:44:10.294infofingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0004,0005,EF00", outClusters:"0019,000A", model:"TS0601", manufacturer:"_TZE200_nvups4nh"
1 Like

I tested a different type of Tuya contact sensor.
This uses a CR2032 battery, but I didn't have it, so I solved the problem by overlapping two CR2016 batteries.
It works very well.


1 Like

Careful - some devices cannot handle double the voltage (6.6V v/s 3.3V) for a long time. Many years ago I did this on an ecobee sensor, and it failed after a couple months of use.

Since then, if I don't have the right cell, I just use a small piece of flat copper plate to make up the difference. Usually ends up being on the -ve side, since the +ve side has a side contact.

3 Likes

Oh, come to think of it, you're right.
But I wonder why it doesn't break right away.
Once the contact sensor fails, there is no problem.
So I'm going to use it because it overlaps with the CR2016 I used before.

-> Contact sensor is not working.
I think the CR2016 that I bought from Ali is a product that has a problem with insufficient capacity

Don't use it the same way as me.

2 Likes

Thank you for providing the correct fingerprint, I have fixed it in the latest driver version.
I also hope that this weekend the driver will be ready for publishing via HPM, I will create a new dedicated thread for it.

BTW, this same driver should also work with all standard Zigbee contact sensors that use IAS Zone Cluster (0x0500). So any feedback using it with other brands is welcome.

4 Likes

I have added Third Reality 3RDS17BZ contact sensor fingerprint to this driver.

Can someone confirm whether the battery reporting configuration works with this device?

1 Like

@kkossev Here are the logs from contact open/Close Sensor. This new driver was the only one installed on HE (deleted all other TYUA drivers)
Some issues:

  • I paired the device with contact closed. But pair, the open/close seems reversed
  • LUX value doesn't seem to show up as well
  • This sensor sends two events for every close/open. Need to ignore the 2nd event
  • Also see few "Not Parsed" messages in the logs [00, 27, 65, 02, 00, 04, 00, 00, 00, 00] is the LUX message that is not getting parsed.
Summary

dev:2802023-02-17 10:55:33.446 PMinfoGarage Door Sensor Contact is open

dev:2802023-02-17 10:55:33.443 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)

dev:2802023-02-17 10:55:33.441 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 002C0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 2C, 01, 01, 00, 01, 00]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 002C0101000100)

dev:2802023-02-17 10:55:28.687 PMinfoGarage Door Sensor Contact is open

dev:2802023-02-17 10:55:28.685 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)

dev:2802023-02-17 10:55:28.682 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 002B0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 2B, 01, 01, 00, 01, 00]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 002B0101000100)

dev:2802023-02-17 10:55:28.467 PMwarnGarage Door Sensor NOT PROCESSED Tuya cmd: dp=101 value=115 descMap.data = [00, 2A, 65, 02, 00, 04, 00, 00, 00, 73]

dev:2802023-02-17 10:55:28.464 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=115 fncmd_len=4 (index=0)

dev:2802023-02-17 10:55:28.461 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 002A6502000400000073, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 2A, 65, 02, 00, 04, 00, 00, 00, 73]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 002A6502000400000073)

dev:2802023-02-17 10:55:13.829 PMinfoGarage Door Sensor Contact is closed

dev:2802023-02-17 10:55:13.823 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=1 fncmd_len=1 (index=0)

dev:2802023-02-17 10:55:13.820 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00290101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 29, 01, 01, 00, 01, 01]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00290101000101)

dev:2802023-02-17 10:55:09.058 PMinfoGarage Door Sensor Contact is closed

dev:2802023-02-17 10:55:09.055 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=1 fncmd_len=1 (index=0)

dev:2802023-02-17 10:55:09.052 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00280101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 28, 01, 01, 00, 01, 01]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00280101000101)

dev:2802023-02-17 10:55:08.842 PMwarnGarage Door Sensor NOT PROCESSED Tuya cmd: dp=101 value=0 descMap.data = [00, 27, 65, 02, 00, 04, 00, 00, 00, 00]

dev:2802023-02-17 10:55:08.839 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=0 fncmd_len=4 (index=0)

dev:2802023-02-17 10:55:08.836 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00276502000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 27, 65, 02, 00, 04, 00, 00, 00, 00]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00276502000400000000)

dev:2802023-02-17 10:54:25.601 PMtraceGarage Door Sensor sendZigbeeCommands(cmd=[he raw 0xB4CC 1 0x01 0x0001 {10 00 00 20 00}, delay 100, he raw 0xB4CC 1 0x01 0x0001 {10 00 00 21 00}, delay 200])

dev:2802023-02-17 10:54:19.564 PMinfoGarage Door Sensor ping() is not implemented

dev:332023-02-17 10:53:50.191 PMerrorLost connection to Web Socket: status: closing, will reconnect.

dev:2802023-02-17 10:52:08.598 PMdebugGarage Door Sensor Battery Percentage rawValue = 200 -> 100%

dev:2802023-02-17 10:52:08.596 PMinfoGarage Door Sensor battery is 100 %

dev:2802023-02-17 10:52:08.593 PMtraceGarage Door Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)

dev:2802023-02-17 10:52:08.590 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00260202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 26, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00260202000400000064)

dev:2802023-02-17 10:51:58.588 PMdebugGarage Door Sensor Battery Percentage rawValue = 200 -> 100%

dev:2802023-02-17 10:51:58.585 PMinfoGarage Door Sensor battery is 100 %

dev:2802023-02-17 10:51:58.583 PMtraceGarage Door Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)

dev:2802023-02-17 10:51:58.580 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00250202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 25, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00250202000400000064)

dev:2802023-02-17 10:51:48.597 PMdebugTuya Zigbee Contact w/ Illuminance Sensor Battery Percentage rawValue = 200 -> 100%

dev:2802023-02-17 10:51:48.595 PMinfoTuya Zigbee Contact w/ Illuminance Sensor battery is 100 %

dev:2802023-02-17 10:51:48.592 PMtraceTuya Zigbee Contact w/ Illuminance Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)

dev:2802023-02-17 10:51:48.589 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00240202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 24, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00240202000400000064)

dev:2802023-02-17 10:51:38.802 PMdebugTuya Zigbee Contact w/ Illuminance Sensor Battery Percentage rawValue = 200 -> 100%

dev:2802023-02-17 10:51:38.800 PMinfoTuya Zigbee Contact w/ Illuminance Sensor battery is 100 %

dev:2802023-02-17 10:51:38.797 PMtraceTuya Zigbee Contact w/ Illuminance Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)

dev:2802023-02-17 10:51:38.792 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00230202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 23, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00230202000400000064)

dev:2802023-02-17 10:51:38.575 PMwarnTuya Zigbee Contact w/ Illuminance Sensor NOT PROCESSED Tuya cmd: dp=101 value=0 descMap.data = [00, 22, 65, 02, 00, 04, 00, 00, 00, 00]

dev:2802023-02-17 10:51:38.572 PMtraceTuya Zigbee Contact w/ Illuminance Sensor dp_id=2 dp=101 fncmd=0 fncmd_len=4 (index=0)

dev:2802023-02-17 10:51:38.569 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00226502000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 22, 65, 02, 00, 04, 00, 00, 00, 00]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00226502000400000000)

dev:2802023-02-17 10:51:28.562 PMdebugTuya Zigbee Contact w/ Illuminance Sensor Battery Percentage rawValue = 200 -> 100%

dev:2802023-02-17 10:51:28.557 PMinfoTuya Zigbee Contact w/ Illuminance Sensor battery is 100 %

dev:2802023-02-17 10:51:28.552 PMtraceTuya Zigbee Contact w/ Illuminance Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)

dev:2802023-02-17 10:51:28.543 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00210202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B4CC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 21, 02, 02, 00, 04, 00, 00, 00, 64]] (description=catchall: 0104 EF00 01 01 0040 00 B4CC 01 00 0000 02 01 00210202000400000064)

dev:2802023-02-17 10:51:24.963 PMinfoTuya Zigbee Contact w/ Illuminance Sensor Received endpoint response: cluster: 8005 (endpoint response) endpointCount = 01 endpointList = 01

dev:2802023-02-17 10:51:24.960 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:catchall: 0000 8005 00 00 0040 00 B4CC 00 00 0000 00 00 4600CCB40101, profileId:0000, clusterId:8005, clusterInt:32773, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:B4CC, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[46, 00, CC, B4, 01, 01]] (description=catchall: 0000 8005 00 00 0040 00 B4CC 00 00 0000 00 00 4600CCB40101)

dev:2802023-02-17 10:51:23.723 PMdebugTuya Zigbee Contact w/ Illuminance Sensor NOT PARSED : [raw:B4CC01000012DFFF4205A931832B12, dni:B4CC, endpoint:01, cluster:0000, size:12, attrId:FFDF, encoding:42, command:0A, value:©1ƒ+, clusterInt:0, attrInt:65503]

dev:2802023-02-17 10:51:23.719 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:B4CC01000012DFFF4205A931832B12, dni:B4CC, endpoint:01, cluster:0000, size:12, attrId:FFDF, encoding:42, command:0A, value:©1ƒ+, clusterInt:0, attrInt:65503] (description=read attr - raw: B4CC01000012DFFF4205A931832B12, dni: B4CC, endpoint: 01, cluster: 0000, size: 12, attrId: FFDF, encoding: 42, command: 0A, value: 05A931832B12)

dev:2802023-02-17 10:51:23.549 PMdebugTuya Zigbee Contact w/ Illuminance Sensor NOT PARSED : [raw:B4CC0100001801002043E2FF2022E4FF2000, dni:B4CC, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:43, clusterInt:0, attrInt:1, additionalAttrs:[[value:22, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]

dev:2802023-02-17 10:51:23.541 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:B4CC0100001801002043E2FF2022E4FF2000, dni:B4CC, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:43, clusterInt:0, attrInt:1, additionalAttrs:[[value:22, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]] (description=read attr - raw: B4CC0100001801002043E2FF2022E4FF2000, dni: B4CC, endpoint: 01, cluster: 0000, size: 18, attrId: 0001, encoding: 20, command: 0A, value: 43E2FF2022E4FF2000)

dev:2802023-02-17 10:51:23.003 PMdebugTuya Zigbee Contact w/ Illuminance Sensor nothing to send to the device (TS0601_CONTACT_ILLUM_BATT)

dev:2802023-02-17 10:51:22.947 PMinfoTuya Zigbee Contact w/ Illuminance Sensor Debug logging will be turned off after 24 hours

dev:2802023-02-17 10:51:22.904 PMinfoTuya Zigbee Contact w/ Illuminance Sensor Debug logging is true; Description text logging is true

dev:2802023-02-17 10:51:22.901 PMinfoTuya Zigbee Contact w/ Illuminance Sensor Updating null (Tuya Zigbee Contact w/ Illuminance Sensor) model TS0601 manufacturer _TZE200_pay2byax, deviceProfile = TS0601_CONTACT_ILLUM_BATT

sys:12023-02-17 10:51:22.394 PMinfoZigbee Discovery Stopped

dev:2802023-02-17 10:51:22.039 PMdebugTuya Zigbee Contact w/ Illuminance Sensor NOT PARSED : [raw:B4CC01000068040042105F545A453230305F70617932627961780000002003010000204305000042065453303630310700003003FEFF003000, dni:B4CC, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZE200_pay2byax, clusterInt:0, attrInt:4, additionalAttrs:[[value:03, encoding:20, attrId:0000, consumedBytes:4, attrInt:0], [value:43, encoding:20, attrId:0001, consumedBytes:4, attrInt:1], [value:TS0601, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]]

dev:2802023-02-17 10:51:22.024 PMdebugTuya Zigbee Contact w/ Illuminance Sensor parse() descMap = [raw:B4CC01000068040042105F545A453230305F70617932627961780000002003010000204305000042065453303630310700003003FEFF003000, dni:B4CC, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZE200_pay2byax, clusterInt:0, attrInt:4, additionalAttrs:[[value:03, encoding:20, attrId:0000, consumedBytes:4, attrInt:0], [value:43, encoding:20, attrId:0001, consumedBytes:4, attrInt:1], [value:TS0601, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]] (description=read attr - raw: B4CC01000068040042105F545A453230305F70617932627961780000002003010000204305000042065453303630310700003003FEFF003000, dni: B4CC, endpoint: 01, cluster: 0000, size: 68, attrId: 0004, encoding: 42, command: 01, value: 105F545A453230305F70617932627961780000002003010000204305000042065453303630310700003003FEFF003000)

sys:12023-02-17 10:51:21.888 PMinfoCreated Zigbee Device Tuya Zigbee Contact Sensor++ w/ healthStatus

dev:2802023-02-17 10:51:21.820 PMtraceTuya Zigbee Contact w/ Illuminance Sensor sendZigbeeCommands(cmd=[he raw 0xB4CC 1 0x01 0x0000 {10 00 00 04 00 00 00 01 00 05 00 07 00 FE FF}, delay 200])

dev:2802023-02-17 10:51:21.809 PMinfoTuya Zigbee Contact w/ Illuminance Sensor configure()..

dev:2802023-02-17 10:51:21.800 PMinfoTuya Zigbee Contact Sensor++ w/ healthStatus Received endpoint response: cluster: 8005 (endpoint response) endpointCount = 01 endpointList = 01

dev:2802023-02-17 10:51:21.792 PMdebugTuya Zigbee Contact Sensor++ w/ healthStatus parse() descMap = [raw:catchall: 0000 8005 00 00 0040 00 B4CC 00 00 0000 00 00 4500CCB40101, profileId:0000, clusterId:8005, clusterInt:32773, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:B4CC, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[45, 00, CC, B4, 01, 01]] (description=catchall: 0000 8005 00 00 0040 00 B4CC 00 00 0000 00 00 4500CCB40101)

dev:2802023-02-17 10:51:21.775 PMinfoTuya Zigbee Contact Sensor++ w/ healthStatus is present

dev:2802023-02-17 10:51:21.693 PMinfoTuya Zigbee Contact w/ Illuminance Sensor all states and scheduled jobs cleared!

dev:2802023-02-17 10:51:21.691 PMinfoTuya Zigbee Contact w/ Illuminance Sensor device model TS0601 manufacturer _TZE200_pay2byax deviceName was set to Tuya Zigbee Contact w/ Illuminance Sensor

dev:2802023-02-17 10:51:21.640 PMinfoTuya Zigbee Contact Sensor++ w/ healthStatus Statistics were reset. Press F5 to refresh the device page

dev:2802023-02-17 10:51:21.607 PMinfoTuya Zigbee Contact Sensor++ w/ healthStatus InitializeVars()... fullInit = true

dev:2802023-02-17 10:51:21.586 PMinfoTuya Zigbee Contact Sensor++ w/ healthStatus installed()...

sys:12023-02-17 10:51:12.088 PMinfoInitializing Zigbee Device A4C138D671248ED8, B4CC

sys:12023-02-17 10:50:52.358 PMinfoZigbee Discovery Running

1 Like

Hey @Abhay , thank you for the feedback and the logs!

I have prepared the head post for a new dedicated thread on the "Tuya Zigbee Contact Sensor++ w/ healthStatus" driver and I will publish it shortly. Let's continue with the fixes for the Contact+Illuminance model there, I have marked the driver status for this model as a work in progress.

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.