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

I've been working in the last 2 days on a new major update of this driver to allow easier configuration of the temperature and humidity reporting for these devices, that support such configuration. Sonoff SNZB-02 is one of the devices which follow the standard Zigbee specifications.

Once the reporting parameters for T&H are configured, click on the Save Preferences button. A new 'Current State' custom attribute will read * _info : Pending 1 (2) configurations. Wake up the device!

To configure a sleepy device, try any of the methods below :

  • Rapidly change the temperature or the humidity
  • Remove the battery for at least 1 minute
  • Pair the device again to HE

If the reporting configuration was successful, the current states will display "configured"

Current States

  • _info : configured
  • humidity : 39
  • temperature : 25.3

This test version 1.1.0 (EDIT: dev. branch version 1.1.x) can be manually downloaded from this temporary test URL : (EDIT:) Hubitat/Drivers/Tuya Temperature Humidity Illuminance LCD Display with a Clock/Tuya_Temperature_Humidity_Illuminance_LCD_Display_with_a_Clock.groovy at development · kkossev/Hubitat · GitHub

Please note, that it has been tested only with Sonoff SNZB-2 sensor. The new functionality will not work with most of the Tuya T/H sensors which use Tuya specific cluster.

2 Likes

I tested the driver and it worked great for me, thank you! I did have to follow your instructions to handle the sleepy device. Worked great.

In case it’s helpful, I did get an error message when re-pairing to wake, but it didn’t seem to affect the positive outcome:

Error Monitor Upstairs - Jack & Jack Commode Temp Humidity Sensor - org.codehaus.groovy.runtime.typehandling.groovycastexception: cannot cast object 'null' with class 'null' to class 'int'. try 'java.lang.integer' instead on line 854 (method updated)

And one question: would you expect the Advanced Options would work for a Sonoff SNZB-02?

Hi @mluck , thank you for the feedback!
The test branch linked in the previous post was made especially for Sonoff SNZB-02. What device did you use for your tests?
The error in the logs seems to be related to the reporting configuration with your device.

It was a Sonoff SNZB-02.

Hi

so im trying out Moes temp/humidity sensor

  • endpointId: 01
  • application: 43
  • inClusters: 0001,0003,0402,0405,E002,0000
  • manufacturer: _TZ3000_ywagc4rj
  • model: TS0201
  • outClusters: 0003,0019,000A
  • softwareBuild:

I am sure to have selected the right subgroup and re-initialized the device.

Hi @tj1 ,

Your device _TZ3000_ywagc4rj is a new one, made by a new manufacturer (although it looks similar to the one shown in the first post). Thank you for the fingerprint, I will add it into the next driver version.

Meanwhile, can you try forcing it to 'Model Group' TS0201_TH' ? This should fix the humidity scaling and should show up the advanced configuration options.

EDIT: looked at this driver code, and currently there are a lot of differences and changes between the latest stable release code 1.0.11 (dated 13th of December 2022) and the current sources in the test version 1.1.0, where there is a significant change related to the way such sleepy Zigbee devices are configured.

I will now move all the changes from this test version into the standard development branch and will add your device fingerprint there. But be aware that that making your device work may take some more iterations and time.

Switched to Model Group TS0201_TH

