I have observed two things that suggest that there might be a bug in either the zwave.parse() function or in the hubitat.zwave.commands.meterpulsev1.MeterPulseReport class.
- Within device driver code, the expression
zwave.parse("zw device: 0A, command: 3505, payload: 00 00 00 07 , isMulticast: false", [0x35: 1]).getPayload()
evaluates to an empty array, whereas I would have expected it to evaluate to an array of Shorts containing the values 0,0,0,7. There is nothing special about this particular payload; the unexpected behavior seems to occur in all cases, regardless of the value of the payload.
- Within device driver code, the expression
zwave.parse("zw device: 0A, command: 3505, payload: 00 00 00 07 , isMulticast: false", [0x35: 1]).pulseCount
evaluates to null, whereas I would have expected to evaluate to the integer 7. Again, There is nothing special about this particular payload; the unexpected behavior seems to occur in all cases, regardless of the value of the payload.
This bug is complicating my efforts to write a device driver for a zwave device that implements the zwave "Meter Pulse V1" command class. The string that is passed as the argument to the zwave.parse() function in the expressions above is one that I observed the Hubitat platform passing as an argument to my device driver's parse() function while testing.