Compare commits

...

4 Commits

Author SHA1 Message Date
Vinay Rao
eb4d5dcfb8 Merge pull request #1613 from SmartThingsCommunity/staging
Rolling down staging hotfix to master
2017-01-24 13:19:33 -08:00
Vinay Rao
6385443f20 Merge pull request #1612 from SmartThingsCommunity/production
Rolling down production hotfix to staging
2017-01-24 12:48:34 -08:00
Juan Pablo Risso
445c115c14 DVCSMP-2324 - Centralite Thermostat handle multiple attributes (#1606)
- Curly braces
- remove parseDescriptionAsMap
- descMap to it
- Appended to the result list
- Convert to list and appended
2017-01-20 17:49:15 -05:00
Vinay Rao
bd3367fe0e Merge pull request #1598 from SmartThingsCommunity/staging
Rolling down staging to master
2017-01-18 15:18:08 -08:00

View File

@@ -81,51 +81,47 @@ metadata {
// parse events into attributes
def parse(String description) {
log.debug "Parse description $description"
def map = [:]
if (description?.startsWith("read attr -")) {
def descMap = parseDescriptionAsMap(description)
log.debug "Desc Map: $descMap"
if (descMap.cluster == "0201" && descMap.attrId == "0000") {
List result = []
def descMap = zigbee.parseDescriptionAsMap(description)
log.debug "Desc Map: $descMap"
List attrData = [[cluster: descMap.cluster ,attrId: descMap.attrId, value: descMap.value]]
descMap.additionalAttrs.each {
attrData << [cluster: descMap.cluster, attrId: it.attrId, value: it.value]
}
attrData.each {
def map = [:]
if (it.cluster == "0201" && it.attrId == "0000") {
log.debug "TEMP"
map.name = "temperature"
map.value = getTemperature(descMap.value)
map.value = getTemperature(it.value)
map.unit = temperatureScale
} else if (descMap.cluster == "0201" && descMap.attrId == "0011") {
} else if (it.cluster == "0201" && it.attrId == "0011") {
log.debug "COOLING SETPOINT"
map.name = "coolingSetpoint"
map.value = getTemperature(descMap.value)
map.value = getTemperature(it.value)
map.unit = temperatureScale
} else if (descMap.cluster == "0201" && descMap.attrId == "0012") {
} else if (it.cluster == "0201" && it.attrId == "0012") {
log.debug "HEATING SETPOINT"
map.name = "heatingSetpoint"
map.value = getTemperature(descMap.value)
map.value = getTemperature(it.value)
map.unit = temperatureScale
} else if (descMap.cluster == "0201" && descMap.attrId == "001c") {
} else if (it.cluster == "0201" && it.attrId == "001c") {
log.debug "MODE"
map.name = "thermostatMode"
map.value = getModeMap()[descMap.value]
} else if (descMap.cluster == "0202" && descMap.attrId == "0000") {
map.value = getModeMap()[it.value]
} else if (it.cluster == "0202" && it.attrId == "0000") {
log.debug "FAN MODE"
map.name = "thermostatFanMode"
map.value = getFanModeMap()[descMap.value]
map.value = getFanModeMap()[it.value]
}
if (map) {
result << createEvent(map)
}
log.debug "Parse returned $map"
}
def result = null
if (map) {
result = createEvent(map)
}
log.debug "Parse returned $map"
return result
}
def parseDescriptionAsMap(description) {
(description - "read attr - ").split(",").inject([:]) { map, param ->
def nameAndValue = param.split(":")
map += [(nameAndValue[0].trim()):nameAndValue[1].trim()]
}
}
def getModeMap() { [
"00":"off",
"03":"cool",