dev:1662023-01-12 01:01:03.044 PMinfoMoes Environment Sensor 230112A humidity is 5.8 % RH
dev:1662023-01-12 01:01:03.040 PMdebugMoes Environment Sensor 230112A parse() descMap = [raw:02F70104050A0000214302, dni:02F7, endpoint:01, cluster:0405, size:0A, attrId:0000, encoding:21, command:0A, value:0243, clusterInt:1029, attrInt:0]
dev:1662023-01-12 01:01:03.032 PMwarnMoes Environment Sensor 230112A NOT PARSED : [raw:02F701000068040042105F545A333030305F797761676334726A0000002003010000204305000042065453303230310700003003FEFF003000, dni:02F7, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZ3000_ywagc4rj, 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:TS0201, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]]
dev:1662023-01-12 01:01:02.999 PMdebugMoes Environment Sensor 230112A parse() descMap = [raw:02F701000068040042105F545A333030305F797761676334726A0000002003010000204305000042065453303230310700003003FEFF003000, dni:02F7, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZ3000_ywagc4rj, 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:TS0201, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]]
dev:1662023-01-12 01:01:02.862 PMinfoMoes Environment Sensor 230112A temperature is 29.62 °C
dev:1662023-01-12 01:01:02.858 PMdebugMoes Environment Sensor 230112A parse() descMap = [raw:02F70104020A000029920B, dni:02F7, endpoint:01, cluster:0402, size:0A, attrId:0000, encoding:29, command:0A, value:0B92, clusterInt:1026, attrInt:0]
dev:1662023-01-12 01:00:40.852 PMinfoMoes Environment Sensor 230112A Initialization finished version=1.0.11 (Timestamp: 2022/12/13 2:23 PM)
dev:1662023-01-12 01:00:40.847 PMinfoMoes Environment Sensor 230112A manufacturer = _TZ3000_ywagc4rj ModelGroup = UNKNOWN
dev:1662023-01-12 01:00:38.859 PMtraceMoes Environment Sensor 230112A sendZigbeeCommands(cmd=[])
dev:1662023-01-12 01:00:38.856 PMinfoMoes Environment Sensor 230112A Update finished
dev:1662023-01-12 01:00:38.853 PMinfoMoes Environment Sensor 230112A Debug logging is will be turned off after 24 hours
dev:1662023-01-12 01:00:38.821 PMinfoMoes Environment Sensor 230112A Debug logging is true; Description text logging is true
dev:1662023-01-12 01:00:38.817 PMinfoMoes Environment Sensor 230112A Updating Moes Environment Sensor 230112A (Moes Environment Sensor 230112A) model TS0201 manufacturer _TZ3000_ywagc4rj modelGroupPreference = Auto detect (UNKNOWN)
dev:1662023-01-12 01:00:37.791 PMtraceMoes Environment Sensor 230112A sendZigbeeCommands(cmd=[he raw 0x02F7 1 0x01 0x0000 {10 00 00 04 00 00 00 01 00 05 00 07 00 FE FF}, delay 200])
dev:1662023-01-12 01:00:37.787 PMinfoMoes Environment Sensor 230112A configure()..
dev:1662023-01-12 01:00:37.698 PMinfoMoes Environment Sensor 230112A InitializeVars()... fullInit = true
dev:1662023-01-12 01:00:37.691 PMinfoMoes Environment Sensor 230112A installed()...
dev:1662023-01-12 01:00:37.610 PMinfoMoes Environment Sensor 230112A InitializeVars()... fullInit = true
dev:1662023-01-12 01:00:37.595 PMinfoMoes Environment Sensor 230112A Initialize()...
dev:1662023-01-12 01:00:34.146 PMtraceMoes Environment Sensor 230112A sendZigbeeCommands(cmd=[zdo bind 0x02F7 0x01 0x01 0x0402 {A4C1380551F69EF9} {}, delay 200, he cr 0x02F7 0x01 1026 0 41 10 3600 {3200} {}, delay 200, zdo bind 0x02F7 0x01 0x01 0x0405 {A4C1380551F69EF9} {}, delay 200, he cr 0x02F7 0x01 1029 0 33 10 3600 {F401} {}, delay 200, he raw 0x02F7 1 0x01 0x0402 {10 00 08 00 0000}, delay 250, he raw 0x02F7 1 0x01 0x0405 {10 00 08 00 0000}, delay 250])
dev:1662023-01-12 01:00:34.141 PMinfoMoes Environment Sensor 230112A Update finished
dev:1662023-01-12 01:00:34.124 PMinfoMoes Environment Sensor 230112A Debug logging is will be turned off after 24 hours
dev:1662023-01-12 01:00:34.082 PMinfoMoes Environment Sensor 230112A Debug logging is true; Description text logging is true
dev:1662023-01-12 01:00:34.078 PMinfoMoes Environment Sensor 230112A Updating Moes Environment Sensor 230112A (Moes Environment Sensor 230112A) model TS0201 manufacturer _TZ3000_ywagc4rj modelGroupPreference = TS0201_TH (TS0201_TH)

