If it is, you may need to remap the command version in the CRC16 event handler. I have a device I had to do that in the driver. Might be worth putting some debug code in that section and see if that is what is doing the calls that lead to the basic v2 error.
Basically something like this, where I had to force some versions to 1 or 2 on a few commands:
def zwaveEvent(hubitat.zwave.commands.crc16encapv1.Crc16Encap cmd) {
if (logEnable) log.debug "zwaveEvent(): CRC-16 Encapsulation Command received: ${cmd}"
def newVersion = 1
// Configuration = 112 decimal
// Manufacturer Specific = 114 decimal
// Association = 133 decimal
if (cmd.commandClass == 112) {newVersion = 2}
if (cmd.commandClass == 114) {newVersion = 2}
if (cmd.commandClass == 133) {newVersion = 2}
def encapsulatedCommand = zwave.getCommand(cmd.commandClass, cmd.command, cmd.data, newVersion)
if (encapsulatedCommand) {
zwaveEvent(encapsulatedCommand)
} else {
log.warn "Unable to extract CRC16 command from ${cmd}"
}
}
I'm totally confused, nowhere in this driver is a basicReport being used, so from that perspective any basic reports this device issues are being ignored by the driver anyway, so the fact that we are returning a basicv2.basicReport is of no consequence...
We're returning a V2 report since parse didn't specify v1, and even if it did not specify v1, had this driver declared a zwaveEvent(hubitat.zwave.commands.basicv1.BasicReport cmd) method, since basicv2 extends basic v1 the basicv1.BasicReport method would have been called...
I didn't realize that. Learn something new every day.
I (almost) always explicitly specify versions in my drivers, so I guess I haven't put enough thought into what happens when the default version is higher than the device supports, but is backward compatible. Sorry to add any confusion to the matter (it was well intentioned).
Thanks for clarifying. I guess when @entire has time to post the actual errors he is getting this weekend it will be easier to tell what is really happening.
oic, sets normally aren't mapped this way since they are usually commands sent from the hub to a device, not the other way around.
I can get this fixed, in the mean time if you add [ 0x20: 1] to your parse(description,[ 0x20: 1]) that should fix it
For the record I have multiple devices that send a basic set event after the state changes, whether it originated locally at the device or from the hub.
Yup, I know. Receiving a basicset (and thereby needing it to be parsed in the receiving driver) is very common when you have associations defined. (Or am I still missing your point?)
Oh, also, Jasco uses basicset to send their doubletap events to the hub, too. At least in the old devices. In the enbrighten models they use centralscene reporting like good boys.
I had thought maybe their firmware was different and sending a v2 BasicSet instead of the v1 my driver was expecting. But it was actually a change in v2.1.7?
Iβm still on 2.1.6 and waiting for a bit before upgrading.
I think that is why associations "look" broken to one user of my GE drivers, too... Which was new in 2.1.7.
Because the association definitely sends basicset commands in this application, which are likely generating errors (although I don't think they looked for/specifically reported that error).
yes, and we didn't add the various command classes that got added to the change log (our bad), there's more coming, and these will all be noted in the 2.1.8 release notes...
Have updated to V2.1.7.121 again and tried updating a parameter on one of my devices (driver posted above) and it has failed to update correctly.
These are the logs from V2.1.6.118 when i changed parameter 6
2019-12-07 18:27:31.321 [info] parameter 6 reported value 20. All parameters updated
2019-12-07 18:27:29.829 [info] Setting parameter 6 to 20 last value 15
2019-12-07 18:27:29.803 [info] Device woke up
These are logs from V2.1.7.121 when i changed parameter 6 back
2019-12-07 18:42:30.620 [info] parameter 6 reported value 256. 1 setting(s) left
2019-12-07 18:42:29.778 [info] Setting parameter 6 to 15 last value 20
2019-12-07 18:42:29.772 [info] Device woke up
parameter 6 is motion cancel time and it has changed to a long time so it appears the correct value was reported, so it must have sent the wrong value to the device.
As no one else appears to be having this issues i guess its something in the driver that i was getting away with in the last versions, so any ideas why this is going wrong ?
2019-12-07 19:00:34.483 [info] parameter 6 reported value 2560. 1 setting(s) left
2019-12-07 19:00:33.770 [info] Setting parameter 6 to 15 last value 3584
2019-12-07 19:00:33.760 [info] Device woke up
2019-12-07 18:57:34.297 [info] parameter 6 reported value 3584. 1 setting(s) left
2019-12-07 18:57:33.156 [info] Setting parameter 6 to 15 last value 512
2019-12-07 18:57:33.148 [info] Device woke up
2019-12-07 18:54:33.179 [info] parameter 6 reported value 512. 1 setting(s) left
2019-12-07 18:54:32.494 [info] Setting parameter 6 to 15 last value 1536
2019-12-07 18:54:32.488 [info] Device woke up
thanks for raising this; i have the exact same issue with 5 of these motion sensors and the associated driver (yours, i think!). I assumed i had broken them somehow when i did a ZWave repair, but it appears there's more to it. At the moment i think it's beyond me
I get the following logs from my motion sensors when they detect motion; no doubt as you do: