This is a device handler to assist with interrogating and tweaking Z-Wave devices. It’s designed for end-users who want to tweak their devices and for developers who want to quickly discover and report the functionality of new devices. It is intended to temporarily replace a device’s normal device handler.
Key features in v0.08:
Discover association groups, multi-channel endpoints, and configuration parameters.
Configure association group members from the SmartThings GUI.
Configure parameter values from the SmartThings GUI.
Configure Protection and Switch_All modes from the SmartThings GUI.
@zcapr17 Very cool! I was actually working on something similar, but never got around to finishing it. Yours looks much more involved any way so well done. The long term goal I wanted to achieve was to provide developers with a few commands and methods that they could put into their device handlers for the SmartApp to interact with. For example.
My version was far from finished and I really don’t have time to anyway. Plus what you have done is fantastic work. Not sharing this info as any indication of competing, I just think it would be cool to have a common way to interface your tool with current and new device handlers (in addition to having a temporary tool device handler).
I considered controlling this kind of thing with a SmartApp, but unless there is a widely-adopted standard capability/interface then I can’t see it getting off the ground. Some kind of “Z-Wave Configurable” capability perhaps…?
I think a better solution would be for SmartThings to simply handle tweaking of Z-Wave device parameters and association groups etc. natively as part of the platform (i.e. just another auto-generated section of the settings screen).
First off I want to say awesome job on this. I find my self often temporarily adding code into an existing DTH to try and do just some of what you have done with a UI to boot. I see this becoming one of my regular tools for working with Z-Wave devices. I did find a small bug (it maybe something unique to the device I am working with it seems to be misbehaving in general). Every time it tried to initialize I would get a null reference error. The issue was that the list of command ID’s had a null entry. I added the line “ccIds.removeAll([null])” to the section of the initialize function that parses the fingerprint and it solved the issue:
// Parse fingerprint for supported command classes:
def ccIds = []
if (getZwaveInfo()?.cc) {
logger("Device has new-style fingerprint: ${device.rawDescription}","info")
ccIds = getZwaveInfo()?.cc + getZwaveInfo()?.sec
ccIds.removeAll([null])
}
else {
logger("Device has legacy fingerprint: ${device.rawDescription}","info")
// Look for hexadecimal numbers (0x##) but remove the first one, which will be deviceID.
ccIds = device.rawDescription.findAll(/0x\p{XDigit}+/)
if (ccIds.size() > 0) { ccIds.remove(0) }
}
Has anyone tested this with Leviton DZ6HD Dimmers? When I click on Scan General for that kind of device I get:
scanGeneral(): Scanning for common device attributes
I’d like to share a success story with Z-Wave Tweaker. Thank you David, it is really awesome!
My setup: I have two lights that I wanted to control with a separate switch. Both lights can be controlled by Fibaro Dimmer 2 modules. Switch is button powered Z-Wave.me ZME_WALLC-S. Neither of these devices by SmartThings natively so for Dimmer 2 I use device handler from David. For switch I use Device Handler made by AdamV.
First attempt to control lights was by Smart Lightning app. It was pretty easy to configure but lights reaction after switch presses were pretty slow and jitter pretty big: from 2 to about 30 seconds.
Second attempt is with Z-Wave associations. I had to read quite a lot to understand how it works.
Gotcha: switch is battery operated device. Easiest way to configure it is to enter management mode (press all buttons at once for about 5 seconds until green light starts blinking) and use 2nd button (top right). This way switch won’t get to sleep for 10 seconds.
It took me some time to find out that I had to hit scan param and association button first. Only after that Z-Wave Tweaker allowed me to set params.
In the end I have ended up with following configuration:
Parameter #12: [id:12, scaledConfigurationValue:1, size:1]. Even though manual says it is default my switch had value 2 there.
Hi all. With the help of @ccheng I’ve been pointed to the Tweaker DH by @zcapr17 to try and get the new Aeotec Nano Dimmer functional in my system.
Was able to get logs of all parameters (had to use Print function in Tweaker).
I understand how to change a few parameters that I need. In my case they are 249, 129 and 130. I was able to change 249 and it immediately synched and showed up in the log.
28bf874c-dac4-4ca0-ab8e-1cac690b3dba 7:14:10 PM: info Parameter #249: Size: 1, Value: 2
28bf874c-dac4-4ca0-ab8e-1cac690b3dba 7:14:08 PM: info Parameter #249: Size: 1, Value: 0
28bf874c-dac4-4ca0-ab8e-1cac690b3dba 7:14:07 PM: info sync(): Syncing parameter #249: Size: 1, New Value: 2
I need to change 129 and 130 to see if i can get the Dim function to work. The Tweaker app shows pending synch and doesn’t change. I’ve left it for 15 min. If i go mess with other functions eventually the synch with turn green but the parameter change i requested isn’t there. Immediately after changing a parameter i get this:
28bf874c-dac4-4ca0-ab8e-1cac690b3dba 7:15:23 PM: info Parameter #129: Size: 1, Value: 0
28bf874c-dac4-4ca0-ab8e-1cac690b3dba 7:15:22 PM: info Parameter #129: Size: 1, Value: 0
28bf874c-dac4-4ca0-ab8e-1cac690b3dba 7:15:22 PM: info sync(): Syncing parameter #129: Size: 1, New Value: 2
Any ideas/suggestions on getting Tweaker to change these two parameters? I’ve tried it with light on and off. I’ve closed apps, restarted, replaced the DH and back to Tweaker. Can’t seem to push a parameter change.