Deconding a Duwi remote


(Chris Holt) #1

These remotes have come up a few times in the forum and I had a vague go at creating a DTH for this a year when I first got ST (se Z-Wave Duwi Remote Control (Reitz gmbH ZWRC10)). But I was totally out of my depth then…now I’m just mostly out of my depth! I am happy to make the DTH with help from other similar remote related posts however I’m not convinced this will actually work. I think I need someone who knows ZWave just to reassure me that I can differentiate button presses and/or configure the remote correctly in ST

I had a rudimentary DTH I extracted from elsewhere in the forum that I hoped I could reuse, but I have pared this right back to the very basics and the issue is that I am getting the same event in ST every time I press the remote button - the same for any of the 33 or so buttons.

What I am seeing in the logs is from printing the parameter passed into parse(description):

8bea85e0-be02-4f7c-bc6a-bd442f54d1d6 21:03:31: trace zw device: 02, command: 7104, payload: 01

it doesn’t matter what I press its the same log, unless I press the all off button (command 2705) or all on (2704). I also cannot find info on the zwave command 7104

I won’t go through all the details of the Duwi again as they probably aren’t any help but have a read through that thread for some info as we know it thus far. Interestingly the remote has associated as I press the all off button at the bottom and all my zwave device turn off - really unhelpful but shows the remote works.

What I want is to capture an event when a button is pressed or held. I don’t want to do anything else than process that in a webCore ‘case’ statement so it can be an ultra simple DTH.

Can anyone help?


(Chris Holt) #2

I meant to add in my original post that I wonder if that code is actually saying ‘not programmed’ - maybe I have to bind each button (or set of three buttons - up, down and toggle) to an associated switch. Of course, factory reset I have just associated it in the zwave network but no more. It’s just a bit odd it broadcasts that - what reason would there be for something to ever receive it?!

If that is the case then I’m totally stuck as there are no (dummy) devices to bind it to where I can just collect the button pressed command - ie it’s really only a secondary controller and not a remote at all in my sense of the definition (which was suspected in the thread I linked to but we hoped it could be made to work)


#3

As we discussed in the previous threads last year, “bind” is a zigbee term, not a zwave term. if we’re going to get this to work, we’re going to have to be very specific about exactly what is happening in a Z wave context. So we’ve got to be very careful about the terminology being used.

( I know openHab uses “binding” for Z wave devices – – but SmartThings uses “clusters” for Zwave devices. :scream: It happens.)

Also, if it’s using zwave direct association, again as we discussed last year, you can’t do that with a dummy device. Z wave association is done by storing information in the trigger device. It will then broadcast directly to the target device. Since the broadcasters not go through the hub, they can’t involve dummy devices, it has to involve real ones.

There are also some fairly significant issues with regard to the specific device IDs that can be used. So we’re going to have to look into those.

I can’t help you with the code, because I rely on text to speech and listening to code it’s just tricky. If something jumps out at me I’ll mention it. And hopefully other people will get involved.

But just as a starting point, we’ve got to work with the actual Z wave terminology or everybody’s going to get very confused. :sunglasses:


#4

That’s not necessarily what “associated” means in this context.

You said that “all my Z wave devices turn off” – – did you do anything to load those device IDs into your remote? If not, it’s possible that it is simply broadcasting a “all off” and being allowed to do so because it has added as a secondary remote. That would happen without any association at all.

I know this stuff is tedious, but the details really matter in a situation like this.

Have you posted your code so far somewhere? People need to see that as well as the log responses.


#5

Here’s the user manual if anybody wants it:


(Chris Holt) #6

I am just using a very basic DTH for a remote to debug at the moment, nothing special at all. Don’t read to much into it, thus far I’m only worrying about what is in the parse section predominantly.

metadata {
	definition (name: "Duwi 33 button silver multi-remote", namespace: "smartthings", author: "jackalsdance") {
		capability "Actuator"
		capability "Button"
		capability "Holdable Button"
		capability "Configuration"
		capability "Sensor"

		fingerprint deviceId: "0x01"
	}

	simulator {

	}

	tiles {
		standardTile("state", "device.state", width: 2, height: 2) {
			state "connected", label: "", icon: "st.unknown.zwave.remote-controller", backgroundColor: "#ffffff"
		}

		main "state"
		details "state"
	}
}

def installed() {
	if (zwaveInfo.zw && zwaveInfo.zw.cc?.contains("84")) {
		response(zwave.wakeUpV1.wakeUpNoMoreInformation())
	}
}

def parse(String description) {
	def result = null
    log.trace description
    log.trace zigbee.parse(description)
	def cmd = zwave.parse(description)
	if (cmd) {
		result = zwaveEvent(cmd)
	}
	return result
}

def zwaveEvent(physicalgraph.zwave.commands.wakeupv1.WakeUpNotification cmd) {
	def result = []
	result << createEvent(descriptionText: "${device.displayName} woke up", isStateChange: true)
	result << response(zwave.wakeUpV1.wakeUpNoMoreInformation())
	result
}

def zwaveEvent(physicalgraph.zwave.Command cmd) {
	// Handles all Z-Wave commands we aren't interested in
	log.debug "$device.displayName unhandled $cmd"
}

I haven’t configured the remote at all, it is factory reset and all I did was associated it by adding it to ST as a new thing. You are likely right about the all off and all on command, it is likely generic. However the fact I see them being pressed but get the standard response for all other buttons shows I can see the remote being pressed via the ST DTH parse statement which I considered to be a decent start.

I know the code attached doesn’t help you, but imagine a very basic DTH with five capabilities set (Actuator, Button, Holdable Button, Configuration, Sensor) and a basic parse block.

Thanks for your help

Chris


#7

Tagging @erocm1231 just in case he has any ideas.