How can I use regular rocker switches with Moes MS-105Z Zigbee Dimmer Modules?

I’ve set up a few Moes MS-105Z dimmer modules to control some dimmable LED lights around my house. The only problem is that my house has on/off rocker switches, and the modules are designed to work with push button switches. A short press toggles the light on or off, and a long press makes the brightness go up and down until you release the button at your desired level of brightness.

I would like to know if there’s a way to configure these dimmer modules to support a simple on/off switch, so that they just turn on and off. All my lights are now triggered by motion and door sensors, so I don’t mind if I can only control the brightness through automations, phone, Alexa, etc. But it’s a bit annoying to have to flick the switch twice. Even more annoying to teach guests how to use our light switches.

I have a couple ideas to fix this, and was wondering if anyone could shed some light on the feasibility of these options.

  1. Send a Zigbee command or change a setting somewhere in the zigbee2mqtt interface. (I couldn’t find anything.)

  2. Set up some automations in HA or Node-RED to adjust the behavior of the modules by sending commands. Maybe there’s a way to listen to events and trigger commands to make the light switch behave like an on/off switch. (I don’t know if there’s a way to stop the brightness going up and down when the switch is closed.)

  3. Install a custom firmware on the device through an OTA update. Maybe find a way to reverse engineer the firmware and change a few bytes to alter the behavior. Are there any custom firmwares for these modules? Is there a way I could get the current firmware off the device and poke around?

  4. Open up the case and take a look at the PCB. Maybe I can move a jumper or alter the circuit.

  5. Install some components between the switch and the module, so that the switch sends a quick pulse whenever it is opened or closed. Something like a capacitor and relay.

  6. Final option: Replace all the light switches in my house with push buttons or momentary rocker switches with a spring. I would need to buy these PDL Iconic Momentary switches for $10 NZD since they are compatible with the sockets. I’d need to buy around 25 of these, since some lights are on 2-way or 3-way switches. I’d prefer not to spend $250 on light switches, but I guess that’s not a crazy amount.

Any other ideas?

Here’s some pictures of the PCB inside a Moes 2-Gang Zigbee Smart Dimmer Module - MS-105BZ. It uses a Tuya ZS2S chip: ZS2S Module Datasheet-Tuya IoT Development Platform-Tuya Developer

I’ve used Tuya Convert in the past to flash ESPHome and Tasmota on some ESP32 chips for other Tuya devices. I’ve also wired up a USB to TTL Serial cable to flash a new firmware on a Tuya TYWE3S chip. I used the esptool CLI tool, and I noticed that it had a way to extract the current firmware from the chip.

I would be interested to know if there are any similarities between the Tuya ZS2S and TYWE3S modules, and if there’s a similar way to extract / reverse engineer / compile / flash my own firmware.

I think this project might be way beyond my capabilities though, so I might just buy the replacement switches.

I found the “Dev Console” tab in zigbee2mqtt. Can I do anything with this?

I like the sound of “genOnOffSwitchCfg” and “switchActions”. That seems like it could be something.

I posted on the zigbee2mqtt discussion board: Is it possible to configure a Zigbee dimmer module to work with a rocker switch? · Discussion #12684 · Koenkk/zigbee2mqtt · GitHub
Found some similar discussions from people who wanted to achieve the same thing (but no solution yet):

You missed one discussion…:wink:

Please, I’m having some difficulties because the language. The problem is that normal switches doesn’t work with this device, so I should use something to make them return to their position?

So, if I press it up and then down I would make them work as expected (one pushing, on; other pushing, off?).

I put a small piece of foam on one side of the switch, so it would return to original position (making it a push switch)

Hi, I’ve the same problem. Did you ever find a solution to this?

Did you manage to get this dimmer working at all? I get it paired and detected on my Z2M but then even I see the max.dimming, min.dimming, dimming, link quality, on/off state, etc, seems this dimmer does not react at all if I play with the settings on the HA (using directly the Z2M page).

What if you want to use no switch at all? It should still work, right?
I’m playing with the device at the Z2M device page and nothing changes, light is OFF even I press ON, so no idea if intensity will work or if any other of the settings works at all.

You don’t need a switch, it just allows you to operate the light in case HA is down…

Then my dimmer rele should be working, but it doesn’t… it is detected by Z2M, I see some properties, but they have no reaction on the led it’s connected to.