[RELEASE] Tuya Temperature Humidity Illuminance LCD Display with a Clock (w/ healthStatus)

Hi @Abhay ,

Can you try this driver with your device?
Uncomment the line that exposes the ContactSensor capability :

@kkossev Thanks a lot replying to my query in other thread.
I haven't tried tried this driver. Will do the change you suggested and get back to you.

In the meantime, check out the changes i did to your other 4 in 1 driver:
github.com/abhayms-git/Hubitat/blob/main/Tuya_Contact_Sensor.groovy
With this change:

  • On an already paired everything worked.
  • Contact open/close is valid
  • duplicate events from sensor is eliminated
    -LUX values are read

However, when i removed the paired device and re-paired:

  • HE was able to pair and use the "4 in 1" directly
  • BUT now, the driver only displays "LUX" values. Driver is unable to parse the open/close events.
  • Based on the logs, i think the updated driver is failing to get the in/out cluster information?
    Can you please point me to the error that i did in updating your driver?
Summary

dev:2712023-01-19 05:24:50.771 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:24:50.766 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 0
dev:2712023-01-19 05:24:50.764 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=0
dev:2712023-01-19 05:24:50.762 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00820101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 82, 01, 01, 00, 01, 00]]
dev:2712023-01-19 05:24:50.543 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:24:50.538 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 0
dev:2712023-01-19 05:24:50.535 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=0
dev:2712023-01-19 05:24:50.533 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00810101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 81, 01, 01, 00, 01, 00]]
dev:2712023-01-19 05:24:50.316 PMdebugGarage Door Sensor dp_id=2 dp=101 fncmd=556
dev:2712023-01-19 05:24:50.314 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 0080650200040000022C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 80, 65, 02, 00, 04, 00, 00, 02, 2C]]
dev:2712023-01-19 05:24:47.735 PMdebugGarage Door Sensor dp_id=2 dp=101 fncmd=556
dev:2712023-01-19 05:24:47.733 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 0080650200040000022C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 80, 65, 02, 00, 04, 00, 00, 02, 2C]]
dev:2712023-01-19 05:24:45.338 PMinfoGarage Door Sensor Illuminance is 556 Lux
dev:2712023-01-19 05:24:45.335 PMdebugGarage Door Sensor dp_id=2 dp=101 fncmd=556
dev:2712023-01-19 05:24:45.332 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 0080650200040000022C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 80, 65, 02, 00, 04, 00, 00, 02, 2C]]
dev:2712023-01-19 05:24:41.181 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:24:41.176 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 1
dev:2712023-01-19 05:24:41.173 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=1
dev:2712023-01-19 05:24:41.171 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007F0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7F, 01, 01, 00, 01, 01]]
dev:2712023-01-19 05:24:39.975 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:24:39.970 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 1
dev:2712023-01-19 05:24:39.968 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=1
dev:2712023-01-19 05:24:39.965 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007F0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7F, 01, 01, 00, 01, 01]]
dev:2712023-01-19 05:24:36.422 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:24:36.417 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 1
dev:2712023-01-19 05:24:36.415 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=1
dev:2712023-01-19 05:24:36.412 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007E0101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7E, 01, 01, 00, 01, 01]]
dev:2712023-01-19 05:24:36.206 PMinfoGarage Door Sensor Illuminance is 553 Lux
dev:2712023-01-19 05:24:36.202 PMdebugGarage Door Sensor dp_id=2 dp=101 fncmd=553
dev:2712023-01-19 05:24:36.198 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007D6502000400000229, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7D, 65, 02, 00, 04, 00, 00, 02, 29]]
dev:2712023-01-19 05:22:50.428 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:22:50.423 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 0
dev:2712023-01-19 05:22:50.420 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=0
dev:2712023-01-19 05:22:50.418 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007C0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7C, 01, 01, 00, 01, 00]]
dev:2712023-01-19 05:22:45.695 PMerrorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 938 (method parse)
dev:2712023-01-19 05:22:45.654 PMdebugGarage Door Sensor (DP=0x01) motion event fncmd = 0
dev:2712023-01-19 05:22:45.651 PMdebugGarage Door Sensor dp_id=1 dp=1 fncmd=0
dev:2712023-01-19 05:22:45.649 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007B0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7B, 01, 01, 00, 01, 00]]
dev:2712023-01-19 05:22:45.466 PMinfoGarage Door Sensor Illuminance is 466 Lux
dev:2712023-01-19 05:22:45.461 PMdebugGarage Door Sensor dp_id=2 dp=101 fncmd=466
dev:2712023-01-19 05:22:45.457 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 007A65020004000001D2, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7A, 65, 02, 00, 04, 00, 00, 01, D2]]
dev:2712023-01-19 05:21:49.575 PMwarnGarage Door Sensor Garage Door Sensor non-radar event 2 fncmd = 100
dev:2712023-01-19 05:21:49.573 PMdebugGarage Door Sensor dp_id=2 dp=2 fncmd=100
dev:2712023-01-19 05:21:49.571 PMdebugGarage Door Sensor parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00790202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 79, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2712023-01-19 05:21:39.569 PMwarnTuya Multi Sensor 4 In 1 Tuya Multi Sensor 4 In 1 non-radar event 2 fncmd = 100
dev:2712023-01-19 05:21:39.567 PMdebugTuya Multi Sensor 4 In 1 dp_id=2 dp=2 fncmd=100
dev:2712023-01-19 05:21:39.564 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00780202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 78, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2712023-01-19 05:21:29.998 PMwarnTuya Multi Sensor 4 In 1 Tuya Multi Sensor 4 In 1 non-radar event 2 fncmd = 100
dev:2712023-01-19 05:21:29.996 PMdebugTuya Multi Sensor 4 In 1 dp_id=2 dp=2 fncmd=100
dev:2712023-01-19 05:21:29.993 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00770202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 77, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2712023-01-19 05:21:29.777 PMwarnTuya Multi Sensor 4 In 1 Tuya Multi Sensor 4 In 1 non-radar event 2 fncmd = 100
dev:2712023-01-19 05:21:29.775 PMdebugTuya Multi Sensor 4 In 1 dp_id=2 dp=2 fncmd=100
dev:2712023-01-19 05:21:29.772 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00760202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 76, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2712023-01-19 05:21:29.559 PMinfoTuya Multi Sensor 4 In 1 Illuminance is 414 Lux
dev:2712023-01-19 05:21:29.556 PMdebugTuya Multi Sensor 4 In 1 dp_id=2 dp=101 fncmd=414
dev:2712023-01-19 05:21:29.554 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 0075650200040000019E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 75, 65, 02, 00, 04, 00, 00, 01, 9E]]
dev:2712023-01-19 05:21:19.531 PMwarnTuya Multi Sensor 4 In 1 Tuya Multi Sensor 4 In 1 non-radar event 2 fncmd = 100
dev:2712023-01-19 05:21:19.523 PMdebugTuya Multi Sensor 4 In 1 dp_id=2 dp=2 fncmd=100
dev:2712023-01-19 05:21:19.521 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7459 01 00 0000 02 01 00740202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 74, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2712023-01-19 05:21:16.103 PMinfoTuya Multi Sensor 4 In 1 zdo command: cluster: 8005 (endpoint response) endpointCount = 01 endpointList = 01
dev:2712023-01-19 05:21:16.100 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0000 8005 00 00 0040 00 7459 00 00 0000 00 00 BE0059740101, profileId:0000, clusterId:8005, clusterInt:32773, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:7459, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[BE, 00, 59, 74, 01, 01]]
dev:2712023-01-19 05:21:15.844 PMinfoTuya Multi Sensor 4 In 1 Tuya check-in
dev:2712023-01-19 05:21:15.842 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:745901000012DFFF4205F2A85C2B12, dni:7459, endpoint:01, cluster:0000, size:12, attrId:FFDF, encoding:42, command:0A, value:ò¨+, clusterInt:0, attrInt:65503]
dev:2712023-01-19 05:21:14.522 PMinfoTuya Multi Sensor 4 In 1 Tuya check-in (application version is 43)
dev:2712023-01-19 05:21:14.518 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:74590100001801002043E2FF2022E4FF2000, dni:7459, 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:2712023-01-19 05:21:13.511 PMinfoTuya Multi Sensor 4 In 1 Received bind response, data=[C9, 82] (Sequence Number:C9, Status: Failure)
dev:2712023-01-19 05:21:13.509 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0000 8021 00 00 0040 00 7459 00 00 0000 00 00 C982, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:7459, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[C9, 82]]
dev:2712023-01-19 05:21:13.269 PMinfoTuya Multi Sensor 4 In 1 Received bind response, data=[C7, 82] (Sequence Number:C7, Status: Failure)
dev:2712023-01-19 05:21:13.267 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0000 8021 00 00 0040 00 7459 00 00 0000 00 00 C782, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:7459, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[C7, 82]]
dev:2712023-01-19 05:21:13.210 PMinfoTuya Multi Sensor 4 In 1 Received bind response, data=[C6, 82] (Sequence Number:C6, Status: Failure)
dev:2712023-01-19 05:21:13.207 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0000 8021 00 00 0040 00 7459 00 00 0000 00 00 C682, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:7459, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[C6, 82]]
dev:2712023-01-19 05:21:13.162 PMdebugTuya Multi Sensor 4 In 1 write attribute response is success
dev:2712023-01-19 05:21:13.159 PMdebugTuya Multi Sensor 4 In 1 parse(_TZE200_pay2byax) descMap = [raw:catchall: 0104 0000 01 01 0040 00 7459 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7459, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
sys:12023-01-19 05:21:12.954 PMinfoZigbee Discovery Stopped
sys:12023-01-19 05:21:11.966 PMinfoCreated Zigbee Device Tuya Multi Sensor 4 In 1
dev:2712023-01-19 05:21:11.860 PMinfoTuya Multi Sensor 4 In 1 installed()
sys:12023-01-19 05:21:06.750 PMinfoInitializing Zigbee Device A4C138D671248ED8, 7459
sys:12023-01-19 05:20:36.890 PMinfoZigbee Discovery Running
dev:332023-01-19 05:19:00.201 PMerrorLost connection to Web Socket: status: closing, will reconnect.

I will have the time to examine the logs and your changes probably during the weekend... But the 4-in-1 driver is definitely not the right one to be used with contact sensors. I was trying to avoid making just another Tuya driver for these contact sensors, as it becomes very time consuming to support too many different drivers. Unfortunately, Hubitat does not support dynamic capabilities. At the same time, exposing ContactSensor capability for all the motion sensors makes the motion sensors and the radars to appear in the all the HE applications device filtering lists as contact/door sensors, it confuses the integrations to Alexa, Google Home, HomeKit, SmartThings, etc..
So probably the best approach would be to make a new strip-down version of this driver to support the contact and illuminance only.... once we see it working with this device.

Understood Thanks.
I tried this driver, after uncommenting the single line that you suggested.
Removed old device and re-paired again. Everything including the LUX value works as expected. Here are the logs:

Summary

dev:2742023-01-19 11:08:29.444 PMinfoGarage Door Sensor Contact is closed
dev:2742023-01-19 11:08:29.442 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:29.440 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 001B0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 1B, 01, 01, 00, 01, 00]]
dev:2742023-01-19 11:08:24.682 PMinfoGarage Door Sensor Contact is closed
dev:2742023-01-19 11:08:24.680 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:24.677 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 001A0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 1A, 01, 01, 00, 01, 00]]
dev:2742023-01-19 11:08:24.467 PMinfoGarage Door Sensor illuminance is 66 Lux
dev:2742023-01-19 11:08:24.463 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=66 fncmd_len=4 (index=0)
dev:2742023-01-19 11:08:24.458 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00196502000400000042, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 19, 65, 02, 00, 04, 00, 00, 00, 42]]
dev:2742023-01-19 11:08:20.525 PMinfoGarage Door Sensor Contact is open
dev:2742023-01-19 11:08:20.523 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=1 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:20.520 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00180101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 18, 01, 01, 00, 01, 01]]
dev:2742023-01-19 11:08:20.311 PMinfoGarage Door Sensor illuminance is 5 Lux
dev:2742023-01-19 11:08:20.309 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=5 fncmd_len=4 (index=0)
dev:2742023-01-19 11:08:20.307 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00176502000400000005, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 17, 65, 02, 00, 04, 00, 00, 00, 05]]
dev:2742023-01-19 11:08:16.809 PMinfoGarage Door Sensor Contact is closed
dev:2742023-01-19 11:08:16.806 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:16.802 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00160101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 16, 01, 01, 00, 01, 00]]
dev:2742023-01-19 11:08:12.037 PMinfoGarage Door Sensor Contact is closed
dev:2742023-01-19 11:08:12.035 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:12.032 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00150101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 15, 01, 01, 00, 01, 00]]
dev:2742023-01-19 11:08:11.820 PMinfoGarage Door Sensor illuminance is 108 Lux
dev:2742023-01-19 11:08:11.818 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=108 fncmd_len=4 (index=0)
dev:2742023-01-19 11:08:11.816 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 0014650200040000006C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 14, 65, 02, 00, 04, 00, 00, 00, 6C]]
dev:2742023-01-19 11:08:10.246 PMinfoGarage Door Sensor Contact is open
dev:2742023-01-19 11:08:10.244 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=1 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:10.241 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00130101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 13, 01, 01, 00, 01, 01]]
dev:2742023-01-19 11:08:05.478 PMinfoGarage Door Sensor Contact is open
dev:2742023-01-19 11:08:05.476 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=1 fncmd_len=1 (index=0)
dev:2742023-01-19 11:08:05.474 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00120101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 12, 01, 01, 00, 01, 01]]
dev:2742023-01-19 11:08:05.281 PMinfoGarage Door Sensor illuminance is 870 Lux
dev:2742023-01-19 11:08:05.278 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=870 fncmd_len=4 (index=0)
dev:2742023-01-19 11:08:05.276 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00116502000400000366, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 11, 65, 02, 00, 04, 00, 00, 03, 66]]
dev:2742023-01-19 11:07:58.671 PMinfoGarage Door Sensor Contact is closed
dev:2742023-01-19 11:07:58.669 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)
dev:2742023-01-19 11:07:58.666 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00100101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 10, 01, 01, 00, 01, 00]]
dev:2742023-01-19 11:07:53.900 PMinfoGarage Door Sensor Contact is closed
dev:2742023-01-19 11:07:53.898 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)
dev:2742023-01-19 11:07:53.895 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 000F0101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0F, 01, 01, 00, 01, 00]]
dev:2742023-01-19 11:07:53.714 PMinfoGarage Door Sensor illuminance is 0 Lux
dev:2742023-01-19 11:07:53.709 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=0 fncmd_len=4 (index=0)
dev:2742023-01-19 11:07:53.705 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 000E6502000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0E, 65, 02, 00, 04, 00, 00, 00, 00]]
dev:2742023-01-19 11:06:35.968 PMwarnGarage Door Sensor NOT PARSED : [raw:7DB901000030DFFF4214E8BB5C2B12EBF85C2B1261F95C2B192400000012, dni:7DB9, endpoint:01, cluster:0000, size:30, attrId:FFDF, encoding:42, command:0A, value:è»+ëø+aù+$, clusterInt:0, attrInt:65503]
dev:2742023-01-19 11:06:35.965 PMdebugGarage Door Sensor parse() descMap = [raw:7DB901000030DFFF4214E8BB5C2B12EBF85C2B1261F95C2B192400000012, dni:7DB9, endpoint:01, cluster:0000, size:30, attrId:FFDF, encoding:42, command:0A, value:è»+ëø+aù+$, clusterInt:0, attrInt:65503]
dev:2742023-01-19 11:05:52.105 PMdebugGarage Door Sensor Battery Percentage rawValue = 200 -> 100%
dev:2742023-01-19 11:05:52.103 PMtraceGarage Door Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)
dev:2742023-01-19 11:05:52.100 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 000D0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0D, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2742023-01-19 11:05:42.097 PMdebugGarage Door Sensor Battery Percentage rawValue = 200 -> 100%
dev:2742023-01-19 11:05:42.095 PMtraceGarage Door Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)
dev:2742023-01-19 11:05:42.093 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 000C0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0C, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2742023-01-19 11:05:32.101 PMdebugGarage Door Sensor Battery Percentage rawValue = 200 -> 100%
dev:2742023-01-19 11:05:32.097 PMtraceGarage Door Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)
dev:2742023-01-19 11:05:32.093 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 000B0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0B, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2742023-01-19 11:05:22.524 PMdebugGarage Door Sensor Battery Percentage rawValue = 200 -> 100%
dev:2742023-01-19 11:05:22.522 PMtraceGarage Door Sensor dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)
dev:2742023-01-19 11:05:22.517 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 000A0202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 0A, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2742023-01-19 11:05:22.308 PMinfoGarage Door Sensor illuminance is 0 Lux
dev:2742023-01-19 11:05:22.301 PMtraceGarage Door Sensor dp_id=2 dp=101 fncmd=0 fncmd_len=4 (index=0)
dev:2742023-01-19 11:05:22.298 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00096502000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 09, 65, 02, 00, 04, 00, 00, 00, 00]]
dev:2742023-01-19 11:05:22.080 PMinfoGarage Door Sensor Contact is open
dev:2742023-01-19 11:05:22.078 PMtraceGarage Door Sensor dp_id=1 dp=1 fncmd=1 fncmd_len=1 (index=0)
dev:2742023-01-19 11:05:22.075 PMdebugGarage Door Sensor parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00080101000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 08, 01, 01, 00, 01, 01]]
dev:2742023-01-19 11:05:12.055 PMdebugTuya Temperature Humidity Illuminance LCD Display with a Clock Battery Percentage rawValue = 200 -> 100%
dev:2742023-01-19 11:05:12.047 PMtraceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=2 dp=2 fncmd=100 fncmd_len=4 (index=0)
dev:2742023-01-19 11:05:12.040 PMdebugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 7DB9 01 00 0000 02 01 00070202000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:7DB9, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 07, 02, 02, 00, 04, 00, 00, 00, 64]]
dev:2742023-01-19 11:05:08.391 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock Received endpoint response: cluster: 8005 (endpoint response) endpointCount = 01 endpointList = 01
dev:2742023-01-19 11:05:08.385 PMdebugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0000 8005 00 00 0040 00 7DB9 00 00 0000 00 00 8D00B97D0101, profileId:0000, clusterId:8005, clusterInt:32773, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:7DB9, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[8D, 00, B9, 7D, 01, 01]]
dev:2742023-01-19 11:05:07.044 PMwarnTuya Temperature Humidity Illuminance LCD Display with a Clock NOT PARSED : [raw:7DB90100001801002043E2FF2022E4FF2001, dni:7DB9, 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:01, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]
dev:2742023-01-19 11:05:07.038 PMdebugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:7DB90100001801002043E2FF2022E4FF2001, dni:7DB9, 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:01, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]
dev:2742023-01-19 11:05:04.761 PMwarnTuya Temperature Humidity Illuminance LCD Display with a Clock NOT PARSED : [raw:7DB901000068040042105F545A453230305F70617932627961780000002003010000204305000042065453303630310700003003FEFF003000, dni:7DB9, 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:2742023-01-19 11:05:04.749 PMdebugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:7DB901000068040042105F545A453230305F70617932627961780000002003010000204305000042065453303630310700003003FEFF003000, dni:7DB9, 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:2742023-01-19 11:05:04.711 PMtraceTuya Temperature Humidity Illuminance LCD Display with a Clock sendZigbeeCommands(cmd=[])
dev:2742023-01-19 11:05:04.708 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock Debug logging is will be turned off after 24 hours
dev:2742023-01-19 11:05:04.662 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock Debug logging is true; Description text logging is true
dev:2742023-01-19 11:05:04.658 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock Updating null (Tuya Temperature Humidity Illuminance LCD Display with a Clock) model TS0601 manufacturer _TZE200_pay2byax modelGroupPreference = Auto detect (TS0601_Contact)
sys:12023-01-19 11:05:04.201 PMinfoZigbee Discovery Stopped
sys:12023-01-19 11:05:03.660 PMinfoCreated Zigbee Device Tuya Temperature Humidity Illuminance LCD Display with a Clock
dev:2742023-01-19 11:05:03.609 PMtraceTuya Temperature Humidity Illuminance LCD Display with a Clock sendZigbeeCommands(cmd=[he raw 0x7DB9 1 0x01 0x0000 {10 00 00 04 00 00 00 01 00 05 00 07 00 FE FF}, delay 200])
dev:2742023-01-19 11:05:03.601 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock configure()..
dev:2742023-01-19 11:05:03.484 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock Statistics were reset. Press F5 to refresh the device page
dev:2742023-01-19 11:05:03.477 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock InitializeVars()... fullInit = true
dev:2742023-01-19 11:05:03.465 PMinfoTuya Temperature Humidity Illuminance LCD Display with a Clock installed()...
sys:12023-01-19 11:04:58.745 PMinfoInitializing Zigbee Device A4C138D671248ED8, 7DB9
sys:12023-01-19 11:04:57.171 PMinfoZigbee Discovery Running
sys:12023-01-19 11:03:59.589 PMinfoZigbee Discovery Stopped
sys:12023-01-19 11:02:59.587 PMinfoZigbee Discovery Running
sys:12023-01-19 11:02:54.196 PMinfoZigbee Discovery Stopped
sys:12023-01-19 11:02:54.193 PMinfoZigbee Discovery Stopped
sys:12023-01-19 11:01:54.199 PMinfoZigbee Discovery Running

State Variables

  • lastTx : {"tempCfg":"-1,-1,-1","humiCfg":"-1,-1,-1","tempCfgOK":false,"humiCfgOK":false,"cfgTimer":0}
  • modelGroup : TS0601_Contact
  • lastRx : {"tempTime":1674198293477,"humiTime":1674198293477,"tempCfg":"-1,-1,-1","humiCfg":"-1,-1,-1"}
  • stats : {"rxCtr":10,"txCtr":2,"rejoins":0}
  • driverVersion : 1.2.0 2023/01/15 12:42 PM
  • configState : 0
1 Like

For "Alexa" to show it as "Contact Sensor, i had to comment out following capabilities.

        capability "Refresh"
        capability "Sensor"
        capability "Battery"
        //capability "TemperatureMeasurement"
        //capability "RelativeHumidityMeasurement"
        capability "IlluminanceMeasurement"
        capability "ContactSensor"   // uncomment for _TZE200_pay2byax contact w/ illuminance sensor
        //capability "MotionSensor"    // uncomment for SiHAS multi sensor

Else Alexa was treating the device as a "temperature Sensor"

I think it might better to have a separate driver for "Contact Sensors" itself. Let me know if i can be of any help.
I will try to create a strip down version as well. Will share my Git repo may be for your review once i have it ready.

2 Likes

That's a great idea!

You can make me a 'collaborator' in your GitHub - abhayms-git/Hubitat: Drivers for Hubitat repository, and I will help you with anything you may need (including adding the driver to HPM later, when ready). You can also make a Project in github and we can continue the discussion and the work there.

I am glad to see more developers joining Hubitat platform! :slight_smile:

3 Likes

@Abhay & @kkossev

Thanks! Its guys like you that make a platform viable. Let me know if / how i would be able to support you (apart from testing, which is more my expertise than coding).

Regards, Henk

1 Like

Hey I like the work you are doing on these Tuya and related products. Im looking to install a CO2 meter such as this one:

https://www.amazon.ca/Baixia-Temperature-Humidity-Detector-Automation/dp/B0BRKGSTW1/ref=sr_1_7?crid=1UGH6K6UQB5FD&keywords=co2+monitor+zigbee&qid=1675448477&sprefix=co2+monitorzigbee%2Caps%2C162&sr=8-7

Any plans to make these work with your driver? There seems to be several different models.
Thanks
Mike

Hi @mike110 ,

This sensor will probably work with this driver :

If you have not spent your money on this device yet, my advice will be to look elsewhere for a CO2 sensor.

These Tuya branded Air Quality devices are an absolute **** ... well, something to avoid.

OK thanks. I have not purchased one yet. I was curious because they are very cheep and there are not too many Zigbee or zwave connected CO2 sensors. Any suggestions for a better quality one?

Still negative celsius temperature bug in tuya temp and humidity sensor. 652 degrees now while it shoud be like -1˚C

@petteri.joutseno I can't find your previous post for your device, which is the model and the manufacturer, please?

Also, some debug logs when the temperature goes below 0 deg. will be helpful.

That is the model. I cant get logs for it now while that hubitat is 100km away

2 Likes

Thanks, I will look at the possible reasons some hours later.

Lastly I was looking ar Heiman CO2 sensor (Zigbee), but I haven't decided yet :

I also have Eurotronic (Z-wave) which reports also VOC, but I had it switched off for quite a long time, due to some z-wave mesh problems that I had with a lot of FLiRS Z-wave devices. I will try to put it back in operation next days.

From the same link you can also check the MCO HOME which seems even better quality, but double in price.

1 Like

For _TZ3000_bguser20 you need this driver version to be a minimum 1.1.1 (15th of Jan 2023) and the sensor to be paired to HE at a close distance to the hub.

Models TS0201 are using the standard ZCL temperature and humidity clusters for sending T/H reports, but with Tuya devices you never know...

Check first If you are using version 1.1.1 or a new one.

1 Like

MCO Home MH9
Well…. I actually own one…. Rather pricy, but is zwave, mains powered and quite accurate;

Available from Amazon in Europe.

1 Like

Thanks for the suggestions. Seems like the selection in Europe is much better for this kind of thing. I can't find any Canadian or USA vendor for any of those sensors. However I note that the Eurotronic will ship worldwide for a reasonable price. Im am also more of a zwave fan than zigbee so that is a bonus. However Hubitat is not listed as a compatible system. You have this working on your hub with what driver?

The driver is available in Hubitat Package Manager, search for "Eurotronic Air Quality Sensor"
Also here : [RELEASE] Eurotronic Air Quality Sensor (Humidity / Dewpoint / CO2 / VOC)

Hello Krassimir, I just paired the soil sensor and seeing this in the logs, not sure if it's relevant. The device does appear to work correctly.

Anything Usefull Here?

dev:20932023-02-07 01:44:38.422 PMinfo__Tuya Soil Temp Humidity battery_state (0x0E) is 1

dev:20932023-02-07 01:44:38.419 PMtrace__Tuya Soil Temp Humidity dp_id=4 dp=14 fncmd=1 fncmd_len=1 (index=0)

dev:20932023-02-07 01:44:38.416 PMdebug__Tuya Soil Temp Humidity parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 F3EA 01 00 0000 02 01 00180E04000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3EA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 18, 0E, 04, 00, 01, 01]]

