[OBSOLETE] Moes 2 and 3 gang Zigbee wall switch ( cluster EF00)

Hi i have Moes wall swithc that is zigbee that use Tuya Cluster EF00 and is touch with 3 gangs

1 Like

I can donate 20€ if someone can create this to work also if anyone else can donate can create a list with donators


It appears that code is still in early development and is not yet working even on Hubitat. Particularly not for the multi gang versions. :thinking:

I can’t help you with the code, but The following thread has a good discussion of the issues involved in the Tuya proprietary EF00 cluster, so should be useful if anybody does want to attempt it.

1 Like

The other issue you are going to run into is that since the smartthings-hosted groovy cloud is going away by the end of this year, it’s quite likely that anything which is written might have to be rewritten at that time. So a lot of the usual developers are taking a wait and see attitude to new zigbee code development right now.

@johnconstantelo might have some other suggestions.


thanks for your suggestion… right now i have 60euro spend for 2 switch x3gang
so i prefer to give someone 20euro than loose 60

about gangs will be easy as we have many dht that working with more tha one the problem is this custom tuya cluster EF00

You’re right @JDRoberts . I was asked by another forum member to write a dth for the 2 gang Tuya switch and that custom cluster. It’s doable, but I just don’t have the time now with my job change responsibilities, plus I’d rather see where development is going with ST.

@b16b , here’s a discussion about that custom cluster and some progress with Hubitat’s version. Their dth could be used to develop a version for ST, but the developer really needs the device to do proper development and testing.

1 Like

yes i have post the same thread of hubitat on first post if ever you have time please help us

*I think i have add what you need on 1st post

I’m willing donate and add another 10euro if someone will give it a try.
And also to ship a two gangs module for free to anyone that want it…

1 Like

i create a code that work only for the first gang even if you have more than one

but is a good start

i am happy i will donate my self with a good drink :stuck_out_tongue:


i have combine my handler with WooBoung handler

now create the switch 2 and 3 as i have 3 gang switch but still 2 and 3 does not work just take a look maybe you find solution

tell me if work for you @dotan_shai

Thanks a lot, I got this working with a Moes 2 gang switch, but like you only the first switch works. Any ideas on getting the others working? It’s been awhile since I coded anything for Smartthings

I have 3 gang switch I try to fix it I have made a code that create child’s but i still can’t make it work

The whole parent/child construct Is an abstraction layer added by smartthings for their platform. That’s why the switches will work with other hubs but not smartthings.

And smartthings has changed the way parent/child design works a couple of times. I believe at the present time that hubitat is still using one of the older versions, which is why code that works with hubitat won’t necessarily work with smartthings anymore. Also why sometimes you can find code which will work with smartlighting but not with other automations.

I dont’t know if @johnconstantelo , @orangebucket , or @mwav3 have any more to add, they have all run into this issue in the past. But I don’t know exactly what the current requirements for multi endpoint Zigbee devices are. Or if they know of a generic DTH you might try.

But I did just want to mention that the parent/child issue is a smartthings-specific issue, which is why the device manufacturers usually aren’t much help.

So for this particular model you run into two separate issues: figuring out what to do with the manufacturer proprietary EF00 cluster, and figuring out how to do that in the smartthings-specific parent/child construct.

From what I can see here, and based on the unknowns (haven’t seen the zbjoin message for this one):

  • Try not to use switch statements with 1 case, change them to if conditions, they do have processing differences.
  • If you can, set up code in parse() to handle proper zigbee messages if you dont know what else is there, using zigbee.getEvent(description), there’s an example in the other handler I made: (Xiaomi Zigbee outlet)
  • you will need a child device handler, and a child devices creation code, you can use createChildDevices() from the TS0115 parent handler example, don’t forget to add it into installed(). you’ll need to adapt the code to cycle through the available endpoints (get the amount of them, and go one by one, the problem will be if an endpoint is out of order like the TS0115 which was 2,3,4,7).
  • you’ll need to declare childOn and childOff in the parent (again use the TS0115 example), and call it from the child (look at the TS0115 child code. (I forgot to declare childRefresh in the TS0115, but it seems it works without being declared).
  • create a “childSetLevel”, and use the same code, and declare it in the child handler as a normal void setLevel that calls parent.childSetLevel(device.deviceNetworkId).
  • you configure() statement will not work, as zigbee.xx() methods attempt to configure standard zigbee clusters, zigbee.onOffConfig() configures cluster 0x0006 for poll data, your case is cluster 0xEF00 which will need a custom configure() statement, and will only work if 0xEF00 has a poll attribute to be configured. An example is: (0x000C, 0x0055, 0x39, 1, 300, 0x01, [destEndpoint: 0x0002]), which polls for cluster 0x000C, attribute 0x0055, data type 0x39 (FLOAT4), the minimum and maximum interval, change state to update, and endpoint to poll.
1 Like

Thanks a lot for your help I just take the code from hubitat so no knowledge for how to if you can help with a code I will donate 20euro I hope some other can donate too

Don’ t worry about it, I just do it for fun,

I just familiarized myself with the custom cluster 0xEF00 of Tuya and how it works, will update when I have a prototype.

Check hubitat forum the link is on 1st post thank you for your help

I’ll need the zbjoin event to know which endpoints it has and its number,

you have to remove the device, re-add it, and go into my hubs → list events, and find the zbjoin, looks like this:

Note: if you have re-added the device recently, you may already have the event in the list.

To copy the full value, you can open F12 (browser dev mode), select the zbjoin event, and you’ll have the full event in the html code.

Will continue after I got this, and after work in some hours.

1 Like

I’m working with @ygerlovin on a similar module. It is 2 Gangs module (not touch switch) that can also convert to curtain module using the 8 short presses on the paring switch.
For now @ygerlovin only finished implementing the light switch only. He developed a main Handler and Child Handler. Everything seems to work OK for me. I’m automatically getting the child switches after success pairing and selecting the Main handler.
You are welcome to try as well…