Tuya Zigbee scene switch as a dimmer

I have a Tuya Zigbee scene switch (4 button remote).
I would like to be able to double-tap button 2 to start gradually increasing the light intensity until either 100% is reached or button 2 is double-taped again (stopping the process).
The next time button 2 is double-taped the light should gradually decrease the light intensity until it reaches 0% or button 2 is double-taped (again,stopping the process).
Maybe there Is a better way to get a button to dim a light?

Unfortunately, HE hub does not support the dimmer mode of these switches, where when a button is held down the device will broadcast fast ramp-up / ramp-down commands.

Is there any good references that define what a Zigbee device must and may communicate?
Is there a way to view these commands and responses on the HE or monitoring tools for a Zigbee device? (Maybe using Wireshark with a USB-Zigbee monitor dongle.)
Hopefully we can discuss successful dimmer configurations.

Wireshark Zigbee packet decoder configuration:
A Zigbee protocol description:
Zigbee 3.0 tutorial | Zigbee 3.0 Protocol Stack,features

A button is just a button. It could have a HE Groovy Button Dimmer Driver developed to achieve a dimmer function. When I do a web search for "Zigbee Dimmer", I get links for dimmers that connect directly to dumb lights. The dimmer can then be controlled by a Zigbee hub to dim the dumb light.

What I want to do is use a Zigbee remote controller to dim smart devices all using the HE hub. I'm still experimenting and I'm not there yet...

Hi @george1 ,

You have performed good research!

On the Zigbee protocol, a useful specification is this: https://zigbeealliance.org/wp-content/uploads/2019/12/07-5123-06-zigbee-cluster-library-specification.pdf

I am using this :


You can look at this driver code. The dimming mode of the Tuya switch is hidden, as it is not usable at the moment in HE. If you enable the debug mode in the code (change the line @ Field static final Boolean debug = true), you can use the switchMode() command to put the device into a dimmer mode. Make sure you wake up the device (press button 1) while sending the switch into dimmer mode command.

What prevents it working in Hubitat is this. A Wireshark screenshot showing what is the TS004F device broadcasting in dimmer mode is here.

A possible solution could be to configure both the Tuya TS004F dimmer and the bulbs in one and the same Zigbee group. The HE hub will not receive the dimmer group broadcast commands (as these are filtered in HE), but the ZIgbee bulb will and will ramp up/down its brightness. I don't know if the bulb will send the brightness level back to HE or if it will need to be polled.

A similar solution was done for SmartThings, as they do not filter the inbound Zigbee group messages:

THANK YOU! for the information. It will take time to go through.

Zigbee appears to be able to group devices together, which then operate independently as a group. Turning on a group of bulbs or dimming a group of bulbs does not require a hub. Within the HE App "Groups ans Scenes" there are Bulbs, Dimmers and Switches parameters. I tried using a virtual switch and virtual dimmer for the Dimmers and Switches parameters. These virtual devices did not control the Zigbee Bulbs Group-2.1 devices. I expected that the HE would jump in and provide the Zigbee functionality for these Zigbee virtual devices. Am I missing something?

I have never gone deeper into HE Zigbee groups control implementation, as I have too many other projects started but not finished yet.

You may want to look at the "Advanced Zigbee CT Bulb" groovy code - it is published in Hubitat sample drivers repository in GitHub :

Probably, to make TS004F control directly the Zigbee bulbs, it must be added to the same Zigbee group (and to be switched into Dimmer mode, of course). You can switch TS004F into dimmer mode by holding the two right buttons pressed for 5-6 seconds. Or if you enable the debug mode inside the TS004F driver code and refresh the device web page, there will be a 'Switch Mode' command :

Unfortunately, TS004F expects the Zigbee coordinator to send something in response to LevelUp / LevelDown commands that the remote sends. As these are not sent as unicasts to the hub, but are broadcasted, HE does not receive the commands and the TS004F dimmer time-outs, and after several seconds sends a Zigbee network re-join command.

So this Tuya device will not work as a dimmer in HE, I can recommend to experiment with another Zigbee dimmer device that follows the standards and can be configured to send unicast messages to the Zigbee coordinator.

The best Zigbee 3.0 standard reference that I have found so far:

[Please have these included in the Community Zigbee documentation,]

I installed the Tuya Scene Switch TS004F type driver, set its debug true, and tried various lighting apps (Groups and Scenes, Room Lighting) with no battery-powered Dimmer Switch cluster luck (yet).

I have to say that the terms "switch" and "dimmer" are probably the worst misunderstood and misused terms. There are many Zigbee configuations (physical, remote, switchable, dimable, virtual, etc.) that are in fact all different. These terms need to be defined in the community documentation.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.