Broken IndicatorReport in 2.1.8.115?

CC @bravenel

I just updated to 2.1.8, and it's broken a driver that depends on IndicatorReport:

def zwaveEvent(hubitat.zwave.commands.indicatorv1.IndicatorReport cmd) {
def indicatorValue = cmd.value

cmd.value is now returning null, instead of a usable value. Can you look into this?

Can you post the text being sent to parse?

Ok, the parse(string description) function gets a description of:

zw device: 14, command: 8703, payload: 03 , isMulticast: false

Then I'm doing: def cmd = zwave.parse(description)

When I log cmd, it's: IndicatorReport(value:null, indicatorCount:null, indicatorValues:[])

The most immediate fix for this is going to be to force the parsing in your driver to use the command class version that your driver has implemented. This is best practice as well.

zwave.parse(description,[0x87:1])
2 Likes

That fixed it! So is the second parameter the version number? Like, this is an IndicatorReportV1?

For (my) future reference, I found the hex values for the command classes listed out here:
http://wiki.micasaverde.com/index.php/ZWave_Command_Classes

Also, any idea why 2.1.8 stopped inferring it correctly and has to be told now? I saw in the release notes something about indicatorV3. Was that it?

Yes

Yes

I argue you should always hard code the command versions in the driver to match the device command support levels.

But that said, sometimes I get lazy and don't do that either. :slight_smile:

One of the benefits of being a hobbiest, and not doing drivers for a living/pay, is that I can be lazy or inconsistent if I feel like it. Lol

3 Likes

Thanks! Good to know.