dev:20932023-02-07 01:44:38.299 PMdebug__Tuya Soil Temp Humidity Battery Percentage rawValue = 60 -> 30%

dev:20932023-02-07 01:44:38.296 PMtrace__Tuya Soil Temp Humidity dp_id=2 dp=15 fncmd=30 fncmd_len=4 (index=0)

dev:20932023-02-07 01:44:38.293 PMdebug__Tuya Soil Temp Humidity parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 F3EA 01 00 0000 02 01 00170F0200040000001E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3EA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 17, 0F, 02, 00, 04, 00, 00, 00, 1E]]

dev:20932023-02-07 01:43:57.219 PMinfo__Tuya Soil Temp Humidity battery_state (0x0E) is 1

dev:20932023-02-07 01:43:57.216 PMtrace__Tuya Soil Temp Humidity dp_id=4 dp=14 fncmd=1 fncmd_len=1 (index=0)

dev:20932023-02-07 01:43:57.212 PMdebug__Tuya Soil Temp Humidity parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 F3EA 01 00 0000 02 01 00160E04000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3EA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 16, 0E, 04, 00, 01, 01]]

dev:20932023-02-07 01:43:57.097 PMdebug__Tuya Soil Temp Humidity Battery Percentage rawValue = 60 -> 30%

dev:20932023-02-07 01:43:57.094 PMtrace__Tuya Soil Temp Humidity dp_id=2 dp=15 fncmd=30 fncmd_len=4 (index=0)

