[ST Edge] Zigbee Driver for MOES 4-Button Scene Switch (TS004F) Plus Some Smart Knob Models

Thanks for sharing!

As soon as I add them into the driver I’ll let you know.

And, regarding your last question, the device will be a single device instance with different button components to be able to automate each button individually.

1 Like

@erickv this is how I handle the rotation in Scene mode in Hubitat:

        else if (descMap.clusterInt == 0x0006 && descMap.command == "FC") {
            // Smart knob
            if (descMap.data[0] == "00") {            // Rotate one click right
                buttonNumber = 2
            else if (descMap.data[0] == "01") {       // Rotate one click left
                buttonNumber = 3
            buttonState = "pushed"

Thank you @Trakker2!

@erickv - This may be helpful to you?


1 Like


I’ve added the fingerprint in a new driver version: button-battery-v1.3.2 from @erickv Shared Drivers channel.

@Trakker2 Thanks a lot, it is of great help indeed.

… also, taking a little advantage that you’re around :grimacing: could you please help me to clarify a few the fourth arg expressed in this line:

I understand that generally, the order of arguments is cluster, attribute, value, right?

  • But what exactly is that last one?
  • Is it another value for the same command?

I’m asking this because I’d like to explore the Dimmer mode if possible.

1 Like

Cluster 6, attribute 0x8004 sets the operational mode:
0 - dimmer mode (default)
1 - scene mode.
You can read and write this attribute value. It is the 4th parameter.
The 3rd parameter (0x30) is the DataType (Enum8 )

The Dimmer mode is very interesting, unfortunately, the commands are sent as a broadcast (not unicasted to the Zigbee coordinator) like this:

SmartThings hub however supports this kind of ‘Inbound Group Messaging’ (unlike some other hubs that don’t :frowning: ), so this opens good possibilities for fast and smooth level-up / level-down control of anything (not just Zigbee bulbs), especially with the Edge drivers now… Good luck! :slight_smile:


Many thanks Erickv, truly appreciate your sppedy response. I am assuming I need to enroll my hub and then enroll into this channel, install the drivers and then test.


Hi @erickv,

The press and held works well, thank you. The Held wants a very long hold. About 3 seconds. Can that be a bit shorter by any chance?


1 Like

Many many thanks for this reference @Trakker2 this gives a great opportunity to extend the functionality of the driver :raised_hands:t3:

So, following up with a few more questions hehe

  • If I add the hub into that group, I should be able to get the logs, right? (I can’t find the API but I’m sure there was an add_hub_to_channel or something similar)
  • And if my bulbs support the Groups cluster and add them into the same group, they should handle these commands as well, isn’t it?

@Subramanian_Swaminat That’s right, enroll, install and then pair the device.

As far as I know there’s no way to reconfigure that timeout… which is indeed boring loooooong hehe

1 Like

Thanks Erick. Just so I am clear, re-pair both the buttons separately right?

Also, if I buy the Yagusmart single gang zigbee, will your fingerprint work or would you need me to send you one for that?

1 Like

Yes, just make sure to delete de the device before re-pairing. This way the API will generate the proper type reference, i.e. from type DTH to ZIGBEE type (ZIGBEE being driver-based).

You’ll need to repeat the process to:

  1. Add it.
  2. Collect fingerprint.
  3. And once it gets integrated into the driver, delete the device and re-pair.

@Trakker2 building the group feature was easier than I thought. I tested the DIMMER_MODE with my Moes TS004F and a few Sengled bulbs and it worked on all of them :raised_hands:t3: .

Just for reference, this is the minimal and functional configuration I did (of course, applied to both drivers, scene switch and bulbs):

  -- this is the important one:
  device:send(Groups.server.commands.AddGroup(device, 0x8004, "dimmer mode"))  
  device:send(Groups.server.commands.GetGroupMembership(device, { 0x8004 }))

Also, I noticed that it worked with the Group Id your screenshot was referring (0x0000) and any other… I’m excited lol

(@nayelyz I believe that this can be a useful “hello world” reference if someone asks for Groups support)

Also, @RiaanUK I think this will be very useful with the SmartKnob, but I’m not really sure how it suppose to behave under dimmer mode, hence, I’ve ordered my own knob to address that =P hopefully soon we’ll have a fully functional SmartKnob = ].


Thank you sooo much!

1 Like

Sorry, it’s taken me a while to get to this.

Just installed driver 1.3.1 and the switch connected with no issues. Routines all work reliably and locally.

Thank you for taking the time to sort this, I really appreciate it.


Thank you for the feedback @Steve_Mason, for taking the time to check after this time!!

Hi @erickv. Have you taken delivery of your smart knob yet?


I got a notification that it is already in my country so, I hope to retake development in the upcoming weeks =]

1 Like


1 Like

@Erickv - Please find the fingerprint for the Yagusmart single gang switch.

  • application: 50
  • endpointId: 01
  • manufacturer: _TZ3000_m0btfbt7
  • model: TS0001
  • onOff: catchall
  • zigbeeNodeType: ROUTER
1 Like

Hey! Thanks for continue contributing.

As soon as I get back home I’ll add it into the driver and will ping you back!

Hi erickv. Are you plaing around with your new toy yet?

1 Like