We have moved at community.getvera.com

Author Topic: Nest and FanStatus  (Read 3202 times)

Offline CudaNet

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1401
  • Karma: +42/-11
  • Chimichanga !
Nest and FanStatus
« on: June 13, 2013, 03:14:28 pm »
I'm new here and I've had my Vera3 for a little over a month so bare with me.. Interaction between Nest and Vera appears fine but I have a couple of quick questions.

1. From what I can tell, Vera isn't interacting with the Nest thermostat directly (API) - rather indirectly (hence the 120s URL delay ). So am I correct in saying that it's not uncommon to see a 5-10 minute delay between physically observing Nest in a cool/heat 'On' state and seeing this change of state in Vera ?
2. I'm very interested in Fan Status (HVAC failure) but am I correct in stating that a trigger cannot occur within a scene without the use of LUUP code ? It appears ambient, set point and mode are the only available options if you want to use the built-ins. Just looking for confirmation.

Thanks in advance...
openLuup, AltUI, Zway and HomeWave, enough said...

Offline watou

  • Moderator
  • Hero Member
  • *****
  • Posts: 889
  • Karma: +44/-12
Re: Nest and FanStatus
« Reply #1 on: June 13, 2013, 04:27:59 pm »
1. From what I can tell, Vera isn't interacting with the Nest thermostat directly (API) - rather indirectly (hence the 120s URL delay ). So am I correct in saying that it's not uncommon to see a 5-10 minute delay between physically observing Nest in a cool/heat 'On' state and seeing this change of state in Vera ?

The Vera plugin for Nest thermostats uses the "unofficial API" to the web service provided by nest.com, and therefore does not interact directly with the thermostat itself.  The plugin polls for status changes every 120 seconds by default, but if you issue a command from Vera that changes the HVAC mode, fan mode, setpoints, home or away, etc., the status change should be reflected in about five seconds later.

The only time I've seen any state change not reflected in the plugin, and therefore in any web or mobile client, is when my Nest's battery has gotten so low that it turns off its Wi-Fi link to conserve battery power.  In this state the thermostat can only be checked or changed at the physical thermostat, not through the plugin, the nest.com web interface, or their native clients.  I have also occasionally seen my UI5 interface fail to update, presumably for reasons having nothing to do with the plugin, where a browser refresh showed the correct state.

I would like to learn more about your observations of a delayed update, if you can provide more information.

2. I'm very interested in Fan Status (HVAC failure) but am I correct in stating that a trigger cannot occur within a scene without the use of LUUP code ? It appears ambient, set point and mode are the only available options if you want to use the built-ins. Just looking for confirmation.

You are correct that the current plugin does not define a trigger for when fan mode or status changes.  Here is the current list of triggers:
  • Thermostat is turned off
  • Thermostat is set to cool
  • Thermostat is set to heat
  • Thermostat is set to auto
  • Ambient temperature goes above
  • Ambient temperature goes below
  • Ambient temperature goes above or below
  • Thermostat HEAT set point goes over
  • Thermostat HEAT set point goes below
  • Thermostat COOL set point goes below
  • Thermostat COOL set point goes over
  • Battery level goes below
What new triggering events would you like added to the plugin?

Thanks,
watou

Offline CudaNet

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1401
  • Karma: +42/-11
  • Chimichanga !
Re: Nest and FanStatus
« Reply #2 on: June 13, 2013, 05:51:23 pm »
Watou,

Thanks so much for your response...

I would like to learn more about your observations of a delayed update, if you can provide more information.

I'll see if I can provide additional detail (which was purely an observation, albeit not accurately metered). Nest was following it's usual schedule to cool at 8:30pm from a temp of 75 to 72. I waited for this event to occur, once started I watched the Nest device and noticed it indicated "Cooling" on the display. When I opened the device to view the variables, it indicated that the FanStatus was "Off" and the ModeState was "Idle". It was these variables which took longer than expected to change from "Idle" to "Cooling" and "Off" to "On". As I indicated earlier, eventually (10 minutes or so maybe) the variables did update. I didn't test (luup) to see if a "get" against these variables resulted the same.

