MHCOZY switch with temp sensor driver

I have a MHCOZY smart switch with a temperature sensor. and I can't find a driver for it that will recognize the temperature sensor. I have tried generic temp/humidity, generic zigbee switch, Tuya temp/humidity sensor, generic zigbee multi-endpoing swith. None of them work and I'm hoping there is a drive out there that will work. Here is the data from the device

  • endpointId: 01
  • application: 50
  • inClusters: 0000,0003,0004,0005,0006,E001,E000,EF00
  • isMultiEP: true
  • manufacturer: _TZ3218_7fiyo3kv
  • model: TS000F
  • outClusters: 000A,0019
  • softwareBuild:

And the state variables

  • lastTx : {"tempCfg":"-1,-1,-1","humiCfg":"-1,-1,-1","tempCfgOK":false,"humiCfgOK":false,"cfgFailure":false,"cfgTimer":0}
  • modelGroup : UNKNOWN
  • lastRx : {"tempTime":1719176525537,"humiTime":1719176525538,"tempCfg":"-1,-1,-1","humiCfg":"-1,-1,-1"}
  • stats : {"date":"2024-06-23","rxCtr":17,"txCtr":2,"rejoins":0}
  • driverVersion : 1.3.9 2023/09/29 10:54 PM
  • notPresentCounter : 0
  • tempOffset : 0
  • configState : 0
  • epList : [01, F2]

Any insight will be greatly appreciated

1 Like

I have added the temperature reading into the Tuya driver, ver. 1.6.2 2024/06/24 9:48 AM
Please update manually from the dev. branch link :

https://raw.githubusercontent.com/kkossev/Hubitat/development/Drivers/Tuya%20Temperature%20Humidity%20Illuminance%20LCD%20Display%20with%20a%20Clock/Tuya_Temperature_Humidity_Illuminance_LCD_Display_with_a_Clock.groovy

This device is much more complex, it can work locally as a thermostat, or the built-in relay can be controlled remotely. However, the Tuya THI driver is not suitable for adding relay/switch capabilities. The full functionalities support will require a new driver.

Let me know whether the temperature readings are OK.

2 Likes

Thank you for such a quick response. I'm not getting the temperature attribute but rather rtt (Round trip time)

Hi Lee,

This is a very new device (even Zigbee2MQTT does not support it officially at this time),
so if you are willing to try to make it work in HE (the temperature reading as a minimum), we will have to go through at least several iterations of trial and errors. I will also need much more detailed information from you.

Please let me know if you want to proceed.

Yes, I would like to proceed. Let me know what info you need?

1 Like

Enable the Debug loging and click on the Save Preferences button.
Then open a new tab on the PC browser, filtering the logs for this device only.

Rapidly change the temperature - I think you can safely use a lighter with this temperature probe... I will need the debug logs that follow the temperature change.

Please select, copy and paste the logs as a text here. You can use the forum editor cog wheel tool to hide the long logs :

Summary

I need the logs as a text, because I don't have this particular device and I will use the debugs to simulate it.

Here are the debug logs

Summary

