[RE-RELEASE][BETA] Tuya Zigbee Dimmer Module (w/ healthStatus)


Vote for the Linptech Human Presence Sensor with 24G mmWave Radar in the Product of the Year Elevated by Hubitat in 2023 !


This is a new thread on the "Tuya Zigbee Dimmer Module" driver.

Originally published by Matt H @fc352bf0a6929e9fa80f on December 2020 in the [Release] Tuya/Lonsonho 1-gang and 2-gang zigbee dimmer module driver thread, the driver was later extended to support many new Tuya/Moes/Girier/Lonsonho dimmer models. These updates were spread in different forum threads that became difficult to follow.

Note that the URL of the re-released driver code is different than the original - now it is :
https://raw.githubusercontent.com/kkossev/hubitat-matt-hammond-fork/master/drivers/tuya-zigbee-dimmer-module.groovy

As the re-released updated driver uses the same driver name and driver namespace, for the moment, it is not possible to be updated from HPM. If you have the older versions of this driver already installed using HPM, you must manually update to the newer version using the import URL above.

Update: using HPM to receive notifications on this driver update should be possible in the future. As soon as the driver reaches a stable state (all known issues are fixed, and no new issues are reported), I will add it to HPM and will post the transition instructions.

Device Links
Lonsonho Zigbee Smart Dimmer Switch Module With Neutral 1 2 Gang
image
Profile: "TS110E_LONSONHO_DIMMER"

Manufacturer:_TZ3210_ngqk6jia _TZ3210_pagajpog _TZ3210_4ubylghk

AliExpress: (link)
AliExpress: (link)
Girier Tuya Zigbee Smart Dimmer Switch Module With Neutral 1 2 Gang
image
Profile: "TS110E_GIRIER_DIMMER"

Manufacturer: _TZ3210_zxbtub8r _TZ3210_k1msuvg6

AliExpress: (link)
Moes ZigBee Dimmer
image
Profile: "TS110E_DIMMER"

Manufacturer: _TZE200_e3oitdyu

AliExpress: (link)
Tuya Zigbee 3.0 Dimmer Smart Switch Module
image
Profile: "TS110F_DIMMER"

Manufacturer: _TYZB01_v8gtiaed _TYZB01_qezuin6k _TZ3000_ktuoyvt5 _TZ3000_92chsky7 _TZ3000_7ysdnebc

Zigbee Multi-Gang Smart Light Dimmer
image
Profile: "TS0601_DIMMER"

Manufacturers: _TZE200_vm1gyrso _TZE200_whpb9yts _TZE200_ebwgzdqq _TZE200_9i9dt8is _TZE200_dfxkcots _TZE200_w4cryh2i _TZE200_ip2akl4w _TZE200_1agwnems _TZE200_la2c2uo9 _TZE200_579lguh2 _TZE200_fjjbhx9d _TZE200_drs6j6m5

AliExpress: (link)
Smart Zigbee Dimmer Switch
image
Profile: "TS0601_DIMMER"

Manufacturer: _TZE200_ebwgzdqq

Larkkey.com: (link)
BSEED Zigbee Dimmer Switch
image
Profile: "TS0601_DIMMER"

Manufacturer: _TZE200_3p5ydos3

Bseed: (link)
AliExpress: (link)
Tuya Zigbee Smart In Wall Dimmer
image


Model: TS110F
Manufacturers: _TZ3210_lfbz816s _TZ3210_ebbfkvoy

AliExpress: (link)
Gledopo Triac AC Dimmer<
image
Profile: "OTHER_OEM_DIMMER"
Model: GL-SD-001
Manufcturer: GLEDOPTO

Gledopto: (link)
AliExpress: (link)
Amazon .com (link)
Amazon. de link
5 Likes