Seems to work the same way as before (humidity scaling still showing wrong)

do i have to do anything in the advanced settings -> humidity offset?

No, the humidity offset is just a number that is added or subtracted from the relative humidity reading, as scaled already. The problem here is with the scaling for this device, it must be fixed in the code.

I will write here when the new version is available to be tested.

scratch my last message
it's now showing the correct humidity value

What i was seeing a while ago was the old value.. I think the device needed to send new value first for the correct ones to reflect on screen

so now i can confirm both DISPLAY and hubitat value are showing the right humidity scaling :slight_smile:

1 Like

It is too late, I have already pushed version 1.1.1 with a lot of changes into the dev. branch! :grin:

This version was made to ensure the famous Sonoff TH-01 sensor reporting can be configured properly. And in my tests it works fine with the Sonof sensor, but we need to make it work also with these Tuya platform sensors, which actually allow configuration of the reporting intervals. There are not many such devices (most of the Tuya T/H sensors have hardcoded reporting intervals), but I think that yours is one of them.

1 Like

haha alright.. sounds great!

You can try the new dev.branch version 1.1.1. Use the 'Import' button from HE driver editor for to quickly update to the latest code.

When you change any hardware configuration parameter from the Preferences section, you should see '_info:' message in the Current States section how the configuration process is going.
And the most important question is whether the sensitivity and reporting periods settings are actually taken in account by the device or not.

i see
so how does one tell if it settings were taken in by the device?

I was testing this motion sensor which doesn't seem to respond to the sensitivity setting , and this is what i got

dev:1542023-01-12 03:48:22.812 PMinfoMoes Human PIR Motion ZB230108A preferencies updates are sent to the device...
dev:1542023-01-12 03:48:22.807 PMdebugMoes Human PIR Motion ZB230108A sendZigbeeCommands (cmd=[he wattr 0x1709 0x01 0x0500 0x0013 0x20 {00} {}, delay 200, he wattr 0x1709 0x01 0x0500 0xF001 0x20 {01} {}, delay 200])
dev:1542023-01-12 03:48:22.804 PMdebugMoes Human PIR Motion ZB230108A sending the changed AdvancedOptions
dev:1542023-01-12 03:48:22.799 PMdebugMoes Human PIR Motion ZB230108A changing IAS Keep Time to : 60
dev:1542023-01-12 03:48:22.795 PMdebugMoes Human PIR Motion ZB230108A sending IAS sensitivity : 60 (1)
dev:1542023-01-12 03:48:22.790 PMdebugMoes Human PIR Motion ZB230108A changing IAS sensitivity to : low
dev:1542023-01-12 03:48:22.786 PMdebugMoes Human PIR Motion ZB230108A sending IAS sensitivity : low (0)
dev:1542023-01-12 03:48:22.771 PMinfoMoes Human PIR Motion ZB230108A Debug logging is will be turned off after 24 hours
dev:1542023-01-12 03:48:22.729 PMinfoMoes Human PIR Motion ZB230108A Debug logging is true; Description text logging is true
dev:1542023-01-12 03:48:22.724 PMinfoMoes Human PIR Motion ZB230108A Updating Moes Human PIR Motion ZB230108A (Generic Zigbee Motion Sensor (no temp)) model TS0202 manufacturer _TYZB01_vwqnz1sn

so the logs kinda just stopped there and upon testing the i didn't notice any noticeable difference to the sensitivity of the device

This is exactly the problem that I am trying to solve in this driver version 1.1.x !

When configuration change commands are sent to a sleepy Zigbee device, there is no guarantee that the commands are received by the device, because it may be in a 'deep sleep' mode. With most of the Tuya Zigbee sleepy devices, if the device does not wake up within 7..10 seconds, the commands are lost. The Zigbee coordinator (HE hub) however never receives a confirmation of whether the command was received or not.

