@@ -298,12 +298,17 @@ void resumeProgram() {
298298 def deviceId = device. deviceNetworkId. split(/ \. / ). last()
299299 if (parent. resumeProgram(deviceId)) {
300300 sendEvent(" name" :" thermostat" , " value" :" setpoint is updating" , " description" :statusText, displayed : false )
301- sendEvent(" name" :" resumeProgram" , " value" :" resume" , descriptionText : " resumeProgram is done" , displayed : false , isStateChange : true )
302301 } else {
303- sendEvent(" name" :" thermostat" , " value" :" failed resume click refresh " , " description" :statusText, displayed : false )
302+ sendEvent(" name" :" thermostat" , " value" :" resume failed " , " description" :statusText, displayed : false )
304303 log. error " Error resumeProgram() check parent.resumeProgram(deviceId)"
305304 }
306- runIn(5 , " refresh" , [overwrite : true ])
305+ // Prevent double tap and spamming of resume command
306+ runIn(5 , " updateResume" , [overwrite : true ])
307+ }
308+
309+ def updateResume () {
310+ sendEvent(" name" :" resumeProgram" , " value" :" resume" , descriptionText : " resumeProgram is done" , displayed : false , isStateChange : true )
311+ refresh()
307312}
308313
309314def modes () {
@@ -334,9 +339,10 @@ def switchToMode(mode) {
334339 if (! (parent. setMode(((mode == " emergency heat" ) ? " auxHeatOnly" : mode), deviceId))) {
335340 log. warn " Error setting mode:$mode "
336341 // Ensure the DTH tile is reset
337- generateModeEvent( device. currentValue(" thermostatMode" ) )
342+ mode = device. currentValue(" thermostatMode" )
338343 }
339- runIn(5 , " refresh" , [overwrite : true ])
344+ generateModeEvent(mode)
345+ generateStatusEvent()
340346}
341347
342348def switchFanMode () {
@@ -356,9 +362,9 @@ def switchToFanMode(fanMode) {
356362 if (! (parent. setFanMode(heatingSetpoint, coolingSetpoint, deviceId, sendHoldType, fanMode))) {
357363 log. warn " Error setting fanMode:fanMode"
358364 // Ensure the DTH tile is reset
359- generateFanModeEvent( device. currentValue(" thermostatFanMode" ) )
365+ fanMode = device. currentValue(" thermostatFanMode" )
360366 }
361- runIn( 5 , " refresh " , [ overwrite : true ] )
367+ generateFanModeEvent(fanMode )
362368}
363369
364370def getDataByName (String name ) {
@@ -522,10 +528,11 @@ def updateSetpoint(data) {
522528 unit : getTemperatureScale(), eventType : " ENTITY_UPDATE" , displayed : false )
523529 sendEvent(" name" : " coolingSetpoint" , " value" : getTempInLocalScale(data. targetCoolingSetpoint, deviceScale),
524530 unit : getTemperatureScale(), eventType : " ENTITY_UPDATE" , displayed : false )
531+ generateStatusEvent()
525532 } else {
526533 log. error " Error updateSetpoint"
534+ runIn(5 , " refresh" , [overwrite : true ])
527535 }
528- runIn(5 , " refresh" , [overwrite : true ])
529536}
530537
531538def generateStatusEvent () {
0 commit comments