Driver revisions history

  • ver 0.2.0 11/12/2021 Matt Hammond - added _TZ3000_7ysdnebc
  • ver 0.2.1 2021/12/29 kkossev - added cluster 0003 to the fingerprint, model _TZ3000_7ysdnebc
  • ver 0.2.2 2022/05/28 kkossev - moved model and inClusters to modelConfigs, added _TZE200_vm1gyrso 3-Gang Dimmer module
  • ver 0.2.3 2022/08/30 kkossev - added TS110E _TZ3210_ngqk6jia fingerprint
  • ver 0.2.4 2022/09/19 kkossev - added TS0601 _TZE200_w4cryh2i fingerprint
  • ver 0.2.5 2022/10/19 kkossev - TS0601 level control; infoLogging
  • ver 0.2.6 2022/10/22 kkossev - importURL to dev. branch; toggle() for TS0601; 'autoOn' for TS0601; level scaling for TS0601; minLevel and maxLevel receive/send for TS0601; bugfixes for TS0601 single EP devices
  • ver 0.2.7 2022/11/11 kkossev - added _TZE200_ip2akl4w _TZE200_1agwnems _TZE200_la2c2uo9 _TZE200_579lguh2 _TZE200_fjjbhx9d _TZE200_drs6j6m5; secure the while loops coode when deleting and creating child devices;
  • ver 0.2.8 2022/11/13 kkossev - _TZE200_ip2akl4w fingerprint hardcoded
  • ver 0.2.9 2022/12/10 kkossev - deleting child devices bug fix; added _TZE200_fvldku9h Tuya Fan Switch; unscheduling old periodic jobs; Tuya Time Sync';
  • ver 0.2.10 2023/01/02 kkossev - added _TZE200_e3oitdyu
  • ver 0.2.11 2023/02/19 kkossev - added TS110E _TZ3210_k1msuvg6; TS0601 _TZE200_r32ctezx fan controller; changed importURL to dev. branch; dp=4 - type of light source?; added GLEDOPTO GL-SD-001; 1-gang modles bug fixes;
    ver 0.2.12 2023/03/12 kkossev - more debug logging; fixed incorrect on/off status reporting bug for the standard ZCL dimmers; added autoRefresh option for GLEDOPTO
  • ver 0.3.0 2023/03/12 kkossev - bugfix: TS110E/F configiration for the automatic level reporting was not working.
  • ver 0.4.0 2023/03/25 kkossev - added TS110E _TZ3210_pagajpog; added advancedOptions; added forcedProfile; added deviceProfilesV2; added initialize() command; sendZigbeeCommands() in all Command handlers; configure() and updated() do not re-initialize the device!; setDeviceNameAndProfile(); destEP here and there
  • ver 0.4.1 2023/03/31 kkossev - added new TS110E_GIRIER_DIMMER product profile (Girier _TZ3210_k1msuvg6 support @jshimota); installed() initialization and configuration sequence changed'; fixed GIRIER Toggle command not working; added _TZ3210_4ubylghk
  • ver 0.4.2 2023/04/10 kkossev - added TS110E_LONSONHO_DIMMER; decode correction level/10; fixed exception for non-existent child device; all Current States are cleared on Initialize; Lonsonho brightness control; Hubitat 'F2 bug' patched; Lonsonho change level uses cluster 0x0008
  • ver 0.4.3 2023/04/12 kkossev - numEps bug fix; generic ZCL dimmer support; patch for Girier firmware bug on Refresh command 01 reporting off state; DeviceWrapper fixes; added TS0505B_TUYA_BULB; bugfix when endpointId is different than 01
  • ver 0.4.4 2023/04/23 kkossev - added capability 'Health Check'; Lonsonho dimmers setLevel working now (parent device) !
  • ver 0.4.5 2023/05/17 kkossev - removed obsolete deviceSumulation options; added _TZ3210_ngqk6jia fingerprint1-gang (not fully working yet)
  • ver 0.5.0 2023/06/14 kkossev - added trace logging; fixed healthStatus offline for TS0601 and Lonsonho 2nd gang; temporary disabled the initialize() command; changed _TZ3210_ngqk6jia to Lonsonho TS011E group; fixed TS0601 1st gang not working
  • ver 0.5.1 2023/06/15 kkossev - added TS110E _TZ3210_3mpwqzuu 2 gang; fixed minLevel bug scaling; added RTT measurement in the ping command; added rxCtr, txCtr, switchCtr, leveCtr; _TZ3210_4ubylghk inClusters correction; TS110E_LONSONHO_DIMMER group model bug fix;
  • ver 0.5.2 2023/06/19 - added digital/physical; checkDriverVersion fix; _TZ3210_ngqk6jia ping fix;
  • ver 0.6.0 2023/07/30 - child devices ping(), toggle(), physical/digital, healthStatus offline bug fixes; added [refresh] event info;
  • ver 0.6.1 2023/08/23 - _TZE200_e3oitdyu model changed to TS0601; initialize button re-enabled (loads all defaults!); cmdTime state secured;
  • ver 0.6.2 2023/09/09 - added TS0601 _TZE204_zenj4lxv Moes ZigBee 2-Gang Dimmer; _TZE204_1v1dxkck (3-gang); _TZE204_hlx9tnzb (1-gang)
    ver 0.6.3 2023/10/15 kkossev - setting ledMode, powerOnMode lightType for TS0601 dimmers