You are correct that the current plugin does not define a trigger for when fan mode or status changes.  Here is the current list of triggers:
  • Thermostat is turned off
  • Thermostat is set to cool
  • Thermostat is set to heat
  • Thermostat is set to auto
  • Ambient temperature goes above
  • Ambient temperature goes below
  • Ambient temperature goes above or below
  • Thermostat HEAT set point goes over
  • Thermostat HEAT set point goes below
  • Thermostat COOL set point goes below
  • Thermostat COOL set point goes over
  • Battery level goes below
What new triggering events would you like added to the plugin?

Thanks,
watou

Well let me give you some detail as to why I inquired. Recently I had a failure within the HVAC system which was related to either a faulty contactor switch or low refrigerant (couldn't get a straight story from the tech). Basically the indoor fan was active (cooling state) and remained active since it wasn't (and couldn't) reaching the temperature set point and the outdoor unit was not operating. So I thought it would be nice to trigger off the FanStatus to begin a diagnostic of the ambient temp now and in 10 minutes (to detect a minimum 1 degree delta). My concern is going out of town and the fan running constantly. Same can be said if a start capacitor fails on the outside unit. So in short, I was going to test, delta then notify via Push to my phone that an issue may be occurring.

Again, I really appreciate you responding so quickly and more importantly - your insight...
openLuup, AltUI, Zway and HomeWave, enough said...

Offline RichardTSchaefer

  • Community Beta
  • Master Member
  • ******
  • Posts: 10091
  • Karma: +764/-143
Re: Nest and FanStatus
« Reply #3 on: June 13, 2013, 06:03:16 pm »
What's missing is a trigger for when the thermostat actually commands the HVAC into:
    Cooling
    Heating
    Idle
For my Trane thermostat this is available via the ModeState variable, but there is no trigger for it.

For @CudaNet failure mode, you would see the the HVAC was commanded into cooling
but the outside unit was not cooling because of:
    High Pressure
    Low Pressure
    Contactor
    Circuit Breaker
    ...

Similarly you can detect Heat problems
    Pilot Out (For older gas units that still have a pilot lit all the time, not very Green)
    Bad Thermocouple - Does not detect pilot lot.
    Gas Valve Problem
    Circuit breaker for Electric Heat
    Fan not running

You could write a PLEG that detects that the Thermostat has requested HVAC to change temp. Then you could monitor the temperature change ... If change in the right direction in some period of time does not happen you can trigger a Notification.


Offline watou

  • Moderator
  • Hero Member
  • *****
  • Posts: 889
  • Karma: +44/-12
Re: Nest and FanStatus
« Reply #4 on: June 13, 2013, 06:04:37 pm »
Well let me give you some detail as to why I inquired. Recently I had a failure within the HVAC system which was related to either a faulty contactor switch or low refrigerant (couldn't get a straight story from the tech). Basically the indoor fan was active (cooling state) and remained active since it wasn't (and couldn't) reaching the temperature set point and the outdoor unit was not operating. So I thought it would be nice to trigger off the FanStatus to begin a diagnostic of the ambient temp now and in 10 minutes (to detect a minimum 1 degree delta). My concern is going out of town and the fan running constantly. Same can be said if a start capacitor fails on the outside unit. So in short, I was going to test, delta then notify via Push to my phone that an issue may be occurring.

Again, I really appreciate you responding so quickly and more importantly - your insight...

I don't know a whole lot about HVAC systems, but it would be nice if the thermostat had a "maximum run time" for heating or cooling, so if it doesn't reach its setpoint after a maximum time of trying, it would take some action, like switching to Off and then retrying later.  I could see smart thermostat makers implementing an "efficiency warning" system, using as inputs the current temp and target setpoint, current outside temp/humidity, running time of trying to reach the setpoint, and possibly an energy cost metric.  That sounds like a plugin waiting to be written.

Another approach would be to write in LUUP something that tracked ModeState (Heating, Cooling, Idle, FanOnly, Off) and alerts when the transition to Idle takes too long (user setting).

And happy to try to help!

Regards,
watou

Offline CudaNet

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1401
  • Karma: +42/-11
  • Chimichanga !
Re: Nest and FanStatus
« Reply #5 on: June 14, 2013, 12:42:30 pm »
Thanks to both of you for your suggestions, I think each post deserves it's own response.


openLuup, AltUI, Zway and HomeWave, enough said...

Offline CudaNet

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1401
  • Karma: +42/-11
  • Chimichanga !
Re: Nest and FanStatus
« Reply #6 on: June 14, 2013, 01:04:23 pm »
Yes, a trigger for any of the below mentioned ModeStates would be great. I wouldn't have to evaluate FanStatus since one would expect that cooling/heating would activate the blower.

What's missing is a trigger for when the thermostat actually commands the HVAC into:
    Cooling
    Heating
    Idle
For my Trane thermostat this is available via the ModeState variable, but there is no trigger for it.

For @CudaNet failure mode, you would see the the HVAC was commanded into cooling
but the outside unit was not cooling because of:
    High Pressure
    Low Pressure
    Contactor
    Circuit Breaker
    ...

Similarly you can detect Heat problems
    Pilot Out (For older gas units that still have a pilot lit all the time, not very Green)
    Bad Thermocouple - Does not detect pilot lot.
    Gas Valve Problem
    Circuit breaker for Electric Heat
    Fan not running

I'm at a disadvantage here, I'm not familiar with using PLEG (not yet at least)... I'll take a look at it later today and post back if I'm having issues implementing a solution. I started a simple luup (I'm a newbie, had to find a WinOS debugger to help me) script and applied it to a schedule. My logic is simple, every 15 minutes I check to see if the fan status is on. If it's on then I check to see if the temp difference between ambient and set point is at a minimum - 1 degree. It's at this point that I delay for 10 minutes and check ambient again and compare current temp. with previous temp. If the temperature hasn't changed then I simply send a push notification to check the system. My logic doesn't care if it's cooling or heating. If Air Wave (A Nest feature; can be disabled) interferes with this logic then I'll add some additional checks.

You could write a PLEG that detects that the Thermostat has requested HVAC to change temp. Then you could monitor the temperature change ... If change in the right direction in some period of time does not happen you can trigger a Notification.
openLuup, AltUI, Zway and HomeWave, enough said...

Offline CudaNet

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1401
  • Karma: +42/-11
  • Chimichanga !
Re: Nest and FanStatus
« Reply #7 on: June 14, 2013, 01:34:29 pm »
Not a problem, I'm no HVAC expert either but seeing my HVAC fail made me think there's got to be a way to somehow detect a problem exists (regardless of the root cause, especially since I live in the heat of Texas). As for a "maximum run time", yes - it'd be nice if the thermostat identified (amongst it's other features) a problem exists and perform an action (i.e. notification).. Oh, and I'd love to have a plug in as you described, from what I can tell all this information is available to Vera  8)

Both of you have been extremely helpful, I'll see if either my simple script performs as expected and if not then I'll see if I can combine or replace it using PLEG (just loaded it)....
Thanks again and have a great weekend !


I don't know a whole lot about HVAC systems, but it would be nice if the thermostat had a "maximum run time" for heating or cooling, so if it doesn't reach its setpoint after a maximum time of trying, it would take some action, like switching to Off and then retrying later.  I could see smart thermostat makers implementing an "efficiency warning" system, using as inputs the current temp and target setpoint, current outside temp/humidity, running time of trying to reach the setpoint, and possibly an energy cost metric.  That sounds like a plugin waiting to be written.

Another approach would be to write in LUUP something that tracked ModeState (Heating, Cooling, Idle, FanOnly, Off) and alerts when the transition to Idle takes too long (user setting).

And happy to try to help!

Regards,
watou
openLuup, AltUI, Zway and HomeWave, enough said...