Some nodes not reporting battery level

Yes, I saw the comment in the code, too. How nice that they released the specs. :thumbsup:

Thanks!

Interesting result. I think I might understand what’s happening. Let me know what you think.

Notice there’s only 1 SENSOR_MULTILEVEL_GET. Is that because the second one was a duplicate to the first one (since there’s now no sensor type in the message to make them unique)? I think these log entries might confirm that (notice the line about message already on the queue).

2016-09-14 19:33:27.714 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling...
2016-09-14 19:33:27.715 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:sensor_relhumidity
2016-09-14 19:33:27.715 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 7: Generating poll message for SENSOR_MULTILEVEL, endpoint 0
2016-09-14 19:33:27.716 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Creating new message for command SENSOR_MULTI_LEVEL_GET
2016-09-14 19:33:27.717 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:sensor_temperature
2016-09-14 19:33:27.718 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 7: Generating poll message for SENSOR_MULTILEVEL, endpoint 0
2016-09-14 19:33:27.718 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Creating new message for command SENSOR_MULTI_LEVEL_GET
2016-09-14 19:33:27.719 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:alarm_co2
2016-09-14 19:33:27.720 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:alarm_smoke
2016-09-14 19:33:27.721 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:battery-level
2016-09-14 19:33:27.721 [DEBUG] [rnal.converter.ZWaveBatteryConverter] - NODE 7: Generating poll message for BATTERY endpoint 0
2016-09-14 19:33:27.721 [DEBUG] [ommandclass.ZWaveBatteryCommandClass] - NODE 7: Creating new message for application command BATTERY_GET
2016-09-14 19:33:27.722 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:sensor_temperature1
2016-09-14 19:33:27.722 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 7: Generating poll message for SENSOR_MULTILEVEL, endpoint 1
2016-09-14 19:33:27.722 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Creating new message for command SENSOR_MULTI_LEVEL_GET
2016-09-14 19:33:27.722 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 7: Encapsulating message, instance / endpoint 1
2016-09-14 19:33:27.723 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 7: Creating new message for command MULTI_CHANNEL_ENCAP endpoint 1
2016-09-14 19:33:27.723 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling zwave:device:154acc671d8:node7:sensor_relhumidity2
2016-09-14 19:33:27.723 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 7: Generating poll message for SENSOR_MULTILEVEL, endpoint 2
2016-09-14 19:33:27.724 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Creating new message for command SENSOR_MULTI_LEVEL_GET
2016-09-14 19:33:27.724 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 7: Encapsulating message, instance / endpoint 2
2016-09-14 19:33:27.724 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 7: Creating new message for command MULTI_CHANNEL_ENCAP endpoint 2
2016-09-14 19:33:27.725 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 7: Putting message SendData in wakeup queue.
2016-09-14 19:33:27.725 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 7: Message already on the wake-up queue. Removing original.
2016-09-14 19:33:27.725 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 7: Putting message SendData in wakeup queue.
2016-09-14 19:33:27.725 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 7: Putting message SendData in wakeup queue.
2016-09-14 19:33:27.726 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 7: Putting message SendData in wakeup queue.
2016-09-14 19:33:27.726 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 7: Putting message SendData in wakeup queue.

The device seems to respond with two SENSOR_MULTILEVEL_REPORTs – one for temp and one for humidity. I guess we should’ve expected that? How will the new transaction code deal with that?

There’s now a BATTERY_REPORT, which is good!

The rest is confusing.

  • EP1 gets an encapsulated temp report, which looks correct.
  • EP2 gets a humidity report, but it’s not encapsulated like the temp report. That’s odd.

All in all, not perfect, but much better than before.

Here’s the full log in case you want to look at it.
https://drive.google.com/open?id=0Bwmcwu6ccTd_VE04STBBVFc2c0k