The development branch version that includes the recently added new devices and latest bug fixes can be manually installed from this link :

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

Known Issues:

  • Lonsonho _TZ3210_pagajpog : when momentarily push switch 1. It is like it doesn't recognize it as pressing the switch, but pressing it again can cause it to go into pairing mode. @user3633
  • Girier _TZ3210_3mpwqzuu: physical switch not reflected in the driver @user5386
  • Girier _TZ3210_3mpwqzuu: Every change in intensity through the dashboard, the lamp reaches the desired level and then lowers intensity until it is turned off, (for both channels) @user5386
  • TS0601 3 gangs - toggle() is not working for the 2nd and teh 3rd gang
  • _TZ3210_ngqk6jia - there are both 1-gang and 2-gang dimmers with the same fingerprint?
  • Gledopto:minimumLevel is not processed correctly in the states (setLevel 28 is shown as level 6, if minLevel is set as 29 and maxLevel is set to 85)

TODO:

  • RTT measurement in the ping command;
  • Enable the Initialize() button w/ Yes/No selection
  • Move the code to HubitatCommunity repository in GitHub
  • Add to HPM
  • Instructions on how to Unmatch the driver and add again to HPM
  • Documentation
  • Dimmers and dimmable bulbs types info
  • TS110E - add 'light_type' and 'switch_type' preferences
  • TS110E_GIRIER_DIMMER TS011E power_on_behavior_1, TS110E_switch_type ['toggle', 'state', 'momentary'])
  • Tuya Fan Switch support
  • add startLevelChange/stopLevelChange (Gledopto)
  • Google drive old versions archive

Reserved #3 - commands and preferences ...

Reserved #4 - Hubitat Package Manager (HPM) installation (change of the driver repository) ...

Reserved #5 - different types of dimmers (leading vs trailing edge dimmers) and dimmable bulbs.

Thanks for the driver @kkossev!

I'm using GLEDOPTO GL-SD-001 dimmers.

One of my oddest devices has the lowest level at 24%, below that it may receive electrical current but doesn't lit, using it with Generic Zigbee Dimmer.

I have changed this device to your driver, have set the minimum level to 24% leaving the maximum in 100%.
Now when I set it to 24% on the level button, in the state it is set to 9%.
When I set to 17% it is set to 1%.

I'm confused with which minLevel I should use.

Another problem is that in the dashboard (HD+), I can dim the LED, but the level state is not updated and the app shows an error. The same problem occurs with the built-in "Advanced Zigbee Bulb", but not with the "Generic Zigbee Dimmer".