2024-06-25 09:15:32.286 AMdebugTemp/Humidity (GC 0.8 Water) Tuya check-in message (attribute 0001 reported: 50)
dev:1442024-06-25 09:15:32.283 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:B2BA0100001001002050E4FF2000, dni:B2BA, endpoint:01, cluster:0000, size:10, attrId:0001, encoding:20, command:0A, value:50, clusterInt:0, attrInt:1, additionalAttrs:[[value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]
dev:1442024-06-25 09:15:27.302 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0656660200040000011A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 56, 66, 02, 00, 04, 00, 00, 01, 1A]]
dev:1442024-06-25 09:15:21.300 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06556602000400000120, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 55, 66, 02, 00, 04, 00, 00, 01, 20]]
dev:1442024-06-25 09:15:18.300 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0654660200040000012A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 54, 66, 02, 00, 04, 00, 00, 01, 2A]]
dev:1442024-06-25 09:15:15.299 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06536602000400000136, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 53, 66, 02, 00, 04, 00, 00, 01, 36]]
dev:1442024-06-25 09:15:12.300 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0652660200040000014E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 52, 66, 02, 00, 04, 00, 00, 01, 4E]]
dev:1442024-06-25 09:15:06.298 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06516602000400000182, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 51, 66, 02, 00, 04, 00, 00, 01, 82]]
dev:1442024-06-25 09:15:03.299 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0650660200040000017C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 50, 66, 02, 00, 04, 00, 00, 01, 7C]]
dev:1442024-06-25 09:15:00.331 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 064F6602000400000172, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 4F, 66, 02, 00, 04, 00, 00, 01, 72]]
dev:1442024-06-25 09:14:57.299 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 064E6602000400000166, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 4E, 66, 02, 00, 04, 00, 00, 01, 66]]
dev:1442024-06-25 09:14:54.302 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 064D6602000400000154, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 4D, 66, 02, 00, 04, 00, 00, 01, 54]]
dev:1442024-06-25 09:14:51.306 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 064C660200040000012C, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 4C, 66, 02, 00, 04, 00, 00, 01, 2C]]
dev:1442024-06-25 09:14:45.301 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 064B6602000400000112, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 4B, 66, 02, 00, 04, 00, 00, 01, 12]]
dev:1442024-06-25 09:14:36.297 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 064A6602000400000118, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 4A, 66, 02, 00, 04, 00, 00, 01, 18]]
dev:1442024-06-25 09:14:30.295 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06496602000400000120, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 49, 66, 02, 00, 04, 00, 00, 01, 20]]
dev:1442024-06-25 09:14:27.297 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06486602000400000128, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 48, 66, 02, 00, 04, 00, 00, 01, 28]]
dev:1442024-06-25 09:14:24.297 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06476602000400000132, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 47, 66, 02, 00, 04, 00, 00, 01, 32]]
dev:1442024-06-25 09:14:21.297 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0646660200040000013E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 46, 66, 02, 00, 04, 00, 00, 01, 3E]]
dev:1442024-06-25 09:14:18.295 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06456602000400000152, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 45, 66, 02, 00, 04, 00, 00, 01, 52]]
dev:1442024-06-25 09:14:15.295 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06446602000400000174, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 44, 66, 02, 00, 04, 00, 00, 01, 74]]
dev:1442024-06-25 09:13:57.293 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0643660200040000019A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 43, 66, 02, 00, 04, 00, 00, 01, 9A]]
dev:1442024-06-25 09:13:48.333 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06426602000400000196, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 42, 66, 02, 00, 04, 00, 00, 01, 96]]
dev:1442024-06-25 09:13:42.291 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0641660200040000018E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 41, 66, 02, 00, 04, 00, 00, 01, 8E]]
dev:1442024-06-25 09:13:39.300 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06406602000400000188, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 40, 66, 02, 00, 04, 00, 00, 01, 88]]
dev:1442024-06-25 09:13:36.299 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 063F6602000400000180, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 3F, 66, 02, 00, 04, 00, 00, 01, 80]]
dev:1442024-06-25 09:13:33.291 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 063E6602000400000176, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 3E, 66, 02, 00, 04, 00, 00, 01, 76]]
dev:1442024-06-25 09:13:30.292 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 063D6602000400000168, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 3D, 66, 02, 00, 04, 00, 00, 01, 68]]
dev:1442024-06-25 09:13:27.292 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 063C6602000400000150, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 3C, 66, 02, 00, 04, 00, 00, 01, 50]]
dev:1442024-06-25 09:13:09.293 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 063B6602000400000112, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 3B, 66, 02, 00, 04, 00, 00, 01, 12]]
dev:1442024-06-25 09:13:00.348 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 063A660200040000011A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 3A, 66, 02, 00, 04, 00, 00, 01, 1A]]
dev:1442024-06-25 09:12:54.290 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06396602000400000122, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 39, 66, 02, 00, 04, 00, 00, 01, 22]]
dev:1442024-06-25 09:12:51.288 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0638660200040000012A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 38, 66, 02, 00, 04, 00, 00, 01, 2A]]
dev:1442024-06-25 09:12:48.287 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06376602000400000132, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 37, 66, 02, 00, 04, 00, 00, 01, 32]]
dev:1442024-06-25 09:12:45.286 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0636660200040000013E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 36, 66, 02, 00, 04, 00, 00, 01, 3E]]
dev:1442024-06-25 09:12:42.287 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06356602000400000152, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 35, 66, 02, 00, 04, 00, 00, 01, 52]]
dev:1442024-06-25 09:12:39.288 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06346602000400000172, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 34, 66, 02, 00, 04, 00, 00, 01, 72]]
dev:1442024-06-25 09:12:36.632 AMdebugTemp/Humidity (GC 0.8 Water) Tuya check-in message (attribute 0001 reported: 50)
dev:1442024-06-25 09:12:36.630 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:B2BA0100001001002050E4FF2000, dni:B2BA, endpoint:01, cluster:0000, size:10, attrId:0001, encoding:20, command:0A, value:50, clusterInt:0, attrInt:1, additionalAttrs:[[value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]
dev:1442024-06-25 09:12:33.286 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06336602000400000198, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 33, 66, 02, 00, 04, 00, 00, 01, 98]]
dev:1442024-06-25 09:12:21.291 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06326602000400000192, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 32, 66, 02, 00, 04, 00, 00, 01, 92]]
dev:1442024-06-25 09:12:15.285 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 0631660200040000018A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 31, 66, 02, 00, 04, 00, 00, 01, 8A]]
dev:1442024-06-25 09:12:12.286 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 06306602000400000184, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 30, 66, 02, 00, 04, 00, 00, 01, 84]]
dev:1442024-06-25 09:12:09.287 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 062F660200040000017A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 2F, 66, 02, 00, 04, 00, 00, 01, 7A]]
dev:1442024-06-25 09:12:06.285 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 062E660200040000016E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 2E, 66, 02, 00, 04, 00, 00, 01, 6E]]
dev:1442024-06-25 09:12:03.286 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 062D660200040000015A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B2BA, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:06, direction:01, data:[06, 2D, 66, 02, 00, 04, 00, 00, 01, 5A]]
dev:1442024-06-25 09:12:00.283 AMdebugTemp/Humidity (GC 0.8 Water) parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 B2BA 01 00 0000 06 01 062C6602000400000130, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint

