Simple RULE to adjust thermostat based on outdoor temp

Just wanted to share a RULE I am working on…

I have a hybrid HVAC system that is controlled by an Ecobee thermostat. Normally, the heat is set to 68F degrees. My wife complains that it sometimes feels warmer outside than inside the house. I told her to turn the heat up whenever it’s fairly warm out because of the efficient heat pump. After thinking about it, I decided to automate that with a RULE. (If it’s bedtime or the outdoor temp gets too cold, the thermostat is reset to normal programming)

var DecimalType desiredHeatTemp
var DecimalType desiredCoolTemp
var boolean override_active = false

rule "Boost heat if warm out"

	Item OutdoorTemperature received update

    val otemp = OutdoorTemperature.state as DecimalType
    val climate = currentClimateRef.state.toString() as String
    val ds_event = DownstairsEvent.state.toString() as String
	if ((otemp > 50 && otemp < 70) && !override_active && ds_event != "vacation" && climate == "home")
		override_active = true
		desiredCoolTemp = new DecimalType(80)
		desiredHeatTemp = new DecimalType(71)
		sendBroadcastNotification("Start daytime heat boost")					
		ecobeeSetHold("4xxxxxxxxxxx", desiredCoolTemp, desiredHeatTemp, null, null, null, null, null)	
		if (((otemp <= 50 || otemp >= 70) && override_active) || (climate == "sleep" && override_active))
			sendBroadcastNotification("Stop daytime heat boost")
			override_active = false
			ecobeeResumeProgram("4xxxxxxxxxxx", true)

Thanks for sharing but your code is incomplete… :frowning_face: