nest-api icon indicating copy to clipboard operation
nest-api copied to clipboard

New issue with home / away

Open cagivacode opened this issue 5 years ago • 8 comments

I have been using this for a couple of years....I have been watching it closer than usual because the Weather Under Ground API went away 1st of the year (another part of my program) and I had to replace it.

Starting this week setAway(AWAY_MODE_ON) using the API works if you read the status with the API.

But if you check with a browser / app the away status is unchanged.

e.g. Use API to turn status from Home to away.....login with browser you still see "home". Clicking on status also seems to show how long you have been home (last activity?) or how long you have been away...I don't recall that dialog from before.

anyone else?

cagivacode avatar Feb 09 '19 21:02 cagivacode

Same here; setAway() affects the thermostat ECO mode (if you use that while away), but doesn't change the location's Away/Present mode. Will check what the web UI uses as parameters, and see if we need to change the ones we send using this library to something else now.

gboudreau avatar Feb 09 '19 21:02 gboudreau

This function may have been elevated to "structure" level.

It sounds like the current functionality affects the thermostat away mode (Eco on or off -- formerly home/away), but the current functionality in the App has decoupled Eco from home/away (which also affects cameras, etc.)

doctorkb avatar Feb 09 '19 21:02 doctorkb

I am not sure how they are decoupled.....while testing today.

I had ECO mode on / nest.class showing AWAY / web showing HOME.

I had Unit OFF / nest.class showing HOME / web showing HOME.

I am glad someone was here, because I don't have a sniffer set up to catch the webui.

cagivacode avatar Feb 09 '19 21:02 cagivacode

@doctorkb The library does use a POST on the structure to try to set away mode, but it doesn't work.

POST /v2/put/structure.{id}
{"away": true, "away_timestamp": 1549749133, "away_setter": 0}

Ref: https://github.com/gboudreau/nest-api/blob/master/nest.class.php#L699-L709

gboudreau avatar Feb 09 '19 21:02 gboudreau

@cagivacode Seems to work now. (Not sure if I tested correctly earlier..?) I just call $nest->setAway(AWAY_MODE_OFF); and within 5 seconds, the web UI is updated automatically, showing me Away.

Maybe just make sure your nest.class.php is up to date with the latest master: https://raw.githubusercontent.com/gboudreau/nest-api/master/nest.class.php

gboudreau avatar Feb 09 '19 22:02 gboudreau

I should have mentioned that.....I think this is day 3 of this "issue".

I have seen it work and then not work, yesterday it did not work most of the day and then was fine after 5pm est. The day before it did not work all night.

What I have not been able to determine if the order (as in last done by library or not) is having an effect. Or if there is just a delay for the webui to react....although I tried clearing cache / different browsers ...etc.

I did check and that is the nest.class that I am using (actually just switched to it in January while dealing with new weather APIs).

cagivacode avatar Feb 09 '19 22:02 cagivacode

The part that I noticed recently was in the app (iOS here):

  1. open app, select thermostat
  2. tap gear in upper right
  3. first item is "Home/Away Assist" - select that
  4. the on-off switch controls whether Eco temps are automatically used when the structure is in "away".

I honestly have no idea if this is relevant, but I noticed the feature in the app recently and thought it might be relevant to troubleshooting. I recall that it used to be that there wasn't this optional linkage - away was eco (aka away temp) and home was non-eco (aka home temp).

doctorkb avatar Feb 09 '19 22:02 doctorkb

I still have this issue and it does seem to be ECO related. I have Home/Away Assist turned off and use scripts for this function.

I also have 2 thermostat (zones) which complicates matters. There has been changes to the UI for this, when I go into a unit and click eco I have a choice to change for all units or just one.

So running: setAway(AWAY_MODE_OFF) setEcoMode(ECO_MODE_MANUAL, "zone1serial") //first device setEcoMode(ECO_MODE_MANUAL, "zone2serial") results: status Home // when using getUserLocations() to check status Away // when using browser to check zone1 on eco zone2 on eco

Running: setEcoMode(ECO_MODE_MANUAL, "zone1serial") setEcoMode(ECO_MODE_MANUAL, "zone2serial") setAway(AWAY_MODE_OFF) results: status Home // when using getUserLocations() to check status Away // when using browser to check zone1 on heat at scheduled temp // first device zone2 on eco

So the scripts work as intended -- I get the same result as in the past.

The problem is I have an override "switch" for keep scripts from running...and checking the UI looks like the scripts did not run when someone came home (when in fact it did).

I will keep watching....and see if there is other specific command sequences that cause this.

cagivacode avatar Feb 13 '19 20:02 cagivacode