Ecobee Binding - Determine which mode HVAC system is running in

I currently run one of my Ecobee thermostats in auto mode and I would like to know when the AC and furnace are running to trigger some rules. The “settings.hvacMode” item only shows “auto” (which is fine). But is there a way to tell if the AC or furnace is running? Short of that, it would help to even know if the system is running either one, from which I could determine whether it is AC or furnace by comparing the current temperature to the set points.

I think you are looking for equipmentStatus:

String equipmentStatus "equipmentStatus [%s]" { ecobee="<[123456789012#equipmentStatus]" }

Take a look at the API page for specific values that can be present in the item state. You could write a rule like this:

rule Equipment
when
  Item equipmentStatus changed
then
  ACisRunning.postUpdate(if (equipmentStatus.state.toString.contains("compCool1")) ON else OFF)
  FurnaceIsRunning.postUpdate(if (equipmentStatus.state.toString.contains("auxHeat1")) ON else OFF)
end

Awesome, thank you. I have two Ecobees on the same floor and for certain reasons, I keep the set points too close on one of the thermostats to use Auto mode. So I am going to have it transition between modes based on when the other Ecobee in Auto mode fires up the furnace or AC.

1 Like

For those of you interested, the rule is below (the dining room Ecobee runs in auto and the kitchen Ecobee is changed based on the dining room equipment status):

rule "Downstairs HVAC Sync"
when
Item tDiningRoomEquipment changed
then
if (tDiningRoomEquipment.state.toString.contains(“compCool1”) && tKitchenhvacMode.state == “heat”) {
sendCommand(tKitchenhvacMode,“cool”)
pushover(“Kitchen HVAC has transitioned from heating mode to cooling.”)
}
else if (tDiningRoomEquipment.state.toString.contains(“auxHeat1”) && tKitchenhvacMode.state == “cool”) {
sendCommand(tKitchenhvacMode,“heat”)
pushover(“Kitchen HVAC has transitioned from cooling mode to heating.”)
}
end

1 Like