In your example above, what you see in the debug logs is what HE hub has sent. However, there is nothing traced back as a confirmation received back from the device. So most probably the configuration of the sensitivity and the keep time has failed this time, but this operation failure is not explicitly shown anywhere. This is how almost all of HE Zigbee drivers work.

However, if you wake up the sensor within this small period time window, the configuration commands would most probably be accepted. There are a lot of variations here - some devices will send a simple confirmation command, others will report back the changed parameters, others will keep silent, others may acknowledge, but will actually do nothing.

One way to ensure the configuration commands are received by the device is to pair it again to HE, after saving the preferences. You can try this, but let's follow up on this motion sensor in the other thread, as this one is for the temperature and humidity sensors driver.

Back on the _TZ3000_ywagc4rj T/H driver : if you change the sensitivity or the reporting intervals successfully, you should see a confirmation like this :

image

image

Thanks for the explanations.

Just to report here, I tried changing the settings to draw out that "_info" thing, and neither sensors showed that info.

here's a short video of me testing both T/H sensors with display from MOES and KONKE BOND

PS
didnt realize i had my mic on mute! lol

You are still using an old verson... more than a month old.
image

@kkossev

On the chance @christopheroreo device was defective I ordered one. Unfortunately it looks like mine behaves the same.
The fingerprint
image

No humidity events show up on the device events page. I am able to breath onto the sensor and raise the temperature and humidity quickly. Here are the logs.

Summary

dev:68502023-01-12 07:04:00.177 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:04:00.174 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:04:00.171 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02300C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 30, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:04:00.052 PMdebugAaa clock DELAYING 4 seconds event : [name:temperature, unit:°C, value:26.1, type:delayed, isStateChange:true, descriptionText:temperature is 26.1 °C]

dev:68502023-01-12 07:04:00.049 PMtraceAaa clock dp_id=2 dp=1 fncmd=261

dev:68502023-01-12 07:04:00.043 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 022F0102000400000105020200040000006304020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 2F, 01, 02, 00, 04, 00, 00, 01, 05, 02, 02, 00, 04, 00, 00, 00, 63, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:03:58.171 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:03:58.168 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:03:58.166 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 022E0C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 2E, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:03:58.087 PMdebugAaa clock DELAYING 6 seconds event : [name:temperature, unit:°C, value:26.2, type:delayed, isStateChange:true, descriptionText:temperature is 26.2 °C]

dev:68502023-01-12 07:03:58.085 PMtraceAaa clock dp_id=2 dp=1 fncmd=262

dev:68502023-01-12 07:03:58.082 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 022D0102000400000106020200040000006304020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 2D, 01, 02, 00, 04, 00, 00, 01, 06, 02, 02, 00, 04, 00, 00, 00, 63, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:03:56.182 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:03:56.180 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:03:56.177 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 022C0C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 2C, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:03:56.055 PMdebugAaa clock DELAYING 8 seconds event : [name:temperature, unit:°C, value:26.2, type:delayed, isStateChange:true, descriptionText:temperature is 26.2 °C]

dev:68502023-01-12 07:03:56.053 PMtraceAaa clock dp_id=2 dp=1 fncmd=262

dev:68502023-01-12 07:03:56.050 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 022B0102000400000106020200040000006304020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 2B, 01, 02, 00, 04, 00, 00, 01, 06, 02, 02, 00, 04, 00, 00, 00, 63, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:03:54.179 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:03:54.177 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:03:54.174 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 022A0C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 2A, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:03:54.060 PMinfoAaa clock temperature is 26.2 °C

dev:68502023-01-12 07:03:54.058 PMtraceAaa clock dp_id=2 dp=1 fncmd=262

dev:68502023-01-12 07:03:54.055 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02290102000400000106020200040000006304020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 29, 01, 02, 00, 04, 00, 00, 01, 06, 02, 02, 00, 04, 00, 00, 00, 63, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:03:04.171 PMinfoAaa clock temperature is 27.3 °C (delayed)

