Schneider connect 2 paddle switch (4 button controller)

Hello!

Has anyone had anything to do with these things? (Merten 5052xx, 5062xx, 5072xx Or schneider WDE002903 [the one I have].)

I'm having trouble configuring these things 'couse there is really no driver to do so (that i know of).
I used the basic z-wave tool to get some info out of it but i really don't know what to do with it.

Could someone please push me in the right direction.

Edit:

Info from the z-wave tool:
CommandClassReport- class:0x8E, version:1
CommandClassReport- class:0x85, version:1
CommandClassReport- class:0x70, version:1
CommandClassReport- class:0x86, version:1
CommandClassReport- class:0x72, version:1

VersionReport- applicationVersion:1.8
VersionReport- zWaveProtocolVersion:2.27
VersionReport- zWaveLibraryType:Controller

AssociationReport- groupingIdentifier:1, maxNodesSupported:12, nodes:[1]

CC Description
0x8E Multi-Channel Association
0x85 Association
0x70 Configuration
0x86 Version
0x72 Manufacturer Specific

Looks like a scene controller..

But not central scene.. So I'm not sure any of the built-in drivers would fit

Devices like this are normally configured to directly associate with the device they are controlling.. But it can be configured with multi-channel association to go back to the hub and child device endpoints..

Ok, so there is hope to get this thing working?

Here is a small info packet from the users manual:

I wrote a driver that used multi-channel association and child endpoints.. It's pretty easy.. But without having one to work with .. You will probably have to roll up your sleeves and do some groovy..

If I had one .. I would be happy to do it..

Ok, thanks!

I'm up for some groovy, but I have to learn the ropes first!
There is still ALOT I don't understand. I just got my hub yesterday.

Is your driver in the github, so that I can look at it for reference?

The touch Panel and Touch Panel Child Drivers..

Great!

Thank you!

I'll keep this thread posted on my success or short comings.

Here is some getting started info for groovy..

General language basics:
https://www.tutorialspoint.com/groovy/index.htm

Most of the ST stuff applies .. so these make good references:
https://docs.smartthings.com/en/latest/getting-started/groovy-basics.html

https://docs.smartthings.com/en/latest/getting-started/groovy-for-smartthings.html

https://docs.smartthings.com/en/latest/device-type-developers-guide/index.html

When you get to more advanced things:
http://www.groovy-lang.org/documentation.html

1 Like

Hey!

I have learned some things about these switches.

They have 4 association groups and as a default it uses the first group for the left paddle and third group for the right one. I can however change the parameters so that it uses AssociationGroup1 for left top button and AG2 for the left bottom and so on.

So let me get this straight, when i pair the switch with the hub i associate the group 1 with it?
So it "listens" to the group one what ever commands comes through it?

Now i "just" need to make the hub speak to the other groups too?

Here are some packets from the log when i was poking at the thing:
'zw device: 32, command: 2001, payload: FF , isMulticast: false'
'zw device: 32, command: 2001, payload: 00 , isMulticast: false'
These are basically on and off commands from the Agroup 1 when the it is in two button mode, Is there a driver or groovy command that gets me the whole message been sent back and forth?

Yep.. Group 1 is considered z-wave lifeline and is always mapped to the hub..

What you are seeing there is a z-wave basic set command.. 0x20 is Z-Wave Basic command class and 0x01 is the Basic set command.. The payload you will see 0xFF and 0x00 that is on and off

Check out this reference for ZWave commands in hubitat:
https://docs.hubitat.com/index.php?title=ZWave_Classes

That is the whole packet.. Minus the homeid and source and destination.. etc.. It’s the whole part of the message that is important to a driver

Ok, thanks for the link!
Now this starts to make some sense!
The command class report gave away the classes and versions the switch uses.

1 Like

A good starting point might be to look here:

Everything starts from the parse method

def cmd = zwave.parse(description,commandClassVersions)
    if (cmd) {zwaveEvent(cmd)}

This is from the parse method which is what gets the packets.. It first parses the z-wave message into a command.. then calls the matching zwaveEvent method for that command

def zwaveEvent(hubitat.zwave.commands.basicv1.BasicReport cmd) {
    if (logEnable) log.info "BasicReport value: ${cmd.value}"
    dimmerEvents(cmd.value,"digital")
}
1 Like

Quick tip.. When working with z-wave commands .. You can always do a

log.debug β€œ${cmd}”

Which will dump out all the return values from the parsed zwave command..

Helpful when you aren’t really sure what you have available to parse from..

In your case all there is is cmd.value which will return 0 or 255 which is the integer values of 0x00 and 0xFF

1 Like

Could i basically just use this:

Association Set
Command: 0x01

class hubitat.zwave.commands.associationv1.AssociationSet {
Short groupingIdentifier
Object nodeId

List getPayload()
String format()
}

to associate the group with a nodeid?

Yes I apparently can, atleast i associated the group 3 with my hub.

1 Like

Yea.. You are getting the concept

Ok I finally got basic functionality working for the driver, as in I can get a switch on and off out of it. And I can do it with both of the paddles.
I tried to associate them straight with two different nodeid:s for my relays but that didn't work. So now i have to Make The driver into a parent driver that forwads the results to the desired devices?

1 Like

Maby i should make a child driver for virtual devices that get turned on and off according to the result i give out of the parent driver (255 and 0)

1 Like