I’m looking for a few pointers here, most of my work has been based on experimentation. I can’t find any Z-Wave Plus Security class enabled sample devices.
AFAIK Z-Wave Plus devices mandate the use of the Security Class. Which mean all the commands needs to be encrypted and processed accordingly.
I have a sample of many devices from the same manufacturer, one which is Z-Wave and other which is Z-Wave Plus.
On the Z-Wave devices (since all the devices I had support WAKE_UP_V2), the following commands work like a charm:
zwave.wakeUpV2.wakeUpIntervalCapabilitiesGet().format()
zwave.wakeUpV2.wakeUpIntervalGet().format()
However on the Z-Wave Plus devices I get no response from the device. I’ve also tried using V1 version of these commands with no success.
Since Z-Wave Plus devices use the Security class, I decided to encapsulate these commands (like all other commands for Plus devices) using the following:
def cmd = []
cmd << zwave.wakeUpV2.wakeUpIntervalCapabilitiesGet()
cmd << zwave.wakeUpV2.wakeUpIntervalGet()
delayBetween(cmd.collect{ secure(it) }, 1200)
and secure() is defined as:
private secure(physicalgraph.zwave.Command cmd) {
zwave.securityV1.securityMessageEncapsulation().encapsulate(cmd).format()
}
While the above approach works for ALL other commands, for the WAKE_UP class (both V1 and V2) I get the following error:
307f7ee5-f9aa-4f3d-bcf0-352a7dd5f90b 10:12:49 AM: error groovy.lang.MissingMethodException: No signature of method: static physicalgraph.zwave.ZwaveUtils.uint24FromBytes() is applicable for argument types: (java.util.ArrayList$SubList, java.lang.Integer) values: [[0, 14, 16, 1], 0]
Possible solutions: uint24FromBytes(java.util.ArrayList, int) @ line 226
307f7ee5-f9aa-4f3d-bcf0-352a7dd5f90b 10:12:48 AM: error groovy.lang.MissingMethodException: No signature of method: static physicalgraph.zwave.ZwaveUtils.uint24FromBytes() is applicable for argument types: (java.util.ArrayList$SubList, java.lang.Integer) values: [[0, 2, 88, 9, 58, 128, 0, 14, 16, 0, 2, …], …]
Possible solutions: uint24FromBytes(java.util.ArrayList, int) @ line 226
I’m looking for some pointers here, is there an incompatibility with the WAKE_UP class and security encapsulation? How does one use the Wake Up class for Z-Wave Plus (security) devices?