watchforstock / evohome-client

Python client to access the Evohome web service
Apache License 2.0
88 stars 52 forks source link

New TotalConnectComfort WebAPI #101

Open philchillbill opened 4 years ago

philchillbill commented 4 years ago

Not an issue as such, but I've discovered an official Total Connect Comfort API that's actually targeted towards Evohome (and not just Lyric / Honeywell 'Home'). I didn't see it mentioned anywhere in posts about evohome-client so it's likely new (the page I'm looking at is dated Sept 17, 2019). I accessed it via https://mytotalconnectcomfort.com/WebApi/Help/LogIn and took the first login option there which just needs an ApplicationID. I used 91db1612-73fd-4500-91b2-e63b069b185c and got in no problem. In particular, the docs around the oauth flow would indicate that some effort has been put into this. There's an Access Control List concept, for example. I have not played with it yet but there does seem to be quite some new functionality in there - the docs mention a LiveFeed API call that "Subscribes client to LiveFeed Streaming notifications." Hope this information is of some use here - we all know the API underpinning evohome-client is quite dated.

zxdavb commented 4 years ago

I had a quick look - is this not the v1 API?

gordonb3 commented 4 years ago

@zxdavb Yes, it is. It's somewhat obscured though because it contains calls that have no relevance to Evohome or simply don't function at all.

The latter turns out to depend on the ApplicationID and as I discovered this week Honeywell can change the grants that are associated to that ID. They removed the right to renew the session ID, so where they first disallowed sending credentials with every call they now require you to resend them at least once every 15 minutes (which is when they expire your un-renewable session).