Not sure if the "Configure" button should be used or not, but I'm getting the following error when pressing it:

groovy.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 616 (method configure)

If you don't have a GL-SD-001 to test, let me know, I'm willing to send you one.

1 Like

I have one GLEDOPTO GL-SD-001 dimmer - it looks solidly made device, better than some other (Tuya) models!
I don't use it practically because all my bulbs are Zigbee controlled by a Hue bridge (works rock solid!), but now I've just got an idea where to use it! : )

At the current state of this driver, Configire doesn't work as you may expect. Do the following :
Enable the 'Advanced options', then go to the 'Device Profile', manually set 'Other OEM Dimmer' and click on the Save button.

This should fix the minLevel.

I've checked and it was already using the "Other OEM Dimmer" profile. Anyway, I saved it again but the behavior didn't change.

Do you have one dimmer that you can experiment with (not used in any real automations that you will need to re-create again)?

Completely delete it from your HE hub (click on the 'REMOVE DEVICE' red button at the bottom of the device web page), then pair it again.

The development branch version is updated to v 0.6.0, where some bugs related to Lonsonho TS110E _TZ3210_4ubylghk dimmer module (also _TZ3210_pagajpog and _TZ3210_ngqk6jia) are fixed.

1 Like

Please update the driver to the latest development branch version 0.6.1 2023/08/23 7:45 PM"
The link to GitHub source is in the second post in this new thread, but I am reposting it again :

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

Then click on the Initialize button, and press F5 to refresh the device web page.

1 Like

The driver was updated to version 0.6.2 , timeStamp "2023/09/09 3:09 PM".

It adds support for the new series of Moes 1-2-3 gang dimmers :

image

https://moeshouse.com/products/moes-star-ring-zigbee-smart-dimmer-switch-for-light-dimming-work-with-alexa-google-home-dimmable-1-3gang

https://www.aliexpress.com/item/1005005870551288.html

ver 0.6.3 2023/09/10 - (dev. branch) setting ledMode, powerOnMode lightType for TS0601 dimmers

Hi @kkossev and thanks for the driver.

I don't understand the minimum level set. Maybe because I don't been able to get it working or I think in the wrong way. :slight_smile:

My question:
Should the Minimum level setting work when I press the physical button?

My device:
Zigbee 2-Gang Dimmer module
driver: v1.0.0.1025b
endpointId: 01
inClusters: 0000,0004,0005,0006,0008
manufacturer: _TYZB01_v8gtiaed
model: TS110F
outClusters: 0019,000A
profileId: 0104

Thanks for your work.
Ronnie

Just got my hands on Moes Zigbee Rotary Dimmer from Aliexpress and connected using this driver. I can see values populated on the UI however it seems like I am not able to control the device using this driver.

Device pairing info
Manufacturer: _TZE200_p0gzbqct
Endpoint 01 application: 44
Endpoint 01 endpointId: 01
Endpoint 01 idAsInt: 1
Endpoint 01 inClusters: 0000,0004,0005,EF00
Endpoint 01 initialized: true
Endpoint 01 manufacturer: _TZE200_p0gzbqct
Endpoint 01 model: TS0601
Endpoint 01 outClusters: 0019,000A
Endpoint 01 profileId: 0104
Endpoint 01 stage: 4

Happy provide any details you want to help to get this driver working with this dimmer module as well.

This is the device from Aliexpress: https://a.aliexpress.com/_mNmNaLu
Moes Model No: EDM-1ZBA-EU

Looks like it is manufactured by eardatek : EARDATEK

Logs when adding the device:

