as Integer causes the temp to be off by 1

This commit is contained in:
Vinay Rao
2015-09-01 13:42:07 -07:00
parent 7ff18e5145
commit 33d9efad23

View File

@@ -153,32 +153,38 @@ def refresh()
//} //}
def getTemperature(value) { def getTemperature(value) {
if (value != null) {
def celsius = Integer.parseInt(value, 16) / 100 def celsius = Integer.parseInt(value, 16) / 100
if (getTemperatureScale() == "C") { if (getTemperatureScale() == "C") {
return celsius return celsius
} else { } else {
return celsiusToFahrenheit(celsius) as Integer return Math.round(celsiusToFahrenheit(celsius))
}
} }
} }
def setHeatingSetpoint(degrees) { def setHeatingSetpoint(degrees) {
if (degrees != null) {
def temperatureScale = getTemperatureScale() def temperatureScale = getTemperatureScale()
def degreesInteger = degrees as Integer def degreesInteger = Math.round(degrees)
log.debug "setHeatingSetpoint({$degreesInteger} ${temperatureScale})" log.debug "setHeatingSetpoint({$degreesInteger} ${temperatureScale})"
sendEvent("name": "heatingSetpoint", "value": degreesInteger) sendEvent("name": "heatingSetpoint", "value": degreesInteger)
def celsius = (getTemperatureScale() == "C") ? degreesInteger : (fahrenheitToCelsius(degreesInteger) as Double).round(2) def celsius = (getTemperatureScale() == "C") ? degreesInteger : (fahrenheitToCelsius(degreesInteger) as Double).round(2)
"st wattr 0x${device.deviceNetworkId} 1 0x201 0x12 0x29 {" + hex(celsius * 100) + "}" "st wattr 0x${device.deviceNetworkId} 1 0x201 0x12 0x29 {" + hex(celsius * 100) + "}"
} }
}
def setCoolingSetpoint(degrees) { def setCoolingSetpoint(degrees) {
def degreesInteger = degrees as Integer if (degrees != null) {
def degreesInteger = Math.round(degrees)
log.debug "setCoolingSetpoint({$degreesInteger} ${temperatureScale})" log.debug "setCoolingSetpoint({$degreesInteger} ${temperatureScale})"
sendEvent("name": "coolingSetpoint", "value": degreesInteger) sendEvent("name": "coolingSetpoint", "value": degreesInteger)
def celsius = (getTemperatureScale() == "C") ? degreesInteger : (fahrenheitToCelsius(degreesInteger) as Double).round(2) def celsius = (getTemperatureScale() == "C") ? degreesInteger : (fahrenheitToCelsius(degreesInteger) as Double).round(2)
"st wattr 0x${device.deviceNetworkId} 1 0x201 0x11 0x29 {" + hex(celsius * 100) + "}" "st wattr 0x${device.deviceNetworkId} 1 0x201 0x11 0x29 {" + hex(celsius * 100) + "}"
} }
}
def modes() { def modes() {
["off", "heat", "cool"] ["off", "heat", "cool"]