dev:68502023-01-12 07:03:02.267 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:03:02.264 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:03:02.261 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02280C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 28, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:03:02.151 PMdebugAaa clock DELAYING 2 seconds event : [name:temperature, unit:°C, value:27.3, type:delayed, isStateChange:true, descriptionText:temperature is 27.3 °C]

dev:68502023-01-12 07:03:02.148 PMtraceAaa clock dp_id=2 dp=1 fncmd=273

dev:68502023-01-12 07:03:02.145 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02270102000400000111020200040000006304020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 27, 01, 02, 00, 04, 00, 00, 01, 11, 02, 02, 00, 04, 00, 00, 00, 63, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:03:00.331 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:03:00.317 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:03:00.294 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02260C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 26, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:03:00.183 PMdebugAaa clock DELAYING 4 seconds event : [name:temperature, unit:°C, value:27.3, type:delayed, isStateChange:true, descriptionText:temperature is 27.3 °C]

dev:68502023-01-12 07:03:00.177 PMtraceAaa clock dp_id=2 dp=1 fncmd=273

dev:68502023-01-12 07:03:00.171 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02250102000400000111020200040000006304020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 25, 01, 02, 00, 04, 00, 00, 01, 11, 02, 02, 00, 04, 00, 00, 00, 63, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:02:58.272 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:02:58.270 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:02:58.267 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02240C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 24, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:02:58.153 PMdebugAaa clock DELAYING 6 seconds event : [name:temperature, unit:°C, value:27.4, type:delayed, isStateChange:true, descriptionText:temperature is 27.4 °C]

dev:68502023-01-12 07:02:58.150 PMtraceAaa clock dp_id=2 dp=1 fncmd=274

dev:68502023-01-12 07:02:58.148 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02230102000400000112020200040000006204020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 23, 01, 02, 00, 04, 00, 00, 01, 12, 02, 02, 00, 04, 00, 00, 00, 62, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:02:56.284 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:02:56.281 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:02:56.279 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02220C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 22, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:02:56.160 PMdebugAaa clock DELAYING 8 seconds event : [name:temperature, unit:°C, value:27.5, type:delayed, isStateChange:true, descriptionText:temperature is 27.5 °C]

dev:68502023-01-12 07:02:56.157 PMtraceAaa clock dp_id=2 dp=1 fncmd=275

dev:68502023-01-12 07:02:56.154 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02210102000400000113020200040000006204020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 21, 01, 02, 00, 04, 00, 00, 01, 13, 02, 02, 00, 04, 00, 00, 00, 62, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:02:54.280 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:02:54.277 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:02:54.275 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02200C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 20, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:02:54.162 PMinfoAaa clock temperature is 27.6 °C

dev:68502023-01-12 07:02:54.159 PMtraceAaa clock dp_id=2 dp=1 fncmd=276

dev:68502023-01-12 07:02:54.156 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 021F0102000400000114020200040000006204020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 1F, 01, 02, 00, 04, 00, 00, 01, 14, 02, 02, 00, 04, 00, 00, 00, 62, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:02:04.060 PMinfoAaa clock temperature is 28.8 °C (delayed)

dev:68502023-01-12 07:02:02.156 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:02:02.154 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:02:02.151 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 021E0C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 1E, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:02:02.037 PMdebugAaa clock DELAYING 2 seconds event : [name:temperature, unit:°C, value:28.8, type:delayed, isStateChange:true, descriptionText:temperature is 28.8 °C]

dev:68502023-01-12 07:02:02.034 PMtraceAaa clock dp_id=2 dp=1 fncmd=288

dev:68502023-01-12 07:02:02.031 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 021D0102000400000120020200040000006004020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 1D, 01, 02, 00, 04, 00, 00, 01, 20, 02, 02, 00, 04, 00, 00, 00, 60, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:02:00.201 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:02:00.197 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:02:00.195 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 021C0C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 1C, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:02:00.060 PMdebugAaa clock DELAYING 4 seconds event : [name:temperature, unit:°C, value:28.5, type:delayed, isStateChange:true, descriptionText:temperature is 28.5 °C]

dev:68502023-01-12 07:02:00.040 PMtraceAaa clock dp_id=2 dp=1 fncmd=285

