I just resolved this issue in my own environment. What appeared to happen in my case is Nest’s API responds with an auth expiration duration of 1 month, so my ST happily cached it and was using that as the basis for determining if you are logged in or not. The real expiration appears to be much shorter (and make more sense) - around 1 hour in my experience. When your auth token expires on Nest’s side, but not on your side, your requests to the Nest API just fail silently. I added a check in the code to determine if there has been a failed request to Nest’s API, and if so to trigger the login process again. Here is the code snippet, add it to your isLoggedIn() method:
log.debug "No data.device"
This has made mine run rock-solid. There is a similar issue with the Nest Protects, as they are based on the same code. It is resolved the same way:
log.debug "no data.topaz"