[RELEASE] Beta 1 - version of Honeywell Home Thermostats (Lyric etc...)

Sad Baby GIF

3 Likes

I don't think that thermostat is one of the ones supported by the Honeywell API that this driver uses.

Nope, hence the sadness.

Does it work via the older Total Connect Comfort API? The one from

Yea, thats the one I was using. I wanted to test the rate limits on this one.

The new api it just as bad if not worse as the older api and needs frequent re-auths.

Ahh ok.

I'm in the midst of refactoring my TCC code to be Parent/Child for those that have two Thermostats...

That API's login process is two step.. you hit the login endpoint and it passes back at least 9 cookies. Those cookies are then used on step two where the specific device is targeted. I'm seeing that fails only return 4 cookies.

Adding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc1d45525d5f4f58455e445a4a42378b
Adding cookie to collection: thlang=en-US
Adding cookie to collection: .ASPXAUTH_TRUEHOME_RT=k6ZRiIJXK0IUTOdG7mWgd71JY2_1p8J6Qcn0J27T
Adding cookie to collection: .ASPXAUTH_TRUEHOME_AT=lUdgBAeho1pZmWDmMfU4mQHab--X-_CibLn6fjWm
Adding cookie to collection: .ASPXAUTH_TRUEHOME=37665AFD4DF57D51A669793961640841F486048B1F8
Adding cookie to collection: ADRUM_BT1=R:0|i:197975|e:73
Adding cookie to collection: SameSite=None
Adding cookie to collection: ADRUM_BTa=R:0|g:3429617c-1f64-437f-86fb-64071afbdede|n:honeywell-prod_f7be1c76-506d-4111-81c5-fc62766aedb7
Adding cookie to collection: ASP.NET_SessionId=q3fo5w1vlyi2iljit30z0ocp
Request was successful, 302
Honeywell TCC 'login'

That collection is an example of "success"

But the reality is... it's the Honeywell site that isn't authenticating and returning the cookies (tokens).

At least for me the retry code i added to sense the error seems to work fir the api c code. At least i don't have to reauth. I just have failures occasionally and it retries in 5 minutes. For this new api that wont even work as you periodically need to back through the entire reauth process. I will look into at least sensing the error and adding a notification when it happens. But the Honeywell apis are so unreliable in this case it may be moot.

I'm having more success by setting my refresh rate to 30 min. (was at 10 min.) in the app. @markbellkosel84 discovered this a few days ago. Very few errors now that I am not hitting the servers so much. Also, I haven't had to reauthorize in about a month.

1 Like

I tried to become a developer a couple years back via Honeywell's API page... was 100% ignored. :smiley:

I was suspecting that I had found the sweet spot

Well! I've never seen this before.....

From my ultra basic levels of understanding it looks like something took too long to respond?

Don't worry about it if it isn't happening a lot. The call to the servers to refresh the token took too long to respond, i.e. the server or the network burped. I see a socket timeout exception in my log at 6:00 pm EDT for something similar. Networks aren't 100% reliable and the app is designed to handle and recover from these errors.

1 Like

I manually pressed the FORCE TOKEN REFRESH button and in the log it said:

Honeywell API Token Refreshed Succesfully, Next Scheduled in: 1699 sec

That implies that this button is already being pressed automatically in the background? Is that correct? Is that the way OAUTH works that you refresh every so often so it never expires? or is it to wait for it to expire and then renew it?

Assuming that honeywell support is gone or on the way out - what is the best alternative?

@tlawork The "Force Token Refresh" button just calls the driver code to refresh the token.

The Honeywell oAuth implementation gives you a token that needs to be refreshed occasionally and the driver is set up to do that for you. It sets up a job to refresh the token before it is due to expire and that works most of the time. Unfortunately, it appears that occasionally the Honeywell servers think that the token is expired before it is actually due to expire, which causes an error that you see in the logs. The driver handles that error and refreshes the token.

It depends upon your needs. There are a lot of supported thermostat alternatives out there. For me, I put up with the inconvenience of having to occasionally babysit the Honeywell because I have 3 remote sensors connected to it and the thermostat works well with those sensors. If I were starting over, I'd probably go with a Z-wave thermostat because that is 100% local, no iffy cloud implementation to deal with.

1 Like

ya unfortantely there are no zwave therms. that can have embeeded duct sensors, multiple temp sensors to average over and support for steam humidifiers.. it just sucks that honeywells support is terrible and their servers periodically dont work and the drivers require manual intervention

1 Like

So have Honeywell servers just totally gone out? Getting 5 or so errors every 30 minutes

I've thrown my Honeywell into the junk draw and gone back to my Sensibo Sky2. It's a shame as I like the HoneyWell better.