Another command class issue. I have this driver which has worked on previous versions of the hub firmware for some time without issue.
For ease here is the parse method call:
// Processes messages received from device.
def parse(String description) {
logDebug "parse(String description)"
logTrace "Description: ${description}"
def result = []
result << createEvent(createLastActivityEventMap())
logDebug "Last Activity: ${device.currentValue("lastActivity")}"
def cmd = zwave.parse(description, commandClassVersions)
if (cmd) {
result += zwaveEvent(cmd)
}
else {
log.warn "Unable to parse description: $description"
}
return result
}
private getCommandClassVersions() {
[
0x20: 1, // Basic
0x22: 1, // Application Status (Model 0308)
0x30: 2, // Sensor Binary
0x59: 1, // AssociationGrpInfo (Model 0308)
0x5A: 1, // DeviceResetLocally (Model 0308)
0x5E: 2, // ZwaveplusInfo (Model 0308)
0x7A: 2, // Firmware Update MD (Model 0308)
0x71: 3, // Alarm v1 or Notification (v4)
0x72: 2, // ManufacturerSpecific
0x73: 1, // Powerlevel (Model 0308)
0x80: 1, // Battery
0x84: 2, // WakeUp
0x85: 2, // Association
0x86: 1, // Version (v2)
0x98: 1 // Security (Model 0308)
]
}
On previous versions of hubitat when the sensor was accelerated the driver would receive one BasicSet message with value FF and one NotificationReport with essentially the same information. The BasicSet would go to all group associations and the NotificationReport just to the primary controller I'm guessing. I didn't care because without setting associations after pairing the hub would get both.
I would use the BasicSet message to send the active event. However, on the new versions of hubitat firmware I receive two BasicSet messages and two NotificationReport messages. One of the BasicSet messages has the correct value (FF) and the other BasicSet message is wrong and contains 00. The same thing is true of the NotificationReport; one of them has the correct values and the other is wrong. There have been no introductions or changes to my controller with new devices recently and I am getting this same issue reported to me from the one other user that I know uses this driver.
What changed? Is this a bug or am I not passing the correct versions of these command classes somehow? BasicSet is 0x20, right?