diff --git a/devicetypes/smartthings/smartsense-moisture-sensor.src/smartsense-moisture-sensor.groovy b/devicetypes/smartthings/smartsense-moisture-sensor.src/smartsense-moisture-sensor.groovy index f214cbd..b426cd8 100644 --- a/devicetypes/smartthings/smartsense-moisture-sensor.src/smartsense-moisture-sensor.groovy +++ b/devicetypes/smartthings/smartsense-moisture-sensor.src/smartsense-moisture-sensor.groovy @@ -202,48 +202,37 @@ private Map getBatteryResult(rawValue) { log.debug "Battery rawValue = ${rawValue}" def linkText = getLinkText(device) - def result = [ - name: 'battery', - value: '--', - translatable: true - ] + def result = [:] def volts = rawValue / 10 - if (rawValue == 0 || rawValue == 255) {} - else { - if (volts > 3.5) { - result.descriptionText = "{{ device.displayName }} battery has too much power: (> 3.5) volts." - } - else { - if (device.getDataValue("manufacturer") == "SmartThings") { - volts = rawValue // For the batteryMap to work the key needs to be an int - def batteryMap = [28:100, 27:100, 26:100, 25:90, 24:90, 23:70, - 22:70, 21:50, 20:50, 19:30, 18:30, 17:15, 16:1, 15:0] - def minVolts = 15 - def maxVolts = 28 + if (!(rawValue == 0 || rawValue == 255)) { + result.name = 'battery' + result.translatable = true + result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" + if (device.getDataValue("manufacturer") == "SmartThings") { + volts = rawValue // For the batteryMap to work the key needs to be an int + def batteryMap = [28: 100, 27: 100, 26: 100, 25: 90, 24: 90, 23: 70, + 22: 70, 21: 50, 20: 50, 19: 30, 18: 30, 17: 15, 16: 1, 15: 0] + def minVolts = 15 + def maxVolts = 28 - if (volts < minVolts) - volts = minVolts - else if (volts > maxVolts) - volts = maxVolts - def pct = batteryMap[volts] - if (pct != null) { - result.value = pct - result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" - } - } - else { - def minVolts = 2.1 - def maxVolts = 3.0 - def pct = (volts - minVolts) / (maxVolts - minVolts) - def roundedPct = Math.round(pct * 100) - if (roundedPct <= 0) - roundedPct = 1 - result.value = Math.min(100, roundedPct) - result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" - } + if (volts < minVolts) + volts = minVolts + else if (volts > maxVolts) + volts = maxVolts + def pct = batteryMap[volts] + result.value = pct + } else { + def minVolts = 2.1 + def maxVolts = 3.0 + def pct = (volts - minVolts) / (maxVolts - minVolts) + def roundedPct = Math.round(pct * 100) + if (roundedPct <= 0) + roundedPct = 1 + result.value = Math.min(100, roundedPct) } + } return result diff --git a/devicetypes/smartthings/smartsense-motion-sensor.src/smartsense-motion-sensor.groovy b/devicetypes/smartthings/smartsense-motion-sensor.src/smartsense-motion-sensor.groovy index d02d41d..de99678 100644 --- a/devicetypes/smartthings/smartsense-motion-sensor.src/smartsense-motion-sensor.groovy +++ b/devicetypes/smartthings/smartsense-motion-sensor.src/smartsense-motion-sensor.groovy @@ -220,48 +220,35 @@ private Map getBatteryResult(rawValue) { log.debug "Battery rawValue = ${rawValue}" def linkText = getLinkText(device) - def result = [ - name: 'battery', - value: '--', - translatable: true - ] + def result = [:] def volts = rawValue / 10 - if (rawValue == 0 || rawValue == 255) {} - else { - if (volts > 3.5) { - result.descriptionText = "{{ device.displayName }} battery has too much power: (> 3.5) volts." - } - else { - if (device.getDataValue("manufacturer") == "SmartThings") { - volts = rawValue // For the batteryMap to work the key needs to be an int - def batteryMap = [28:100, 27:100, 26:100, 25:90, 24:90, 23:70, - 22:70, 21:50, 20:50, 19:30, 18:30, 17:15, 16:1, 15:0] - def minVolts = 15 - def maxVolts = 28 + if (!(rawValue == 0 || rawValue == 255)) { + result.name = 'battery' + result.translatable = true + result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" + if (device.getDataValue("manufacturer") == "SmartThings") { + volts = rawValue // For the batteryMap to work the key needs to be an int + def batteryMap = [28: 100, 27: 100, 26: 100, 25: 90, 24: 90, 23: 70, + 22: 70, 21: 50, 20: 50, 19: 30, 18: 30, 17: 15, 16: 1, 15: 0] + def minVolts = 15 + def maxVolts = 28 - if (volts < minVolts) - volts = minVolts - else if (volts > maxVolts) - volts = maxVolts - def pct = batteryMap[volts] - if (pct != null) { - result.value = pct - def value = pct - result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" - } - } - else { - def minVolts = 2.1 - def maxVolts = 3.0 - def pct = (volts - minVolts) / (maxVolts - minVolts) - def roundedPct = Math.round(pct * 100) - if (roundedPct <= 0) - roundedPct = 1 - result.value = Math.min(100, roundedPct) - result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" - } + if (volts < minVolts) + volts = minVolts + else if (volts > maxVolts) + volts = maxVolts + def pct = batteryMap[volts] + result.value = pct + } else { + def minVolts = 2.1 + def maxVolts = 3.0 + def pct = (volts - minVolts) / (maxVolts - minVolts) + def roundedPct = Math.round(pct * 100) + if (roundedPct <= 0) + roundedPct = 1 + result.value = Math.min(100, roundedPct) } } diff --git a/devicetypes/smartthings/smartsense-motion-temp-sensor.src/smartsense-motion-temp-sensor.groovy b/devicetypes/smartthings/smartsense-motion-temp-sensor.src/smartsense-motion-temp-sensor.groovy index 6146673..057ec7e 100644 --- a/devicetypes/smartthings/smartsense-motion-temp-sensor.src/smartsense-motion-temp-sensor.groovy +++ b/devicetypes/smartthings/smartsense-motion-temp-sensor.src/smartsense-motion-temp-sensor.groovy @@ -188,29 +188,20 @@ private Map getBatteryResult(rawValue) { log.debug rawValue - def result = [ - name: 'battery', - value: '--' - ] + def result = [:] def volts = rawValue / 10 - def descriptionText - if (rawValue == 0 || rawValue == 255) {} - else { - if (volts > 3.5) { - result.descriptionText = "${linkText} battery has too much power (${volts} volts)." - } - else if (volts > 0){ - def minVolts = 2.1 - def maxVolts = 3.0 - def pct = (volts - minVolts) / (maxVolts - minVolts) - def roundedPct = Math.round(pct * 100) - if (roundedPct <= 0) - roundedPct = 1 - result.value = Math.min(100, roundedPct) - result.descriptionText = "${linkText} battery was ${result.value}%" - } + if (!(rawValue == 0 || rawValue == 255)) { + def minVolts = 2.1 + def maxVolts = 3.0 + def pct = (volts - minVolts) / (maxVolts - minVolts) + def roundedPct = Math.round(pct * 100) + if (roundedPct <= 0) + roundedPct = 1 + result.name = 'battery' + result.value = Math.min(100, roundedPct) + result.descriptionText = "${linkText} battery was ${result.value}%" } return result diff --git a/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy b/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy index 94104b9..bc8092d 100644 --- a/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy +++ b/devicetypes/smartthings/smartsense-multi-sensor.src/smartsense-multi-sensor.groovy @@ -281,47 +281,35 @@ def getTemperature(value) { private Map getBatteryResult(rawValue) { log.debug "Battery rawValue = ${rawValue}" - def result = [ - name: 'battery', - value: '--', - translatable: true - ] + def result = [:] def volts = rawValue / 10 - if (rawValue == 0 || rawValue == 255) {} - else { - if (volts > 3.5) { - result.descriptionText = "{{ device.displayName }} battery has too much power: (> 3.5) volts." - } - else { - if (device.getDataValue("manufacturer") == "SmartThings") { - volts = rawValue // For the batteryMap to work the key needs to be an int - def batteryMap = [28:100, 27:100, 26:100, 25:90, 24:90, 23:70, - 22:70, 21:50, 20:50, 19:30, 18:30, 17:15, 16:1, 15:0] - def minVolts = 15 - def maxVolts = 28 + if (!(rawValue == 0 || rawValue == 255)) { + result.name = 'battery' + result.translatable = true + result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" + if (device.getDataValue("manufacturer") == "SmartThings") { + volts = rawValue // For the batteryMap to work the key needs to be an int + def batteryMap = [28: 100, 27: 100, 26: 100, 25: 90, 24: 90, 23: 70, + 22: 70, 21: 50, 20: 50, 19: 30, 18: 30, 17: 15, 16: 1, 15: 0] + def minVolts = 15 + def maxVolts = 28 - if (volts < minVolts) - volts = minVolts - else if (volts > maxVolts) - volts = maxVolts - def pct = batteryMap[volts] - if (pct != null) { - result.value = pct - result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" - } - } - else { - def minVolts = 2.1 - def maxVolts = 3.0 - def pct = (volts - minVolts) / (maxVolts - minVolts) - def roundedPct = Math.round(pct * 100) - if (roundedPct <= 0) - roundedPct = 1 - result.value = Math.min(100, roundedPct) - result.descriptionText = "{{ device.displayName }} battery was {{ value }}%" - } + if (volts < minVolts) + volts = minVolts + else if (volts > maxVolts) + volts = maxVolts + def pct = batteryMap[volts] + result.value = pct + } else { + def minVolts = 2.1 + def maxVolts = 3.0 + def pct = (volts - minVolts) / (maxVolts - minVolts) + def roundedPct = Math.round(pct * 100) + if (roundedPct <= 0) + roundedPct = 1 + result.value = Math.min(100, roundedPct) } } diff --git a/devicetypes/smartthings/smartsense-open-closed-accelerometer-sensor.src/smartsense-open-closed-accelerometer-sensor.groovy b/devicetypes/smartthings/smartsense-open-closed-accelerometer-sensor.src/smartsense-open-closed-accelerometer-sensor.groovy index 9af4f2d..d7178dd 100644 --- a/devicetypes/smartthings/smartsense-open-closed-accelerometer-sensor.src/smartsense-open-closed-accelerometer-sensor.groovy +++ b/devicetypes/smartthings/smartsense-open-closed-accelerometer-sensor.src/smartsense-open-closed-accelerometer-sensor.groovy @@ -187,35 +187,31 @@ def getTemperature(value) { } } - private Map getBatteryResult(rawValue) { - log.debug 'Battery' - def linkText = getLinkText(device) +private Map getBatteryResult(rawValue) { + log.debug 'Battery' + def linkText = getLinkText(device) - def result = [ - name: 'battery' - ] + def result = [:] - def volts = rawValue / 10 - def descriptionText - if (rawValue == 0 || rawValue == 255) {} - else if (volts > 3.5) { - result.descriptionText = "${linkText} battery has too much power (${volts} volts)." - } - else { - def minVolts = 2.1 - def maxVolts = 3.0 - def pct = (volts - minVolts) / (maxVolts - minVolts) - def roundedPct = Math.round(pct * 100) - if (roundedPct <= 0) - roundedPct = 1 - result.value = Math.min(100, roundedPct) - result.descriptionText = "${linkText} battery was ${result.value}%" - } + def volts = rawValue / 10 + + if (!(rawValue == 0 || rawValue == 255)) { + def minVolts = 2.1 + def maxVolts = 3.0 + def pct = (volts - minVolts) / (maxVolts - minVolts) + def roundedPct = Math.round(pct * 100) + if (roundedPct <= 0) + roundedPct = 1 + result.name = 'battery' + result.value = Math.min(100, roundedPct) + result.descriptionText = "${linkText} battery was ${result.value}%" - return result } - private Map getTemperatureResult(value) { + return result +} + +private Map getTemperatureResult(value) { log.debug 'TEMP' def linkText = getLinkText(device) if (tempOffset) { diff --git a/devicetypes/smartthings/smartsense-open-closed-sensor.src/smartsense-open-closed-sensor.groovy b/devicetypes/smartthings/smartsense-open-closed-sensor.src/smartsense-open-closed-sensor.groovy index 7d411f5..8e697f1 100644 --- a/devicetypes/smartthings/smartsense-open-closed-sensor.src/smartsense-open-closed-sensor.groovy +++ b/devicetypes/smartthings/smartsense-open-closed-sensor.src/smartsense-open-closed-sensor.groovy @@ -196,25 +196,19 @@ private Map getBatteryResult(rawValue) { log.debug 'Battery' def linkText = getLinkText(device) - def result = [ - name: 'battery' - ] + def result = [:] def volts = rawValue / 10 - def descriptionText - if (rawValue == 0 || rawValue == 255) {} - else if (volts > 3.5) { - result.descriptionText = "${linkText} battery has too much power (${volts} volts)." - } - else { + if (!(rawValue == 0 || rawValue == 255)) { def minVolts = 2.1 - def maxVolts = 3.0 + def maxVolts = 3.0 def pct = (volts - minVolts) / (maxVolts - minVolts) def roundedPct = Math.round(pct * 100) if (roundedPct <= 0) roundedPct = 1 result.value = Math.min(100, roundedPct) result.descriptionText = "${linkText} battery was ${result.value}%" + result.name = 'battery' } return result diff --git a/devicetypes/smartthings/smartsense-temp-humidity-sensor.src/smartsense-temp-humidity-sensor.groovy b/devicetypes/smartthings/smartsense-temp-humidity-sensor.src/smartsense-temp-humidity-sensor.groovy index 98af1a4..0caa602 100644 --- a/devicetypes/smartthings/smartsense-temp-humidity-sensor.src/smartsense-temp-humidity-sensor.groovy +++ b/devicetypes/smartthings/smartsense-temp-humidity-sensor.src/smartsense-temp-humidity-sensor.groovy @@ -207,25 +207,20 @@ private Map getBatteryResult(rawValue) { log.debug 'Battery' def linkText = getLinkText(device) - def result = [ - name: 'battery' - ] + def result = [:] def volts = rawValue / 10 - def descriptionText - if (rawValue == 0 || rawValue == 255) {} - else if (volts > 3.5) { - result.descriptionText = "${linkText} battery has too much power (${volts} volts)." - } - else { + if (!(rawValue == 0 || rawValue == 255)) { def minVolts = 2.1 - def maxVolts = 3.0 + def maxVolts = 3.0 def pct = (volts - minVolts) / (maxVolts - minVolts) def roundedPct = Math.round(pct * 100) - if (roundedPct <= 0) - roundedPct = 1 + if (roundedPct <= 0) + roundedPct = 1 result.value = Math.min(100, roundedPct) result.descriptionText = "${linkText} battery was ${result.value}%" + result.name = 'battery' + } return result diff --git a/devicetypes/smartthings/tyco-door-window-sensor.src/tyco-door-window-sensor.groovy b/devicetypes/smartthings/tyco-door-window-sensor.src/tyco-door-window-sensor.groovy index 98f75a0..95238d4 100644 --- a/devicetypes/smartthings/tyco-door-window-sensor.src/tyco-door-window-sensor.groovy +++ b/devicetypes/smartthings/tyco-door-window-sensor.src/tyco-door-window-sensor.groovy @@ -181,22 +181,17 @@ private Map getBatteryResult(rawValue) { log.debug 'Battery' def linkText = getLinkText(device) - def result = [ - name: 'battery' - ] + def result = [:] - def volts = rawValue / 10 - def descriptionText - if (volts > 3.5) { - result.descriptionText = "${linkText} battery has too much power (${volts} volts)." - } - else { + if (!(rawValue == 0 || rawValue == 255)) { + def volts = rawValue / 10 def minVolts = 2.1 - def maxVolts = 3.0 + def maxVolts = 3.0 def pct = (volts - minVolts) / (maxVolts - minVolts) def roundedPct = Math.round(pct * 100) result.value = Math.min(100, roundedPct) result.descriptionText = "${linkText} battery was ${result.value}%" + result.name = 'battery' } return result