dev:68502023-01-12 07:02:00.036 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 021B010200040000011D020200040000005F04020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 1B, 01, 02, 00, 04, 00, 00, 01, 1D, 02, 02, 00, 04, 00, 00, 00, 5F, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:01:58.163 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:01:58.161 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:01:58.158 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 021A0C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 1A, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:01:58.043 PMdebugAaa clock DELAYING 6 seconds event : [name:temperature, unit:°C, value:28.7, type:delayed, isStateChange:true, descriptionText:temperature is 28.7 °C]

dev:68502023-01-12 07:01:58.040 PMtraceAaa clock dp_id=2 dp=1 fncmd=287

dev:68502023-01-12 07:01:58.037 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 0219010200040000011F020200040000005F04020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 19, 01, 02, 00, 04, 00, 00, 01, 1F, 02, 02, 00, 04, 00, 00, 00, 5F, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:01:56.166 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:01:56.164 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:01:56.161 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02180C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 18, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:01:56.047 PMdebugAaa clock DELAYING 8 seconds event : [name:temperature, unit:°C, value:28.6, type:delayed, isStateChange:true, descriptionText:temperature is 28.6 °C]

dev:68502023-01-12 07:01:56.045 PMtraceAaa clock dp_id=2 dp=1 fncmd=286

dev:68502023-01-12 07:01:56.042 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 0217010200040000011E020200040000006004020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 17, 01, 02, 00, 04, 00, 00, 01, 1E, 02, 02, 00, 04, 00, 00, 00, 60, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:01:54.169 PMinfoAaa clock humidity alarm upper limit is 70

dev:68502023-01-12 07:01:54.167 PMtraceAaa clock dp_id=2 dp=12 fncmd=70

dev:68502023-01-12 07:01:54.164 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02160C020004000000460D02000400000014110200040000001E0904000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 16, 0C, 02, 00, 04, 00, 00, 00, 46, 0D, 02, 00, 04, 00, 00, 00, 14, 11, 02, 00, 04, 00, 00, 00, 1E, 09, 04, 00, 01, 00]]

dev:68502023-01-12 07:01:54.050 PMinfoAaa clock temperature is 28.2 °C

dev:68502023-01-12 07:01:54.048 PMtraceAaa clock dp_id=2 dp=1 fncmd=282

dev:68502023-01-12 07:01:54.045 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 0215010200040000011A020200040000006004020004000000500A020004000001860B02000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 15, 01, 02, 00, 04, 00, 00, 01, 1A, 02, 02, 00, 04, 00, 00, 00, 60, 04, 02, 00, 04, 00, 00, 00, 50, 0A, 02, 00, 04, 00, 00, 01, 86, 0B, 02, 00, 04, 00, 00, 00, 00]]

dev:68502023-01-12 07:01:52.928 PMinfoAaa clock Minimal Humidity Alarm (0x0F=1) is active

dev:68502023-01-12 07:01:52.926 PMtraceAaa clock dp_id=4 dp=15 fncmd=1

dev:68502023-01-12 07:01:52.923 PMdebugAaa clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 4053 01 00 0000 02 01 02140F04000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4053, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[02, 14, 0F, 04, 00, 01, 01]]

Here's hoping there are humidity readings buried in there.

1 Like

Hey @bbholthome , thank you for the logs!
And yes, you are right - the humidity readings are there, combined with 3 other readings in a single long message, which makes perfect sense!

I will need to rebuild the parser to split the data into separate chunks and process the combined data consequentially - I can do this during the weekend and will notify you when ready for new tests. I have all the test data needed now.

1 Like

Hey TJ1, can you kindly share the link for where you bought the temp/humidity/clock device? I'm hoping your link would deliver the same working version of the device that you have. With Tuya, there are way too many versions of the same model #

Thanks

Sorry, these ones came directly from supplier, and didn't come from retail so i dont have the exact link. I was able to get few pieces of em because I ordered with a bunch of other sensors needed for a different project.

But the official Moes and Konke stores on aliexpress should have the same stocks.