dev:142023-10-13 08:55:12.036 PMinfoZigbee parsed:[raw:catchall: 0104 EF00 01 01 0040 00 F3CB 01 00 0000 11 01 001742, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F3CB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:11, direction:01, data:[00, 17, 42]]
dev:142023-10-13 08:55:07.903 PMinfofingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0004,0005,EF00", outClusters:"0019,000A", model:"TS0601", manufacturer:"_TZE200_p0gzbqct"
dev:142023-10-13 08:55:07.806 PMtraceZCL version:03
dev:142023-10-13 08:55:07.799 PMtraceSoftware Build Id:unknown
dev:142023-10-13 08:55:07.797 PMtraceModel:TS0601
dev:142023-10-13 08:55:07.795 PMtraceManufacturer:_TZE200_p0gzbqct
dev:142023-10-13 08:55:07.694 PMdebuggetting info for unknown Zigbee device...
dev:142023-10-13 08:54:57.629 PMdebuggetting device info in 10 seconds...

EDIT
Looks like your recent Dev code works with module. I've come across this post from last year where the one I have is the rotary version instead of the touch version this user posted: Moes Zigbee Dimmer Touch - #15 by kkossev

The rotary version has LED indicator on the top of the rotary dial. Default behaviour of this LED is as follows:

  • If the dimmer is off, LED will be GREEN
  • If the dimmer is ON but NOT paired with a Zigbee hub, LED is OFF.
  • If the dimmer is ON and paired with a Zigbee hub, LED is WHITE
1 Like

Hey Krassimir, just found another variant of this controller. Seems to work fine with advanced zigbee rgbw inbuilt driver, but only pairs as device. Had to change driver and re-pair. Here's the fingerprint

fingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0003,0004,0005,0006,1000,0008,0300,EF00", outClusters:"0019,000A", model:"TS0505B", manufacturer:"_TZ3210_qhdmg74j"

Here is the item, looks like they're using a tuya led strip controller for a ceiling light.

EzeeLum 6 in Smart Led Recessed Light, Zigbee Upgraded Stable Connect, 15W RGBWW 2700K-6500K Dimmable Ceiling Lights for Alexa Google Support Remote, Voice Control, and Music Sync (6inch, 1 Pack) https://a.co/d/8WICgdX

EDIT not sure if these catchall messages have any useful info:

Catchall Msgs

dev:21472023-11-08 11:15:21.407 AMdebugdescMap:[raw:catchall: 0000 8022 00 00 0040 00 8417 00 00 0000 00 00 6088, profileId:0000, clusterId:8022, clusterInt:32802, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:8417, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[60, 88]]

dev:21472023-11-08 11:15:21.004 AMdebugdescMap:[raw:catchall: 0000 8022 00 00 0040 00 8417 00 00 0000 00 00 5F88, profileId:0000, clusterId:8022, clusterInt:32802, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:8417, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[5F, 88]]

dev:21472023-11-08 11:15:20.729 AMdebugdescMap:[raw:catchall: 0000 8022 00 00 0040 00 8417 00 00 0000 00 00 5E88, profileId:0000, clusterId:8022, clusterInt:32802, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:8417, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[5E, 88]]

dev:21472023-11-08 11:15:20.473 AMwarndescription logging is: true

1 Like

Tagging @mike.maxwell , this TS0505B device uses the standard ZCL clusters and is better to be added into the HE inbuilt drivers.

2 Likes

So how much longer before HE puts you on the payroll? :wink: :wink:

2 Likes

Hey @kkossev, love your work on this and other drivers!
I'm still using the release version through HPM for 5 lonsonho TS110E Dimmers, but one thing that's always bothered my Mrs is that my physical rocker switches don't play nice with the dimmers and you have to flick them on/off to turn a light on or off.

I noticed that Zigbee2mqtt came up with a solution for this but I don't really want do add more devices to the chain to allow for zigbee2mqtt...

Is there any way your driver could include this same rocker switch support??
Or maybe this beta already does in which case I'm jumping straight to this version!

In either case you'd be an absolute life saver :smiley:

1 Like

Please post your dimmer manufacturer (the Device Data section at the bottom of the web page).

1 Like