Driver for "TS0601 Dimmers" 1 and 2 Gang Tuya Compatible Devices

Hello everybody.
This topic is dedicated to the development of a specific driver for TS0601 Fingerprint Model 1 and 2 Gangs Dimmer devices.
This discussion started in thread:

dedicated to TS110F Fingerprint Model devices.

Mr @kkossev , I do have the 2 devices (1 and 2 Gangs dimmer with Fingerprint model TS0601) here with me and I`m at your disposal to perform any tests you need to help on the development process of the new driver.

1 Like

Hi @baldini,

You can try this mod of Matt Hammond's "Tuya Zigbee dimmer module" driver :
https://raw.githubusercontent.com/kkossev/hubitat-matt-hammond-fork/master/drivers/tuya-zigbee-dimmer-module.groovy

The last 'stable' version currently is 0.4.4 , dated 2023/04/23

If any changes are needed, they will be done in the development (BETA) version branch - link here.

Let me know if it works for your devices.

Hi @kkossev, thanks for your quickly reply.
I removed the device. Instaled version 0.4.4 of the driver and did the pair process of the 2 gang Dimmer. Again, it asked for my "Moes ZigBee Wall Switch 1/2/3-Gang" Driver (picture bellow).

(it is worth noting that with the driver it automatically requested in its discovery, the "Moes" for wall switches, the on and off buttons on device´s page, respond correctly to dimmer´s lamp 1!).

After that, I manually configured the new dimmer driver you pointed-me today, on device´s setup page. The system created the CH01 and CH02 child devices on Hubitat´s devices page.
My physical dimmer did not respond to any button commands on any devices page (the main one; child 01 or child 02).

On Child 01 devices page, after pressing the "configure button", the log is:

dev:5352023-05-03 17:48:54.380infoDimmer 12 updating settings for child device #1 ...

dev:5502023-05-03 17:48:54.373debugDimmer 12 (CH01) updated child->parent

dev:5502023-05-03 17:48:54.366debugDimmer 12 (CH01) forcedProfile is not set

dev:5502023-05-03 17:48:54.342infoscheduling health check every 10 minutes

dev:5502023-05-03 17:48:54.322debugDimmer 12 (CH01) [debugEnable:true, infoEnable:true, autoOn:true, autoRefresh:false, healthCheckInterval:10, advancedOptions:false, logEnable:true, txtEnable:true, minLevel:0, maxLevel:100]

dev:5502023-05-03 17:48:54.319debugDimmer 12 (CH01) updated() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5502023-05-03 17:48:54.316debugDimmer 12 (CH01) skipping initialized() for child device

dev:5502023-05-03 17:48:54.314debugDimmer 12 (CH01) initialized() device.getData() = [label:Dimmer 12 (CH01), componentName:ch01, componentLabel:Channel 01, completedSetup:true, isComponent:true]

dev:5502023-05-03 17:48:54.297debugDimmer 12 (CH01) initialized() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5502023-05-03 17:48:54.294warnDimmer 12 (CH01) device model UNKNOWN manufacturer UNKNOWN was not found!

dev:5502023-05-03 17:48:54.291warnDimmer 12 (CH01) model UNKNOWN manufacturer UNKNOWN NOT FOUND! deviceName=UNKNOWN profileName=UNKNOWN

dev:5502023-05-03 17:48:54.289warnDimmer 12 (CH01) setDestinationEP() Destination End Point not found or invalid(null), activating the F2 bug patch!

dev:5502023-05-03 17:48:54.286debugDimmer 12 (CH01) configure() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

After pressing "initialize button":

dev:5352023-05-03 17:51:08.301infoDimmer 12 updating settings for child device #1 ...

dev:5502023-05-03 17:51:08.294debugDimmer 12 (CH01) updated child->parent

dev:5502023-05-03 17:51:08.286debugDimmer 12 (CH01) forcedProfile is not set

dev:5502023-05-03 17:51:08.249infoscheduling health check every 10 minutes

dev:5502023-05-03 17:51:08.204debugDimmer 12 (CH01) [debugEnable:true, infoEnable:true, autoOn:true, autoRefresh:false, healthCheckInterval:10, advancedOptions:false, logEnable:true, txtEnable:true, minLevel:0, maxLevel:100]

dev:5502023-05-03 17:51:08.196debugDimmer 12 (CH01) updated() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5502023-05-03 17:51:08.193debugDimmer 12 (CH01) skipping initialized() for child device

dev:5502023-05-03 17:51:08.190debugDimmer 12 (CH01) initialized() device.getData() = [label:Dimmer 12 (CH01), componentName:ch01, componentLabel:Channel 01, completedSetup:true, isComponent:true]

dev:5502023-05-03 17:51:08.185debugDimmer 12 (CH01) initialized() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5502023-05-03 17:51:08.183warnDimmer 12 (CH01) device model UNKNOWN manufacturer UNKNOWN was not found!

dev:5502023-05-03 17:51:08.180warnDimmer 12 (CH01) model UNKNOWN manufacturer UNKNOWN NOT FOUND! deviceName=UNKNOWN profileName=UNKNOWN

dev:5502023-05-03 17:51:08.177warnDimmer 12 (CH01) setDestinationEP() Destination End Point not found or invalid(null), activating the F2 bug patch!

dev:5502023-05-03 17:51:08.175debugDimmer 12 (CH01) configure() ... model=null manufacturer=null destinationEP=UNKNOWN deviceProfile=UNKNOWN

dev:5502023-05-03 17:51:08.151warnDimmer 12 (CH01) device model UNKNOWN manufacturer UNKNOWN was not found!

dev:5502023-05-03 17:51:08.148warnDimmer 12 (CH01) model UNKNOWN manufacturer UNKNOWN NOT FOUND! deviceName=UNKNOWN profileName=UNKNOWN

dev:5502023-05-03 17:51:08.106infoInitializeVars( fullInit = true )...

dev:5502023-05-03 17:51:08.103infoinitialize() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

The same for Child 02:
"configure button"

dev:5352023-05-03 17:53:28.586warnDimmer 12 onChildSettingsChange: skipped onChildSettingsChange() for child device #2

dev:5352023-05-03 17:53:28.583infoDimmer 12 updating settings for child device #2 ...

dev:5512023-05-03 17:53:28.576debugDimmer 12 (CH02) updated child->parent

dev:5512023-05-03 17:53:28.571debugDimmer 12 (CH02) forcedProfile is not set

dev:5512023-05-03 17:53:28.540infoscheduling health check every 10 minutes

dev:5512023-05-03 17:53:28.512debugDimmer 12 (CH02) [debugEnable:true, infoEnable:true, autoOn:true, autoRefresh:false, healthCheckInterval:10, advancedOptions:false, logEnable:true, txtEnable:true, minLevel:0, maxLevel:100]

dev:5512023-05-03 17:53:28.509debugDimmer 12 (CH02) updated() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5512023-05-03 17:53:28.507debugDimmer 12 (CH02) skipping initialized() for child device

dev:5512023-05-03 17:53:28.504debugDimmer 12 (CH02) initialized() device.getData() = [label:Dimmer 12 (CH02), componentName:ch02, componentLabel:Channel 02, completedSetup:true, isComponent:true]

dev:5512023-05-03 17:53:28.486debugDimmer 12 (CH02) initialized() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5512023-05-03 17:53:28.484warnDimmer 12 (CH02) device model UNKNOWN manufacturer UNKNOWN was not found!

dev:5512023-05-03 17:53:28.481warnDimmer 12 (CH02) model UNKNOWN manufacturer UNKNOWN NOT FOUND! deviceName=UNKNOWN profileName=UNKNOWN

dev:5512023-05-03 17:53:28.478warnDimmer 12 (CH02) setDestinationEP() Destination End Point not found or invalid(null), activating the F2 bug patch!

dev:5512023-05-03 17:53:28.476debugDimmer 12 (CH02) configure() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

After pressing "initialize button":

dev:5352023-05-03 17:54:09.524warnDimmer 12 onChildSettingsChange: skipped onChildSettingsChange() for child device #2

dev:5352023-05-03 17:54:09.521infoDimmer 12 updating settings for child device #2 ...

dev:5512023-05-03 17:54:09.514debugDimmer 12 (CH02) updated child->parent

dev:5512023-05-03 17:54:09.507debugDimmer 12 (CH02) forcedProfile is not set

dev:5512023-05-03 17:54:09.482infoscheduling health check every 10 minutes

dev:5512023-05-03 17:54:09.463debugDimmer 12 (CH02) [debugEnable:true, infoEnable:true, autoOn:true, autoRefresh:false, healthCheckInterval:10, advancedOptions:false, logEnable:true, txtEnable:true, minLevel:0, maxLevel:100]

dev:5512023-05-03 17:54:09.460debugDimmer 12 (CH02) updated() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5512023-05-03 17:54:09.457debugDimmer 12 (CH02) skipping initialized() for child device

dev:5512023-05-03 17:54:09.454debugDimmer 12 (CH02) initialized() device.getData() = [label:Dimmer 12 (CH02), componentName:ch02, componentLabel:Channel 02, completedSetup:true, isComponent:true]

dev:5512023-05-03 17:54:09.451debugDimmer 12 (CH02) initialized() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

dev:5512023-05-03 17:54:09.448warnDimmer 12 (CH02) device model UNKNOWN manufacturer UNKNOWN was not found!

dev:5512023-05-03 17:54:09.446warnDimmer 12 (CH02) model UNKNOWN manufacturer UNKNOWN NOT FOUND! deviceName=UNKNOWN profileName=UNKNOWN

dev:5512023-05-03 17:54:09.443warnDimmer 12 (CH02) setDestinationEP() Destination End Point not found or invalid(null), activating the F2 bug patch!

dev:5512023-05-03 17:54:09.440debugDimmer 12 (CH02) configure() ... model=null manufacturer=null destinationEP=UNKNOWN deviceProfile=UNKNOWN

dev:5512023-05-03 17:54:09.420warnDimmer 12 (CH02) device model UNKNOWN manufacturer UNKNOWN was not found!

dev:5512023-05-03 17:54:09.418warnDimmer 12 (CH02) model UNKNOWN manufacturer UNKNOWN NOT FOUND! deviceName=UNKNOWN profileName=UNKNOWN

dev:5512023-05-03 17:54:09.384infoInitializeVars( fullInit = true )...

dev:5512023-05-03 17:54:09.381infoinitialize() ... model=null manufacturer=null destinationEP=01 deviceProfile=UNKNOWN

Do you want me to perform any other operation?

Regards.

Hi,

With the "beta´s" driver version, the behavior is the same :wink:

The device model and manufacturer are not available...
Can you make a screenshot of the device web page, Data section?

Ooops - the F2 bug!

Manually select "TS0601 Tuya Dimmers" from the device profiles option, save and try again!

image

Hi again.
I noticed that "current states" on the main device´s (not the Childs) page, responds correctly to my physical interactions on dimmer´s switches : on; off and brightness control:

And this is true for both drivers (0.4.4 , dated 2023/04/23 and BETA versions).

1 Like

Please make a screenshot of the Device Details, Data section.

Like this :

Data Section

Here we go:

This is OK - for the 2-gang dimmer.

Please screenshot the same for the 1-gang?

I´m sorry: Where do I find the "Device Profile Option" you mentioned ?

I´ll hardwire it and be back with you

You need to toggle the 'Advanced Options' on first, Save, then the Device Product Profile drop-down menu will show up.

For the 2-gang model the screenshots of the Data section are OK ( the ZIgbee destination endPoint, model, manufacturer are OK). So I have no idea why the logs are showing null ( no data available).

I have to stop for now, we can continue tomorrow. Let's work on the single gang dimmer first. Then, we can go with the 2-gang model.

Hi !
I still didn't manage to find "Advance options" to activate " Device Product Profile drop-down menu", please, have patient with me ....

But not everything is against the wind!!
I paired the 1 gang Dimmer, with the 0.4.4 , dated 2023/04/23 version driver running, and it seems to be working beautifully!
Including Dashboard´s icon:

image

Device´s detail you ordered:

1 Like

Hello,
My dimmers just stopped working today and I'm not anymore able to get them working. Looks there's a conflict with temp drivers because while repairing it detect as temp sensors..

image


Make sure you are using the Tuya Zigbee Dimmer Module driver latest version (currently it is 0.6.0) - update the driver from the link in this thread :

I installed your last driver and tried again.
Unpair, pair again. The device is detected as temperature sensor again.
Reset all with driver "device" and put your driver.

But I still have the same problem and errors in logs:

dev:2892023-08-23 12:22:40.111infoscheduling health check every 10 minutes

dev:2892023-08-23 12:22:40.107infoInitializeVars( fullInit = false )...

dev:2892023-08-23 12:21:06.384errorjava.lang.NullPointerException: Cannot set property 'cmdTime' on null object on line 810 (method toggle)

dev:2892023-08-23 12:21:01.338errorjava.lang.NullPointerException: Cannot set property 'cmdTime' on null object on line 810 (method off)

dev:2892023-08-23 12:20:59.061errorjava.lang.NullPointerException: Cannot set property 'cmdTime' on null object on line 810 (method on)

dev:2892023-08-23 12:20:36.279errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.hubitat.app.DeviceWrapper#updateSetting.
Cannot resolve which method to invoke for [class java.lang.String, null] due to overlapping prototypes between:
[class java.lang.String, interface java.util.List]
[class java.lang.String, interface java.util.Map] on line 684 (method configure)

dev:2892023-08-23 12:20:36.064infoscheduling health check every 10 minutes

dev:2892023-08-23 12:20:36.001infoInitializeVars( fullInit = false )...

dev:2892023-08-23 12:19:51.941errorjava.lang.NullPointerException: Cannot invoke method getDeviceNetworkId() on null object on line 475 (method toggle)

dev:2892023-08-23 12:19:48.954errorjava.lang.NullPointerException: Cannot invoke method multiply() on null object on line 532 (method setLevel)

dev:2892023-08-23 12:19:47.223errorjava.lang.NullPointerException: Cannot invoke method multiply() on null object on line 532 (method setLevel)

dev:2892023-08-23 12:19:42.673errorjava.lang.NullPointerException: Cannot invoke method getDeviceNetworkId() on null object on line 475 (method off)

dev:2892023-08-23 12:19:40.303errorjava.lang.NullPointerException: Cannot invoke method getDeviceNetworkId() on null object on line 475 (method on)

dev:2892023-08-23 12:19:22.871errorjava.lang.NullPointerException: Cannot get property 'numEps' on null object on line 191 (method configure)

dev:2892023-08-23 12:18:50.044infostate.configState was removed...

dev:2892023-08-23 12:18:50.042infostate.notPresentCounter was removed...

dev:2892023-08-23 12:18:50.041infostate.driverVersion was removed...

dev:2892023-08-23 12:18:50.040infostate.stats was removed...

dev:2892023-08-23 12:18:50.039infostate.lastRx was removed...

dev:2892023-08-23 12:18:50.038infostate.modelGroup was removed...

dev:2892023-08-23 12:18:50.037infostate.lastTx was removed...

dev:2892023-08-23 12:18:49.248infoany scheduled jobs were deleted...

dev:2892023-08-23 12:17:51.303debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 11 01 002682, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:11, direction:01, data:[00, 26, 82]]

dev:2892023-08-23 12:17:35.361debugTuya Temperature Humidity Illuminance LCD Display with a Clock NOT PARSED : [raw:DA1F01000026DFFF420FE0CB772C13CBA7782C12CCA7782C12, dni:DA1F, endpoint:01, cluster:0000, size:26, attrId:FFDF, encoding:42, command:0A, value:àËw,˧x,̧x,, clusterInt:0, attrInt:65503]

dev:2892023-08-23 12:17:35.323debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:DA1F01000026DFFF420FE0CB772C13CBA7782C12CCA7782C12, dni:DA1F, endpoint:01, cluster:0000, size:26, attrId:FFDF, encoding:42, command:0A, value:àËw,˧x,̧x,, clusterInt:0, attrInt:65503]

dev:2892023-08-23 12:17:35.048debugTuya Temperature Humidity Illuminance LCD Display with a Clock Tuya check-in message (attribute 0001 reported: 44)

dev:2892023-08-23 12:17:35.041debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:DA1F0100001801002044E2FF201FE4FF2000, dni:DA1F, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:44, clusterInt:0, attrInt:1, additionalAttrs:[[value:1F, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]

dev:2892023-08-23 12:17:31.488debugTuya Temperature Humidity Illuminance LCD Display with a Clock Tuya cluster confirmation for command 0x24 response 0x00 data = [24, 00]

dev:2892023-08-23 12:17:31.483debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 00 00 0000 0B 01 2400, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[24, 00]]

dev:2892023-08-23 12:17:31.371debugTuya Temperature Humidity Illuminance LCD Display with a Clock sending time data : [he cmd 0xDA1F 0x01 0xEF00 0x24 {000864E5EACB64E5F8DB}, delay 2000]

dev:2892023-08-23 12:17:31.369traceTuya Temperature Humidity Illuminance LCD Display with a Clock now is: 1692789451369

dev:2892023-08-23 12:17:31.355debugTuya Temperature Humidity Illuminance LCD Display with a Clock time synchronization request from device, descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 24 01 0024, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:24, direction:01, data:[00, 24]]

dev:2892023-08-23 12:17:31.349debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 24 01 0024, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:24, direction:01, data:[00, 24]]

dev:2892023-08-23 12:17:28.325warnTuya Temperature Humidity Illuminance LCD Display with a Clock warning: temperature alarm upper limit reported by the device (0.0 C) differs from the preference setting (39.0 C)

dev:2892023-08-23 12:17:28.321traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=4 dp=10 fncmd=0 fncmd_len=1 (index=0)

dev:2892023-08-23 12:17:28.314debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 007A0A04000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 7A, 0A, 04, 00, 01, 00]]

dev:2892023-08-23 12:17:28.226infoTuya Temperature Humidity Illuminance LCD Display with a Clock battery is 0 %

dev:2892023-08-23 12:17:28.220debugTuya Temperature Humidity Illuminance LCD Display with a Clock getBatteryPercentageResult: rawValue = 0 -> 0%

dev:2892023-08-23 12:17:28.211traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=4 dp=4 fncmd=0 fncmd_len=1 (index=0)

dev:2892023-08-23 12:17:28.204debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 00790404000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 79, 04, 04, 00, 01, 00]]

dev:2892023-08-23 12:17:28.106infoTuya Temperature Humidity Illuminance LCD Display with a Clock Temperature scale reported by device is: Celsius

dev:2892023-08-23 12:17:28.104traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=2 dp=9 fncmd=0 fncmd_len=4 (index=0)

dev:2892023-08-23 12:17:28.097debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 00780902000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 78, 09, 02, 00, 04, 00, 00, 00, 00]]

dev:2892023-08-23 12:17:28.004infoTuya Temperature Humidity Illuminance LCD Display with a Clock illuminance is 0 Lux

dev:2892023-08-23 12:17:27.995traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=2 dp=3 fncmd=0 fncmd_len=4 (index=0)

dev:2892023-08-23 12:17:27.988debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 00770302000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 77, 03, 02, 00, 04, 00, 00, 00, 00]]

dev:2892023-08-23 12:17:27.451warnTuya Temperature Humidity Illuminance LCD Display with a Clock NOT PROCESSED Tuya cmd: dp=8 value=125 descMap.data = [00, 74, 08, 02, 00, 04, 00, 00, 00, 7D]

dev:2892023-08-23 12:17:27.449traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=2 dp=8 fncmd=125 fncmd_len=4 (index=0)

dev:2892023-08-23 12:17:27.440debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 0074080200040000007D, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 74, 08, 02, 00, 04, 00, 00, 00, 7D]]

dev:2892023-08-23 12:17:27.149warnTuya Temperature Humidity Illuminance LCD Display with a Clock ignored invalid humidity 131 (131.0)

dev:2892023-08-23 12:17:27.140traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=2 dp=2 fncmd=131 fncmd_len=4 (index=0)

dev:2892023-08-23 12:17:27.132debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 00730202000400000083, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 73, 02, 02, 00, 04, 00, 00, 00, 83]]

dev:2892023-08-23 12:17:27.020warnTuya Temperature Humidity Illuminance LCD Display with a Clock NOT PROCESSED Tuya cmd: dp=7 value=0 descMap.data = [00, 72, 07, 01, 00, 01, 00]

dev:2892023-08-23 12:17:27.017traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=1 dp=7 fncmd=0 fncmd_len=1 (index=0)

dev:2892023-08-23 12:17:27.010debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 00720701000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 72, 07, 01, 00, 01, 00]]

dev:2892023-08-23 12:17:26.938infoTuya Temperature Humidity Illuminance LCD Display with a Clock temperature is 0.0 °C

dev:2892023-08-23 12:17:26.930traceTuya Temperature Humidity Illuminance LCD Display with a Clock dp_id=1 dp=1 fncmd=0 fncmd_len=1 (index=0)

dev:2892023-08-23 12:17:26.901debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 DA1F 01 00 0000 02 01 00710101000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 71, 01, 01, 00, 01, 00]]

dev:2892023-08-23 12:17:23.212traceTuya Temperature Humidity Illuminance LCD Display with a Clock sendZigbeeCommands(cmd=[])

dev:2892023-08-23 12:17:23.209infoTuya Temperature Humidity Illuminance LCD Display with a Clock Debug logging will be turned off after 24 hours

dev:2892023-08-23 12:17:23.170infoTuya Temperature Humidity Illuminance LCD Display with a Clock Debug logging is true; Description text logging is true

dev:2892023-08-23 12:17:23.167infoTuya Temperature Humidity Illuminance LCD Display with a Clock Updating null (Tuya Temperature Humidity Illuminance LCD Display with a Clock) model TS0601 manufacturer _TZE200_e3oitdyu modelGroupPreference = Auto detect (UNKNOWN)

dev:2892023-08-23 12:17:22.482infoTuya Temperature Humidity Illuminance LCD Display with a Clock Received Write Attribute Response for cluster:0000 , data=[00] (Status: Success)

dev:2892023-08-23 12:17:22.472debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:catchall: 0104 0000 01 01 0040 00 DA1F 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:DA1F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]

dev:2892023-08-23 12:17:22.300debugTuya Temperature Humidity Illuminance LCD Display with a Clock NOT PARSED : [raw:DA1F01000068040042105F545A453230305F65336F69746479750000002003010000204405000042065453303630310700003001FEFF003000, dni:DA1F, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZE200_e3oitdyu, clusterInt:0, attrInt:4, additionalAttrs:[[value:03, encoding:20, attrId:0000, consumedBytes:4, attrInt:0], [value:44, encoding:20, attrId:0001, consumedBytes:4, attrInt:1], [value:TS0601, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]]

dev:2892023-08-23 12:17:22.289debugTuya Temperature Humidity Illuminance LCD Display with a Clock parse() descMap = [raw:DA1F01000068040042105F545A453230305F65336F69746479750000002003010000204405000042065453303630310700003001FEFF003000, dni:DA1F, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZE200_e3oitdyu, clusterInt:0, attrInt:4, additionalAttrs:[[value:03, encoding:20, attrId:0000, consumedBytes:4, attrInt:0], [value:44, encoding:20, attrId:0001, consumedBytes:4, attrInt:1], [value:TS0601, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]]

dev:2892023-08-23 12:17:22.091traceTuya Temperature Humidity Illuminance LCD Display with a Clock sendZigbeeCommands(cmd=[he raw 0xDA1F 1 0x01 0x0000 {10 00 00 04 00 00 00 01 00 05 00 07 00 FE FF}, delay 200, he wattr 0xDA1F 0x01 0x0000 0xFFDE 0x20 {13} {}, delay 200, delay 299])

dev:2892023-08-23 12:17:22.085infoTuya Temperature Humidity Illuminance LCD Display with a Clock initializeDevice...

dev:2892023-08-23 12:17:22.028infoTuya Temperature Humidity Illuminance LCD Display with a Clock configure()..

dev:2892023-08-23 12:17:21.880infoTuya Temperature Humidity Illuminance LCD Display with a Clock Statistics were reset. Press F5 to refresh the device page

dev:2892023-08-23 12:17:21.873infoTuya Temperature Humidity Illuminance LCD Display with a Clock InitializeVars()... fullInit = true

dev:2892023-08-23 12:17:21.857infoTuya Temperature Humidity Illuminance LCD Display with a Clock installed()...

Show more...

Thank you for the logs, they are useful! I will secure the code to avoid these exceptions when an unknown device is manually assigned ASAP, but before doing this I will need your device fingerprint, obviously it is not correct in the current driver version - this is the reason a wrong driver to be picked up automatically during the pairing.

I will ask you to delete the dimmer and pair it again to HE as a new device . Then click on the Pairing Info hyperlink (before you give the device a name) and copy/paste all the information from the popup window.
image

Please first update to the new version 0.6.1 :

https://raw.githubusercontent.com/kkossev/hubitat-matt-hammond-fork/development/drivers/tuya-zigbee-dimmer-module.groovy

Your dimmer TS0601 _TZE200_e3oitdyu should be recognized automatically now after you pair it again as a new device.