Honeywell Evohome

I've just started to set up my hub and my first few devices, and would now like to add my Honeywell Evohome thermostat. I saw a few posts on here stating that there is a SmartThings app that could be adapted for Hubitat, but no one seems to have had the right combination of interest and time so far. On the other hand there is a driver available by @csteele (I'm not fully sure what the difference between an app and a driver would mean for functionality)

I've tried making a virtual device with this driver, but the name, password and device ID settings don't show up under 'Preferences' for me. The only preferences I see are clock format, debug logging and descriptionText logging. Does anyone know what might be going wrong?

"Drivers" like DTH on ST, 'speak & listen' towards 'real devices' and convert the conversation into standardized Hubitat facing command and control. Switches are an easy example... ZWave switches speak/listen ZWave protocol while Zigbee switches speak/listed the Zigbee protocol. And then Wifi Switches speak/listen on (probably proprietary) protocol. Yet ALL of them present to Hubitat as "on" or "off" -- the driver does that.

For this Honeywell driver, it 'speaks/listens' to Honeywell's TCC (Total Connect Comfort) 'cloud'. It presents to Hubitat as a thermostat, and thus converts between the two. If your Honeywell Evohome thermostat works via TCC, then this driver should be able to converse, otherwise, no.

If you wish to use the Honeywell TCC driver, click on the "show original" in the posting you made and then click RAW. Copy all of the code.. then on Hubitat, click Drivers Code on the left. Click New Driver at the top and paste in all of the code. Click Save and the driver is ready/available to be used.

You create a virtual device on Hubitat from the Device list page then fill in TWO fields. Give it a name, perhaps Honeywell Evohome and then in the dropdown for Type, scroll to the very bottom and find the full list of YOUR added code. Pick the Honeywell driver you just pasted and then Save Device.

The PW and Device ID fields should be completed and then click Save Preferences.

Thanks for the explanation.

I've added the driver via 'import' with the link of the raw code at github, but I think the result should be the exact same as a copy-paste. But like I said, I don't see the expected fields in 'preferences'. Here's a screenshot of the available preference settings in my virtual device

Screen Shot 2020-08-18 at 8.33.03 AM

Using one of my development hubs, I started from scratch and copy/pasted the Code into Drivers Code. Then I created a Virtual Device and filled in two values, one of which is Selecting the Total Comfort API C driver just added.

Then I clicked Save and got the expected Device Info page:

Which doesn't match yours :frowning: There isn't a "24 hrs" option in 'my driver'

1 Like

I'm not sure what went wrong the first two times, but I've managed to get it right by

  • Removing the virtual device and driver
  • Rebooting hub
  • Adding driver with copy-paste
  • Rebooting hub
  • Creating virtual device

I'm not sure which of those steps made the difference (if any), but I've got the right preference fields now :smiley:

However, updates aren't coming in right yet. Under Events I can see DriverUpdate (N/A), DriverStatus (Current) and DriverVersion (1.2.3) once each and many updates of DriverAuthor (cSteele). I've set polling to once every 15 minutes to make sure I don't ask too much of the TCC server, but even so the polling ends up like this in the log:

2020-08-19 08:20:30.358 warn Something went wrong: groovyx.net.http.HttpResponseException: Unauthorized
2020-08-19 08:20:29.924 debugsending getStatus request
2020-08-19 08:20:29.921 debug https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/<redacted, deviceID?_=13digits>
2020-08-19 08:20:29.919 debug enable outside temps = No
2020-08-19 08:20:29.917 debug Executing getStatus
2020-08-19 08:20:29.915 debug Adding cookie to collection
2020-08-19 08:20:29.912 debug Adding cookie to collection
2020-08-19 08:20:29.908 debug Adding cookie to collection
2020-08-19 08:20:29.873 debug Request was successful, 200
2020-08-19 08:20:28.809 info Executing 'login'

Am I correct in assuming that the login is successful but somehow I'm not authorized to access my own data? Any guesses as to how that might happen?

Honeywell rate limits and 15 seconds is probably faster than they allow.. and thus you'll see those warnings. I have my polling set to 60 mins, but then I don't use it the same way you do, probably. Polling for me is about 'discovering' that a person touched the Thermostat. That's so rare, I probably could eliminate polling altogether. :smiley:

Automations on the other hand tell the Thermostat to do something perhaps a couple times a day. My Honeywell thermostat does not automatically switch between heating and cooling.. so I've created automations to do that. I also monitor differences between upstairs temps and downstairs temps and change the fan from Auto to On as needed.

