Details here : Z-Wave Qubino Smart Meter ZMNHTD1 Plus
I've ported from smartthings Z-Wave Qubino Smart Meter ZMNHTD1 Plus
Now my log fills up with these message but basically seems to work. Can't figure out how to turn them off! Anyone any idea what they mean?
2019-09-24 13:29:21.967 debugcrc16encapv1.Crc16Encap
dev:8062019-09-24 13:29:21.964 debugParsed: Crc16Encap(checksum:65535, command:2, commandClass:50, data:[161, 108, 0, 0, 7, 149, 0, 0])
dev:8062019-09-24 13:29:21.962 debugParsing: zw device: 5F, command: 5601, payload: 32 02 A1 6C 00 00 07 95 00 00 C7 D4 , isMulticast: false
dev:8062019-09-24 13:29:21.959 debugSTART Parsing: zw device: 5F, command: 5601, payload: 32 02 A1 6C 00 00 07 95 00 00 C7 D4 , isMulticast: false
dev:8062019-09-24 13:29:20.036 errorgroovy.lang.MissingMethodException: No signature of method: hubitat.zwave.Zwave.commandClass() is applicable for argument types: (java.lang.Short, java.lang.Integer) values: [50, 3] on line 300 (parse)
The log messages would be caused by log.debug lines in the driver or the debug switch on the driver's page in Drivers.
As for the MissingMethodException, I think if you change hubitat.zwave.Zwave.commandClass() to just hubitat.zwave.commandClass(), it might work properly.
I'm not 100% sure of that though.
Thanks.. I'll take out some of the debug statements.
It's reporting this issue
errorgroovy.lang.MissingMethodException: No signature of method: hubitat.zwave.Zwave.commandClass() is applicable for argument types: (java.lang.Short, java.lang.Integer) values: [50, 3] on line 300 (parse)
this line is coded on line 300.
def ccObj = version ? zwave.commandClass(cmd.commandClass, version) : zwave.commandClass(cmd.commandClass)
How should I change this?
Not sure? Do you have a link to the full driver code? It looks like the zwave variable may not be instanced properly.
From what I can see, Hubitat's implementation of the ZWave class doesn't include commandClass as a constructor. There is the getCommand() method which returns a command, though. The docs from HE are really light, so not much help there.
https://docs.hubitat.com/index.php?title=Zwave_Object
I'm not sure how to fix it though (my strength is in Zigbee coding). If I remember correctly, @aaron is pretty good with ZWave (I think?) and of course, @mike.maxwell.
If someone wants to have a crack at this, I'm happy to be the tester.
getCommand is what you want, there is a specific example in that link on how to extract a crc16 command.
That example presumes you want to return a command class version 1 command instance for all command classes you expect to extract, if not you'll need to do something along these lines:
private getCommandClassVersions() {
[
0x22: 1, // ApplicationStatus
0x55: 1, // TransportServices
0x59: 1, // AssociationGrpInfo
0x5A: 1, // DeviceResetLocally
0x5B: 3, // CentralScene
0x5E: 2, // ZwaveplusInfo
0x70: 1, // Configuration
0x71: 3, // Notification
0x72: 2, // ManufacturerSpecific
0x73: 1, // Powerlevel
0x75: 2, // Protection
0x7A: 2, // FirmwareUpdateMd
0x80: 1, // Battery
0x84: 2, // WakeUp
0x85: 2, // Association
0x86: 1, // Version
0x8E: 2, // MultiChannelAssociation
0x98: 1, // Security
0x9C: 1 // SecurityS2
]
}
def zwaveEvent(hubitat.zwave.commands.crc16encapv1.Crc16Encap cmd) {
def result = []
def cmdVersion = commandClassVersions.find { it.key == cmd.commandClass }?.value ?: 1
def encapCmd = zwave.getCommand(cmd.commandClass, cmd.command, cmd.data, cmdVersion)
if (encapCmd) {
result += zwaveEvent(encapCmd)
} else {
log.warn "Unable to extract CRC16 command from ${cmd}"
}
return result
}
1 Like
And another snippet I need to bookmark. LOL
Right.. i have got something to work.. but every now and then I get
2019-10-08 06:17:28.481 errorgroovy.lang.MissingMethodException: No signature of method: user_driver_cattivik66_Qubino_Smart_Meter_481.logging() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, java.lang.String) values: [Unable to extract MultiChannel command from MultiChannelCmdEncap(bitAddress:false, command:0, commandClass:0, destinationEndPoint:0, parameter:[], res01:false, sourceEndPoint:0), ...]
Possible solutions: toString(), toString(), toString() on line 283 (parse)
dev:8062019-10-08 06:17:28.413 errorgroovy.lang.MissingMethodException: No signature of method: user_driver_cattivik66_Qubino_Smart_Meter_481.logging() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, java.lang.String) values: [Unable to extract MultiChannel command from MultiChannelCmdEncap(bitAddress:false, command:0, commandClass:0, destinationEndPoint:0, parameter:[], res01:false, sourceEndPoint:0), ...]
Possible solutions: toString(), toString(), toString() on line 283 (parse)
dev:8062019-10-08 06:17:26.291 errorgroovy.lang.MissingMethodException: No signature of method: user_driver_cattivik66_Qubino_Smart_Meter_481.logging() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, java.lang.String) values: [Unable to extract MultiChannel command from MultiChannelCmdEncap(bitAddress:false, command:0, commandClass:0, destinationEndPoint:0, parameter:[], res01:false, sourceEndPoint:0), ...]
Possible solutions: toString(), toString(), toString() on line 283 (parse)
After this it appears all zwave activity stops and the only solution is to power down the Hub , power cycle the unit and then it all starts working again...
Did anybody get the Qubino Smart Meter to work ?
Would be a nice Device....
Hi,
I'm trying to make the Qubino Smart Meter's (ZMNHTD1) switch function to work. I did not have any success with the cattivik6's driver or the Hubitats inbuilt (Qubino Smart Meter) driver. The load metering works but not the switch. And for me the switch would be more important than the monitoring.
Qubino has published this child handler for Smart things but I didn't have any luck with that either. https://raw.githubusercontent.com/erocm123/SmartThingsPublic/master/devicetypes/erocm123/metering-switch-child-device.src/metering-switch-child-device.groovy