I think I fried the probe with the lighter (I have many spares so it's not a problem) so I reverted to cups of cool and hot water. I hope the temp fluctuations are enough. Let me know if you have enough here to go on.

Thank you so much for your help on this.

2 Likes

Thank you for testing and to @kkossev for always supporting us with his hard work on drivers.
I too have just acquired the device as part of a review program, but it has no functionality on HE. It pairs find but doesn't report anything. And now I see it fell off the mesh within an hour on my C8. To get it to pair I had to use "avoid Zigbee repeaters" I am using the dev driver branch above, and loaded the driver prior to pairing.

Krassimir- if you need me to test on another hub, a C4, C5 or C7 let me know

1 Like

Please update the driver to the dev.branch version '1.6.2' timeStamp '2024/06/26 8:08 AM'.

I think that I have found and fixed the problem related to decoding the temperature readings, although I was not able to simulate the device (this problem is fixed too).

Click on the Initialize() button and refresh the device web page - in the State Variables section you should see modelGroup : DS18B20.

Let me know if the temperature readings are OK.

That worked perfectly. The temperature was within .4 degrees F from a reference I had. I was thinking of taking a crack at adding the switch functionality of the device to the driver myself. Do you think that is something worth trying to do?

Thank you very much. for you quick and excellent work.

1 Like

I am glad it worked! :slight_smile:

Probably - yes!

However, I think that this Tuya driver is not suitable for supporting a switch capability at the same time. Also, it is a rather old driver that needs refactoring; I wish I had the time to rewrite it from scratch now.

FYI - this GitHub thread contains information for the device :

You can configure the sensitivity, add corrections, etc... An interesting device that may be worth a dedicated driver.

I was wondering whether this device may be presented as a thermostat ?

1 Like

I think looking it as a thermostat makes sense. Our use case is a bit weird. We have a germination chamber where we germinate seeds for our microgreen farm. The chamber is heated with a bath of water and aquarium heaters. I'm using the water temperature sensor to log the water in the bath. The switch on the other had would be controlled by temp/humidity sensors in the chamber but not the water temperature. I will look at that driver as a starting place.

I have also started to investigate a new temp/humidity sensor that amazon is selling. We have the one's with an lcd screen and a little smiling or frowing face. They work fine but the new one's being shipped are different and are not reporting any information. I will open up a new thread with details.

Again thank you for the quick updates.

1 Like

Thank you Krassimir, mine is now also reporting temp and health with the dev branch driver

Current States

  • healthStatus : online
  • temperature : 76.6
  • _info : installed
  • rtt : 81
1 Like

Working for me as well, for clarity sakes the device I'm using is the MHCOZY model # TYZGTH16A-D1RF. Using as a temp probe for a chest freezer. So far this works great, and the device was pretty cheap on amazon. Thanks @kkossev!

3 Likes

So for my understanding: It currently only works as a thermostat, no controlling the switches, correct?

Correct, the switch capability has not been defined within a HE driver as of yet, although I haven't searched in over a year for a new driver. Looking around I see they have all 3 product versions( temp only, temp/switch, temp/humid/switch) working on ST.

This would be a great little device with a ton of applications. I'm definitely following along to see if anyone is able to get the switching functionality working. I'm thinking smart hot tub controller!

I have a CO2 laser in the shed, which has water-cooling. If it freezes, the glass CO2 laser-tube breaks, so I now have to keep the whole shed warm enough to prevent that.

With this I would be able to turn on the fishtank heater that I put in the cooler and turn on the cooler's pump, and keep the water over freezing temperature whilst using less power.
It would additionally allow me to automate temperature control for the laser, because I need to manually turn on the fisttank heater when the water is too cold (The tube should be kept within ~2°C of ideal temperature for maximum, consistent power)

Dang. My shed has shovels and crap I need to throw away. I must be doing something wrong!

3 Likes

I suspect it would take @mike.maxwell all of 10 minutes to code this driver, IF he wasn't working on 85 other things, assuming the device follows Zigbee standards