Therefore, in my case, I want nearly 100% of my allowed logins to be used by my automations and not consumed by polling. :slight_smile:

I had set the polling to 15 minutes, not seconds :wink:
After your post I've changed it to 60 minutes, but the warning remains. Debug info loging doen't stay on for the full hour, so I can't say for sure all steps in between are the same, but the final warning definitely is.

I'm actually not sure what I want to do with the data exactly, for now I just want to see the data coming in :slight_smile:

Actually... I only have heating, no cooling. Could the request for non-existent fan data be the issue or does the API automatically offer an empty/Nan/... field for that?

Evening, just experimenting with this driver as i have an evohome controller and 10 HR92 TRVs. I currently use hubitat to manage my heating, with some weather based and presence based rules that i can't do natively in Evohome. They rely on IFTTT to stick them together which, now it is going to need me to pay, i'm looking for local alternatives to do the same thing.

Anyway, I've put my TCC international username and password in, as well as what i think is my device ID - a 6 digit alphanumeric code that i got from my controller settings page, in line with similar instructions for pairing with Somfy - see step 3.3 in the guidance:

https://service.somfy.com/downloads/it_v5/honeywellwith_tahoma.pdf

However, it doesnt work. I've also tried it with my 12 digit mac address in the device ID, but nothing.

All i get is:

dev:10922020-09-16 21:28:48.152 infoTCC getStatus failed

the logs seem to suggest that it logged in ok.

Anybody any thoughts where i might be going wrong?

Hi CJ,

The instructions on github ( HoneywellThermo-TCC/README.md at master ยท HubitatCommunity/HoneywellThermo-TCC ยท GitHub ) say to log in to the TCC website ( Honeywell Home - My Total Connect Comfort ) and that the 6 or 7 digits at the end of the URL after logging in should be the device ID you need.

For me, that's a different one than what you get by following the Somfy instructions in your link, so hopefully that'll fix it for you.

Unfortunately in my case I've tried both the last 6 and the last 7 as well as your instructions, and all options give me the same error... So I'd be interested to see if you do get it to work.

Haha, how embarassing....a failure to read the instructions! Thanks for the pointer :smile:

I'll report back after i've given it a go as you suggest.

Many thanks.

Still no luck, i get the same error of 'TCC getstatus failed' even when using the last bit of the URL as you suggest - be that the 6 or 7 digits.

I've got the same issue. I'm in the UK and wondered if the URL is different to the original driver. URL is international.mytotalcomfort.com/ which is accessed via getconnected.honeywellhome.com/en/ vs the one in the Readme pointing to www.mytotalconnectcomfort.com/portal/. The login pages are different and I'm only able to login to the former. I don't exist on the mytotalconnectcomfort.com site.

You're quite right, that's my issue also. Editing the URL in the driver doesnt fix it, unfortunately.

Yeah, I looked through the driver and it appends /portal/ to most commands so none of them work. Unfortunately I donโ€™t know what the correct path is for the international site. I tried a few things and none of them work.

Good evening, have you managed to get this working in UK?

Sadly not, itโ€™s beyond my skills to know how to convert the current app.

It seems like API for EU based is totally different, and technically new driver is needed.
Found some python library for EU based API: GitHub - watchforstock/evohome-client: Python client to access the Evohome web service

If someone has time feel free to port it to hubitat :wink:

I managed, with the help of this community, to bastardise/chop/slash codersaurs original ST app and driver. I take no credit for any of this and can offer no support for it. I'm not a "coder" I just stumbled from error to error trying to make them go away. the result seems to work for me, my only issue is it does tend to flood the logs. even with debug logging off. Hey, you never know one of you geniuses out there might be able to stop that!
use it at your own risk

Hope it works for you, install the app and driver then enter your TCC login information in the app and its should do the rest for you.

1 Like

Thnx, just what I'm looking for! I'll give it a try to see if it works for me.

1 Like

I got it working, only made 1 change, because I was getting nullpointerexceptions on line 897 of the device driver:

//def windowTemp = new BigDecimal(state.windowFunctionTemperature)
def windowTemp = new BigDecimal(state.windowFunctionTemperature ?: formatTemperature(5.0))

This seems to work for me.

1 remaining issue: pushing the Resume-button in the device does seem to set the zone to following the default schedule (followschedule), but the heating setpoint temperature still remains the same and does not change back to the initial setpoint temperature.
Anyone any ideas?

1 Like