mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-13 05:11:51 +00:00
DVCSMP-2573: Acceleration axis validation (Multi sensor DTH)
In certain cases the SmartSense Multi Sensors are missing the Y and Z axis, causing an exception during .parseAxis(). This change checks that all 3 axis are present before processing the rest of the message.
This commit is contained in:
@@ -192,6 +192,10 @@ private List<Map> parseAxis(List<Map> attrData) {
|
||||
def y = hexToSignedInt(attrData.find { it.attrInt == 0x0013 }?.value)
|
||||
def z = hexToSignedInt(attrData.find { it.attrInt == 0x0014 }?.value)
|
||||
|
||||
if ([x, y ,z].any { it == null }) {
|
||||
return []
|
||||
}
|
||||
|
||||
def xyzResults = [:]
|
||||
if (device.getDataValue("manufacturer") == "SmartThings") {
|
||||
// This mapping matches the current behavior of the Device Handler for the Centralite sensors
|
||||
@@ -372,6 +376,10 @@ def updated() {
|
||||
}
|
||||
|
||||
private hexToSignedInt(hexVal) {
|
||||
if (!hexVal) {
|
||||
return null
|
||||
}
|
||||
|
||||
def unsignedVal = hexToInt(hexVal)
|
||||
unsignedVal > 32767 ? unsignedVal - 65536 : unsignedVal
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user