codersaur/SmartThings

MissingMethodException for uint24FromBytes(java.util.ArrayList$SubList, java.lang.Integer)

scrool opened this issue · 4 comments

I'm using version 0.08 from date 2017-03-16. After couple of iterations of scanning and setting values I hit Clean Up button. Now when I hit Scan General button I see following in Live logging:

da12f524-995b-43b4-9518-2984f6eef03b  22:13:44: error groovy.lang.MissingMethodException: No signature of method: static physicalgraph.zwave.ZwaveUtils.uint24FromBytes() is applicable for argument types: (java.util.ArrayList$SubList, java.lang.Integer) values: [[0, 56, 64, 1], 0]
Possible solutions: uint24FromBytes(java.util.ArrayList, int) @ line 1550
da12f524-995b-43b4-9518-2984f6eef03b  22:13:43: info Version Report: Application Version: 1.01, Z-Wave Protocol Version: 3.92, Z-Wave Library Type: 03 (Enhanced Slave)
da12f524-995b-43b4-9518-2984f6eef03b  22:13:41: info Powerlevel Report: Power: NormalPower, Timeout: 0
da12f524-995b-43b4-9518-2984f6eef03b  22:13:40: info Manufacturer-Specific Report: Manufacturer ID: 0115, Manufacturer Name: Z-Wave.Me, Product Type ID: 0100, Product ID: 0101
da12f524-995b-43b4-9518-2984f6eef03b  22:13:38: info scanGeneral(): Scanning for common device attributes.

The device is Z-Wave.me Secure Wall Controller. This is what I see I hit Print General button (I have reversed order of log entries):

General Information:
Device Name: Vypínač
Raw Description: zw:Ss type:1801 mfr:0115 prod:0100 model:0101 ver:1.01 zwv:3.92 lib:03 cc:5E,8F,73,98,86,72,70,85,2D,8E,80,84,5A,59,5B ccOut:20,5B,26,27,2B,60 secOut:62 role:04 ff:8B00 ui:8B01
Supported Command Classes: [SCENE_CONTROLLER_CONF (0x2D), ASSOCIATION_GRP_INFO (0x59), DEVICE_RESET_LOCALLY (0x5A), CENTRAL_SCENE (0x5B), ZWAVEPLUS_INFO (0x5E), CONFIGURATION (0x70), MANUFACTURER_SPECIFIC (0x72), POWERLEVEL (0x73), BATTERY (0x80), WAKE_UP (0x84), ASSOCIATION (0x85), VERSION (0x86), MULTI_CHANNEL_ASSOCIATION (0x8E), MULTI_CMD (0x8F), SECURITY (0x98)]
Security: Device is paired securely.
=> Command classes supported with security encapsulation: UNKNOWN (0xNULL)
=> Command classes supported for CONTROL with security encapsulation: UNKNOWN (0xNULL)
Manufacturer ID: 0115
Manufacturer Name: null
Product Type ID: 0100
Product ID: 0101
Firmware Metadata: Firmware ID: null, Checksum: null
Application (Firmware) Version: 1.01
Z-Wave Protocol Version: 3.92
Z-Wave Library Type: 03 (Enhanced Slave)
Powerlevel: NormalPower
Protection Mode: [ Local: null (null), RF: null (null) ]
Switch_All Mode: null (null)

Discovery Stats:
Number of association groups discovered: 5 [Print Assoc Groups]
Number of endpoints discovered: 0 [Print Endpoints]
Number of parameters discovered: 31 [Print Parameters]
Number of unique command types received: 10 [Print Commands]
Number of MeterReport types discovered: 0 [Print Sensor]
Number of NotificationReport types discovered: 0 [Print Sensor]
Number of SensorMultilevelReport types discovered: 0 [Print Sensor]

Interesting, this looks like an issue within the physicalgraph.zwave.commands.securityv1.SecurityMessageEncapsulation class itself. Line 1550 calls the encapsulatedCommand method of this class.

Best to post on the SmartThings community forum and tag Duncan.

In fact, this is already on Duncan's issue list, see here: https://community.smartthings.com/t/wakeupintervalget-doesnt-work-uint24frombytes-missing-from-response/10577/4

Basically, it looks like there is a bug in hysicalgraph.zwave.commands.securityv1.SecurityMessageEncapsulation which means it can't decrypt WakeUpIntervalReports.

So this is an issue with the SmartThings core zwave library, there's nothing I can do to fix it in my device handler.

Thanks! I haven't realized that this could be an issue with the platform.