Any one using one of these Qubino Smart Meter

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.

Sorry I thought I had..
Try this https://raw.githubusercontent.com/cattivik66/SmartThingsPublic/master/devicetypes/cattivik66/qubino-smart-meter.src/qubino-smart-meter.groovy

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....

I have it working fine. Try this SmartThingsPublic/qubino-smart-meter.groovy at master ยท cattivik66/SmartThingsPublic ยท GitHub

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