dev:20932023-02-07 01:43:57.091 PMdebug__Tuya Soil Temp Humidity parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 F3EA 01 00 0000 02 01 00150F0200040000001E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3EA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 15, 0F, 02, 00, 04, 00, 00, 00, 1E]]

dev:20932023-02-07 01:43:16.017 PMinfo__Tuya Soil Temp Humidity battery_state (0x0E) is 1

dev:20932023-02-07 01:43:16.014 PMtrace__Tuya Soil Temp Humidity dp_id=4 dp=14 fncmd=1 fncmd_len=1 (index=0)

dev:20932023-02-07 01:43:16.011 PMdebug__Tuya Soil Temp Humidity parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 F3EA 01 00 0000 02 01 00140E04000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3EA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 14, 0E, 04, 00, 01, 01]]

dev:20932023-02-07 01:43:15.897 PMdebug__Tuya Soil Temp Humidity Battery Percentage rawValue = 60 -> 30%

dev:20932023-02-07 01:43:15.894 PMtrace__Tuya Soil Temp Humidity dp_id=2 dp=15 fncmd=30 fncmd_len=4 (index=0)

dev:20932023-02-07 01:43:15.890 PMdebug__Tuya Soil Temp Humidity parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 F3EA 01 00 0000 02 01 00130F0200040000001E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3EA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 13, 0F, 02, 00, 04, 00, 00, 00, 1E]]

State Variables

  • lastTx : {"tempCfg":"-1,-1,-1","humiCfg":"-1,-1,-1","tempCfgOK":false,"humiCfgOK":false,"cfgTimer":0}

  • modelGroup : TS0601_Soil

  • lastRx : {"tempTime":1675795334079,"humiTime":1675795334213,"tempCfg":"-1,-1,-1","humiCfg":"-1,-1,-1"}

  • stats : {"rxCtr":272,"txCtr":4,"rejoins":0}

  • driverVersion : 1.3.0 2023/02/02 10:56 PM

  • notPresentCounter : 0

  • configState : 0

  • endpointId: 01

  • application: 48

  • manufacturer: _TZE200_myd45weu

  • model: TS0601