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"
when
Item OutdoorTemperature received update
then
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)
}
else
{
if (((otemp <= 50 || otemp >= 70) && override_active) || (climate == "sleep" && override_active))
{
sendBroadcastNotification("Stop daytime heat boost")
override_active = false
ecobeeResumeProgram("4xxxxxxxxxxx", true)
}
}