How to detect that Nest is actively ON?

I am looking to have more visibility of the use of my Nest Thermostat. I would like to have a running persistence that tells me when the thermostat is running or not so I can also find out how quickly my home temperature will come to the set point. Or how long, in seconds, it has been running for.

You know, the geek level of detail that some of us crave…

I know that home.Nest tells me the total time it has run, and when approximately during the day it had been running. However, I want the historical data… again, at geek level.

I checked the binding description and I see all of the switches, but none of them indicate the current ON state. Any help would be appreciated.

“ON” doesn’t really make sense for hvac. You can have the fan ON, heat ON, or cooling ON but it doesn’t make sense to just have ON.

I think the hvac_state tells you when one of these is running though and you should be able to use that on a switch (or a rule to control a proxy switch that you persist and chart).

In this case it would be Fan ON, while either Heat or Cool is on. That can be simple enough with an AND statement, but:

Switch NestTStatUpstairs_is_using_emergency_heat “Is using emergency heat [%s]” {nest="<[thermostats(Upstairs).is_using_emergency_heat]"}
Switch NestTStatUpstairs_has_fan “Has Fan [%s]” {nest="<[thermostats(Upstairs).has_fan]"}
Switch NestTStatUpstairs_can_heat “Can Heat [%s]” {nest="<[thermostats(Upstairs).can_heat]"}
Switch NestTStatUpstairs_can_cool “Can Cool [%s]” {nest="<[thermostats(Upstairs).can_cool]"}
String NestTStatUpstairs_hvac_mode “HVAC Mode [%s]” {nest="=[thermostats(Upstairs).hvac_mode]"}

There is no Fan ON status…


I think you can only tell if the fan is running independently (i.e. on a timer).

I think you will have to experiment with what values you get from hvac_state and identify those that correspond with ON in your definition.