HubitatCommunity/HoneywellThermo-TCC

As a user of The Honeywell / Resideo platform I was pleased to find this on github. I am unaware of how to engage with the developer but the documentation seems so well set out I wonder if anyone here is using this or could tell me what I have done wrong.

Having imported the Driver code from

I entered username PW and device ID and it appears to connect but I cannot make any headway with regard to getting a TILE into the dashboard.

How should I engage with the developer, I am happy to pay for this.
Many thanks
Paul

Tagging @csteele

2 Likes

Are you looking to add this to your dashboard:

Screen Shot 2020-12-05 at 9.30.14 AM

The steps are to create a virtual device, and then change it to use the TCC driver. You'll end up with a device that looks like:

And as you say, you then fill in the blanks...

Set the poll interval to a high value, because Honeywell will limit your queries. Over time, you will see lots of Failed, ignore them as long as between, you're also seeing successes.

Screen Shot 2020-12-05 at 9.35.45 AM

Turn on Debugging. Open in a separate browser tab, a Live Logging session, and then click Save Preferences in the Device tab.

Look at the Live logs, you should see something similar to:

dev:1098 2020-12-05 09:37:24.633 am debug Adding cookie to collection: ASP.NET_SessionId=03xmtkxaimbtvmjxiqef40en
dev:1098 2020-12-05 09:37:24.596 am debug Request was successful, 302
dev:1098 2020-12-05 09:37:21.446 am debug Honeywell TCC 'login'
dev:1098 2020-12-05 09:37:21.439 am debug Honeywell TCC 'refresh', pollInterval: 1800, units: = °F
dev:1098 2020-12-05 09:37:21.428 am info  in poll: (every 1800 seconds)
dev:1098 2020-12-05 09:37:21.402 am debug PermHold now = 1
dev:1098 2020-12-05 09:37:21.177 am info  description logging is: true
dev:1098 2020-12-05 09:37:21.171 am debug debug logging is: true
dev:1098 2020-12-05 09:37:21.162 am debug in updated
--- Live Log Started, waiting for events ---

The critical lines there are:

Request was successful, 302
Honeywell TCC 'login'

(302 normally means something wrong, it's a redirect, but in this case, the redirect from lgging in to the actual interaction with Honeywell occurs after the redirect. The next line sees that cookies are arriving, another excellent sign. )

Anything else would mean the login isn't working and that would be related to the three values of: username, password and Honeywell Device ID.

If all that is working, then of course the question becomes entirely Dashboard related...

Screen Shot 2020-12-05 at 9.45.24 AM

2 Likes

Many thanks for getting in touch so promptly, this is really appreciated and I would be happy to pay for your support if you wish.

As a UK Customer this is the address I login to
https://international.mytotalconnectcomfort.com/Account/Login

Once logged in the URL changes to
https://international.mytotalconnectcomfort.com/Locations/View/2674690

this is the view I see in case it's different to what you expect.

I have followed the instructions on GitHub which were extremely clear, thank you.
as you can see the user details are input but perhaps they are being sent to the wrong location for the UK ?

The Log from my C7 which is on the latest build is below
many thanks
Paul
dev:3112020-12-05 18:27:45.686 infoTCC getStatus failed

dev:3112020-12-05 18:27:45.124 debugsending getStatus request

dev:3112020-12-05 18:27:45.123 debugenable outside temps = No

dev:3112020-12-05 18:27:45.122 debugHoneywell TCC getStatus

dev:3112020-12-05 18:27:45.120 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc0345525d5f4f58455e445a4a42378b

dev:3112020-12-05 18:27:45.118 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 18:27:45.116 debugAdding cookie to collection: ASP.NET_SessionId=pbwf2jvvzfgamcfhspxzxus2

dev:3112020-12-05 18:27:45.110 debugRequest was successful, 200

dev:3112020-12-05 18:27:44.320 debugHoneywell TCC 'login'

dev:3112020-12-05 18:27:44.319 debugHoneywell TCC 'refresh', pollInterval: 600, units: = °C

dev:3112020-12-05 18:27:44.317 infoin poll: (every 600 seconds)

dev:3112020-12-05 18:26:36.748 errorSomething went wrong: groovyx.net.http.HttpResponseException: Unauthorized

dev:3112020-12-05 18:26:36.158 debugparams = [uri:https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges, headers:[Accept:application/json, text/javascript, /; q=0.01, DNT:1, Accept-Encoding:gzip,deflate,sdch, Cache-Control:max-age=0, Accept-Language:en-US,en,q=0.8, Connection:keep-alive, Host:www.mytotalconnectcomfort.com, Referer:https://www.mytotalconnectcomfort.com/portal/Device/Control/2674690, X-Requested-With:XMLHttpRequest, User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36, Cookie:ASP.NET_SessionId=03lmk5kvgjnspucawboz30ri;TrueHomeCheckCookie=;NSC_NZUDD-443-WT=ffffffff090ecc1c45525d5f4f58455e445a4a42378b;], body:[DeviceID:2674690, SystemSwitch:1, HeatSetpoint:null, CoolSetpoint:null, HeatNextPeriod:null, CoolNextPeriod:null, StatusHeat:null, StatusCool:null, fanMode:null, DisplayUnits:C], timeout:10]

dev:3112020-12-05 18:26:36.156 debugHoneywell TCC 'setStatus'

dev:3112020-12-05 18:26:36.154 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc1c45525d5f4f58455e445a4a42378b

dev:3112020-12-05 18:26:36.152 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 18:26:36.150 debugAdding cookie to collection: ASP.NET_SessionId=03lmk5kvgjnspucawboz30ri

dev:3112020-12-05 18:26:36.145 debugRequest was successful, 200

dev:3112020-12-05 18:26:35.444 debugHoneywell TCC 'login'

dev:3112020-12-05 18:26:35.441 debugsetThermostatMode: heat

dev:3112020-12-05 18:26:29.046 errorSomething went wrong: groovyx.net.http.HttpResponseException: Unauthorized

dev:3112020-12-05 18:26:28.531 debugparams = [uri:https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges, headers:[Accept:application/json, text/javascript, /; q=0.01, DNT:1, Accept-Encoding:gzip,deflate,sdch, Cache-Control:max-age=0, Accept-Language:en-US,en,q=0.8, Connection:keep-alive, Host:www.mytotalconnectcomfort.com, Referer:https://www.mytotalconnectcomfort.com/portal/Device/Control/2674690, X-Requested-With:XMLHttpRequest, User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36, Cookie:ASP.NET_SessionId=xnkypj3nrkjvuyszgd3vj5la;TrueHomeCheckCookie=;NSC_NZUDD-443-WT=ffffffff090ecc0245525d5f4f58455e445a4a42378b;], body:[DeviceID:2674690, SystemSwitch:2, HeatSetpoint:null, CoolSetpoint:null, HeatNextPeriod:null, CoolNextPeriod:null, StatusHeat:null, StatusCool:null, fanMode:null, DisplayUnits:C], timeout:10]

dev:3112020-12-05 18:26:28.528 debugHoneywell TCC 'setStatus'

dev:3112020-12-05 18:26:28.526 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc0245525d5f4f58455e445a4a42378b

dev:3112020-12-05 18:26:28.522 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 18:26:28.519 debugAdding cookie to collection: ASP.NET_SessionId=xnkypj3nrkjvuyszgd3vj5la

dev:3112020-12-05 18:26:28.499 debugRequest was successful, 200

dev:3112020-12-05 18:26:27.587 debugHoneywell TCC 'login'

dev:3112020-12-05 18:26:27.579 debugsetThermostatMode: off

dev:3112020-12-05 18:18:04.607 infoYou are using the current version of this driver

dev:3112020-12-05 18:17:45.661 infoTCC getStatus failed

dev:3112020-12-05 18:17:45.077 debugsending getStatus request

dev:3112020-12-05 18:17:45.075 debugenable outside temps = No

dev:3112020-12-05 18:17:45.074 debugHoneywell TCC getStatus

dev:3112020-12-05 18:17:45.072 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc1f45525d5f4f58455e445a4a42378b

dev:3112020-12-05 18:17:45.069 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 18:17:45.066 debugAdding cookie to collection: ASP.NET_SessionId=ok4unpkabxl4huvyjesdiwm3

dev:3112020-12-05 18:17:45.059 debugRequest was successful, 200

dev:3112020-12-05 18:17:44.208 debugHoneywell TCC 'login'

dev:3112020-12-05 18:17:44.207 debugHoneywell TCC 'refresh', pollInterval: 600, units: = °C

dev:3112020-12-05 18:17:44.205 infoin poll: (every 600 seconds)

dev:3112020-12-05 18:17:44.187 debugPermHold now = 1

dev:3112020-12-05 18:17:44.089 infodescription logging is: true

dev:3112020-12-05 18:17:44.088 debugdebug logging is: true

dev:3112020-12-05 18:17:44.086 debugin updated

dev:3112020-12-05 18:12:41.857 infoYou are using the current version of this driver

dev:3112020-12-05 18:12:22.790 infoTCC getStatus failed

dev:3112020-12-05 18:12:22.216 debugsending getStatus request

dev:3112020-12-05 18:12:22.213 debugenable outside temps = No

dev:3112020-12-05 18:12:22.210 debugHoneywell TCC getStatus

dev:3112020-12-05 18:12:22.206 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc0045525d5f4f58455e445a4a42378b

dev:3112020-12-05 18:12:22.200 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 18:12:22.196 debugAdding cookie to collection: ASP.NET_SessionId=rlhfufkooksq452begwtqeal

dev:3112020-12-05 18:12:22.190 debugRequest was successful, 200

dev:3112020-12-05 18:12:21.440 debugHoneywell TCC 'login'

dev:3112020-12-05 18:12:21.438 debugHoneywell TCC 'refresh', pollInterval: 600, units: = °C

dev:3112020-12-05 18:12:21.434 infoin poll: (every 600 seconds)

dev:3112020-12-05 18:12:21.414 debugPermHold now = 1

dev:3112020-12-05 18:12:21.295 infodescription logging is: true

dev:3112020-12-05 18:12:21.291 debugdebug logging is: true

dev:3112020-12-05 18:12:21.288 debugin updated

dev:3112020-12-05 18:06:32.574 infoTCC getStatus failed

dev:3112020-12-05 18:06:30.557 infoin poll: (every 600 seconds)

dev:3112020-12-05 17:56:31.874 infoTCC getStatus failed

dev:3112020-12-05 17:56:30.399 infoin poll: (every 600 seconds)

dev:3112020-12-05 17:46:31.796 infoTCC getStatus failed

dev:3112020-12-05 17:46:30.317 infoin poll: (every 600 seconds)

dev:3112020-12-05 17:36:31.797 infoTCC getStatus failed

dev:3112020-12-05 17:36:30.304 infoin poll: (every 600 seconds)

dev:3112020-12-05 17:26:31.896 infoTCC getStatus failed

dev:3112020-12-05 17:26:30.110 infoin poll: (every 600 seconds)

dev:3112020-12-05 17:16:31.531 infoTCC getStatus failed

dev:3112020-12-05 17:16:29.963 infoin poll: (every 600 seconds)

dev:3112020-12-05 17:06:31.016 infoTCC getStatus failed

dev:3112020-12-05 17:06:29.664 infoin poll: (every 600 seconds)

dev:3112020-12-05 16:56:31.054 infoTCC getStatus failed

dev:3112020-12-05 16:56:29.580 infoin poll: (every 600 seconds)

dev:3112020-12-05 16:46:31.139 infoTCC getStatus failed

dev:3112020-12-05 16:46:29.555 infoin poll: (every 600 seconds)

dev:3112020-12-05 16:36:30.882 infoTCC getStatus failed

dev:3112020-12-05 16:36:29.415 infoin poll: (every 600 seconds)

dev:3112020-12-05 16:26:31.080 infoTCC getStatus failed

dev:3112020-12-05 16:26:29.335 infoin poll: (every 600 seconds)

dev:3112020-12-05 16:16:30.668 infoTCC getStatus failed

dev:3112020-12-05 16:16:29.253 infoin poll: (every 600 seconds)

dev:3112020-12-05 16:06:30.719 infoTCC getStatus failed

dev:3112020-12-05 16:06:29.134 infoin poll: (every 600 seconds)

dev:3112020-12-05 15:56:30.321 infoTCC getStatus failed

dev:3112020-12-05 15:56:29.036 infoin poll: (every 600 seconds)

dev:3112020-12-05 15:46:30.667 infoTCC getStatus failed

dev:3112020-12-05 15:46:28.956 infoin poll: (every 600 seconds)

dev:3112020-12-05 15:36:31.615 infoTCC getStatus failed

dev:3112020-12-05 15:36:28.868 infoin poll: (every 600 seconds)

dev:3112020-12-05 15:26:30.381 infoTCC getStatus failed

dev:3112020-12-05 15:26:28.792 infoin poll: (every 600 seconds)

dev:3112020-12-05 15:16:30.050 infoTCC getStatus failed

dev:3112020-12-05 15:16:28.670 infoin poll: (every 600 seconds)

dev:3112020-12-05 15:06:30.225 infoTCC getStatus failed

dev:3112020-12-05 15:06:28.627 infoin poll: (every 600 seconds)

dev:3112020-12-05 14:56:30.634 infoTCC getStatus failed

dev:3112020-12-05 14:56:28.556 infoin poll: (every 600 seconds)

dev:3112020-12-05 14:46:30.045 infoTCC getStatus failed

dev:3112020-12-05 14:46:28.474 infoin poll: (every 600 seconds)

dev:3112020-12-05 14:36:30.051 infoTCC getStatus failed

dev:3112020-12-05 14:36:28.443 infoin poll: (every 600 seconds)

dev:3112020-12-05 14:26:29.723 infoTCC getStatus failed

dev:3112020-12-05 14:26:28.292 infoin poll: (every 600 seconds)

dev:3112020-12-05 14:26:28.106 warndebug logging disabled...

dev:3112020-12-05 14:16:29.587 infoTCC getStatus failed

dev:3112020-12-05 14:16:29.089 debugsending getStatus request

dev:3112020-12-05 14:16:29.087 debugenable outside temps = No

dev:3112020-12-05 14:16:29.085 debugHoneywell TCC getStatus

dev:3112020-12-05 14:16:29.083 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc1c45525d5f4f58455e445a4a42378b

dev:3112020-12-05 14:16:29.079 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 14:16:29.077 debugAdding cookie to collection: ASP.NET_SessionId=glz1mjp2wuo5bh4dz1qy1win

dev:3112020-12-05 14:16:29.070 debugRequest was successful, 200

dev:3112020-12-05 14:16:28.312 debugHoneywell TCC 'login'

dev:3112020-12-05 14:16:28.308 debugHoneywell TCC 'refresh', pollInterval: 600, units: = °C

dev:3112020-12-05 14:16:28.305 infoin poll: (every 600 seconds)

dev:3112020-12-05 14:06:29.620 infoTCC getStatus failed

dev:3112020-12-05 14:06:29.117 debugsending getStatus request

dev:3112020-12-05 14:06:29.115 debugenable outside temps = No

dev:3112020-12-05 14:06:29.114 debugHoneywell TCC getStatus

dev:3112020-12-05 14:06:29.112 debugAdding cookie to collection: NSC_NZUDD-443-WT=ffffffff090ecc1f45525d5f4f58455e445a4a42378b

dev:3112020-12-05 14:06:29.110 debugAdding cookie to collection: TrueHomeCheckCookie=

dev:3112020-12-05 14:06:29.107 debugAdding cookie to collection: ASP.NET_SessionId=0vtf3rwyfs3cj2d5gaicpnhq

dev:3112020-12-05 14:06:29.100 debugRequest was successful, 200

dev:3112020-12-05 14:06:28.200 debugHoneywell TCC 'login'

dev:3112020-12-05 14:06:28.198 debugHoneywell TCC 'refresh', pollInterval: 600, units: = °C

dev:3112020-12-05 14:06:28.186 infoin poll: (every 600 seconds)

dev:3112020-12-05 13:56:48.446 infoYou are using the current version of this driver

dev:3112020-12-05 13:56:29.496 infoTCC getStatus failed

dev:3112020-12-05 13:56:29.004 debugsending getStatus request

dev:3112020-12-05 13:56:29.002 debugenable outside temps = No

dev:3112020-12-05 13:56:29.001 debugHoneywell TCC getStatus

Line 70 of the Driver can be changed...

Edit that driver to contain the URL you have:

"international.mytotalconnectcomfort.com"

1 Like

Thank you. Here is the new log
dev:3112020-12-05 18:43:30.637 infoYou are using the current version of this driver

dev:3112020-12-05 18:43:26.560 errorSomething went wrong: java.net.UnknownHostException: https

dev:3112020-12-05 18:43:26.543 debugparams = [uri:https://https://international.mytotalconnectcomfort.com//portal/Device/SubmitControlScreenChanges, headers:[Accept:application/json, text/javascript, /; q=0.01, DNT:1, Accept-Encoding:gzip,deflate,sdch, Cache-Control:max-age=0, Accept-Language:en-US,en,q=0.8, Connection:keep-alive, Host:https://international.mytotalconnectcomfort.com/, Referer:https://https://international.mytotalconnectcomfort.com//portal/Device/Control/2674690, X-Requested-With:XMLHttpRequest, User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36, Cookie:], body:[DeviceID:2674690, SystemSwitch:1, HeatSetpoint:null, CoolSetpoint:null, HeatNextPeriod:null, CoolNextPeriod:null, StatusHeat:null, StatusCool:null, fanMode:null, DisplayUnits:C], timeout:10]

dev:3112020-12-05 18:43:26.541 debugHoneywell TCC 'setStatus'

dev:3112020-12-05 18:43:26.539 warnSomething went wrong during login: java.net.UnknownHostException: https

dev:3112020-12-05 18:43:26.529 debugHoneywell TCC 'login'

dev:3112020-12-05 18:43:26.527 debugsetThermostatMode: heat

dev:3112020-12-05 18:43:23.969 errorSomething went wrong: java.net.UnknownHostException: https

can you check that line?? I'm seeing hints in the log that you've added more than it needs:

https://https://international.m

You want just the "international.." part. No "https://" and no "/" at the end.

You may also want to join a regional group that would display your region of the planet on the edge of your profile pic.

https://community.hubitat.com/groups

I'm not saying I would have noticed, but if I did, I might have at least thought about "He probably needs to alter that?"

1 Like

Thank you I amended line 70 and joined the regional group.
New log below after saving

dev:3112020-12-05 18:53:32.549 errorSomething went wrong: groovyx.net.http.HttpResponseException: Not Found

dev:3112020-12-05 18:53:32.306 debugparams = [uri:https://international.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges, headers:[Accept:application/json, text/javascript, /; q=0.01, DNT:1, Accept-Encoding:gzip,deflate,sdch, Cache-Control:max-age=0, Accept-Language:en-US,en,q=0.8, Connection:keep-alive, Host:international.mytotalconnectcomfort.com, Referer:https://international.mytotalconnectcomfort.com/portal/Device/Control/2674690, X-Requested-With:XMLHttpRequest, User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36, Cookie:], body:[DeviceID:2674690, SystemSwitch:null, HeatSetpoint:null, CoolSetpoint:null, HeatNextPeriod:null, CoolNextPeriod:null, StatusHeat:null, StatusCool:null, fanMode:1, DisplayUnits:C], timeout:10]

dev:3112020-12-05 18:53:32.304 debugHoneywell TCC 'setStatus'

dev:3112020-12-05 18:53:32.302 warnSomething went wrong during login: groovyx.net.http.HttpResponseException: Not Found

dev:3112020-12-05 18:53:32.068 debugHoneywell TCC 'login'

dev:3112020-12-05 18:53:32.063 debugsetThermostatFanMode: on

I have removed the trailing / and https:// and supplied the new log.
Also happy to supply the login detail if that helps you. I recently asked Residio to create this and they declined, perhaps they need to purchase a WorldWide license from you :wink:

I was able to create an Account on that site, which told me that it's a completely different structure.

I'll have to Reverse Engineer the entire site and I'm not going to be able to complete that in just a few hours.

Thank you for your time and consideration, it's appreciated. Happy to chat through to a possible solution,

It appears as if Honeywell may have renewed the SSL cert for the site and changed the URL that the driver uses. Looks like they stripped the "www." prefix from the URL. I was able to download the driver from GITHUB and update the URL and paste it in as a driver and it appears to be working again.

There may also be an issue that US and EU clients see different portal entry points.

When I log in I see

and then the Thermostats

There is (obviously) a difference between US and "international" user accounts... but the big element is that the human login is different from the API.

For the US, we know that the API is reached via: /portal/ (www.mytotalconnectcomfort.com/portal/) and using that in a browser redirects you to their 'human' side of the site.

For the UK and other 'international' the human URL is via: /account/
(international.mytotalconnectcomfort.com/account/) and the API is not yet known.

Using /portal/ on the international site yields:

Screen Shot 2020-12-08 at 10.40.57 AM

So clearly, the API in the US is spelled "portal", internationally it's spelled entirely differently. :slight_smile:

Thank you for this, I have had a dialogue with Resideo technical support and directed them toward your Github listing, how can I send you the email exchange ?
cheers
Paul

You can add it as an "issue" on github for that Code. :slight_smile:

If I get it wrong please delete it, it's going up now

1 Like

Honeywell has been saying the TCC will be depreciated and shut down at some point. They changed to Honeywell Home for many devices (in the US at least already), so you might have a hard time getting much support.

I have been working on a Honeywell Home version using there official APIs, it still has plenty of work ahead of it but feel free to take a look GitHub - thecloudtaylor/hubitat-honeywell (a new release is coming though HPM in the next few days once I bake the current changes).

I looked at trying to integrate with the TCC app without being able to use classes I just don't see a clean approach.

does anybody know the correct url to get the integrated humidifier status.. (not the home humid level) but the integrated honeywell humidifer device.. or any docmentation on the api would be helpfull, when i tried to query with the current code that calls GetHumData i get this error

dev:4382020-12-18 04:28:58.011 pm debugHumidifier data response = Invalid Action Error
var _unauthorizedAjaxRedirectTo = "/portal/";

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-33271749-1']);
    _gaq.push(['_setDomainName', 'alarmnet.com']);
    _gaq.push(['_trackPageview']);

    (function ()
    {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();

    var noCookiesErrorMessage = 'This site will not operate without Cookies enabled.   Refer to the FAQs tab on this site to learn about enabling Cookies for your browser.';
HoneywellHome.comHoneywell Home - My Total Connect Comfort
                    Contact Us
                FAQsMy AccountControl CenterSign Out
                        Welcome
                        laurenceInvalid Action ErrorThis site will not operate without JavaScript enabled.  Refer to the FAQs tab on this site to learn about enabling JavaScript for your browser.

This site will not operate without Cookies enabled. Refer to the FAQs tab on this site to learn about enabling Cookies for your browser.

        Invalid Action Error
                                                ErrorRequested action is invalid. Data may no longer exist or you have no access rights for this data or operation!HomeVersion 2.8.42 - November 10, 2020Privacy Statement and End User License AgreementTerms & ConditionsGlobal SiteFeedback  © 2020 Resideo Technologies, Inc. The Honeywell Home trademark is used under license from Honeywell International Inc. All rights reserved.EnglishFrançaisYour session is about to expire.You will be logged off in  seconds.Do you want to continue your session?
        var sessionTimeoutHandler = new SessionTimeoutHandler(
            "#dialog",
            "#dialog-countdown",
            "Yes",
            "No",
            '/portal/Account/LogOff',
            '/portal/Account/Timeout

in the actual web pages it is a subtab under menu.. i can get some data to come up by using that as follows but it is not in the correct format to read .. ie not json..

ie when calling this

dev:4382020-12-18 04:22:42.416 pm debugGetHumidity Request was successful, 200

dev:4382020-12-18 04:22:41.240 pm debugsending gethumidStatus request: [uri:https://mytotalconnectcomfort.com/portal/Device/Menu/454832, headers:[Accept:/, DNT:1, dataType:json, cache:false, Accept-Encoding:plain, Cache-

i can get some output like this.. i guess i could parse it but there must be an updated api call to get it in json format. just not sure what it is..

ie

                                        Comfort zone
                                    
                                Auto
                            
                                OFF
                            Auto: Humidifier operates to maintain your desired humidity level.Off: Humidifier is Off.Press Auto, move the slider bar to the humidity level you prefer, then press Submit.Note: If your thermostat was setup to humidify and dehumidify in the same system mode and you are sensing humidity from one location, the thermostat will automatically switch between humidification and dehumidification as needed to maintain the desired humidity levels.  A 15% separation between settings is maintained to prevent excessive energy use.  If you are sensing humidity from two different locations (example – main level and crawl space), the thermostat will allow humidification and dehumidification to operate at the same time.Note: There may be times that your desired humidity setting is not reached depending on the application.  Your HVAC dealer can help you to understand what to expect from your humidifier in these situations.After you select your desired settings, press Submit to save your changes.
                                                    $(function () {

ok its the nastiest code i've written but it works.. this is my version in my github not the latest..
does query to api comes back in raw html, parses and gets status and settings for whole house humidifier setup through total comfort.

summary of changes necessary:

   attribute "humidifierStatus", "string"
        attribute "humidifierSetPoint", "number"
        attribute "humidifierUpperLimit", "number"
        attribute "humidifierLowerLimit", "number"

     input name: "haveHumidifier", type: "enum", title: "Do you have an option whole house humidifier and want to enable it?", options: ["Yes", "No"], required: true, defaultValue: "No"
  
def refresh() {
    device.data.unit = "°${location.temperatureScale}"
    if (debugOutput) log.debug "here Honeywell TCC 'refresh', pollInterval: $pollInterval, units: = $device.data.unit"
    login()
    getHumidifierStatus()
    getStatus()
}


 
def getHumidifierStatus()
{   
   if (debugOutput)  log.debug "in get humid status enable humidity = $enableHumidity"
	if (haveHumidifier == 'No') return
	def params = [
        uri: "https://${tccSite()}/portal/Device/Menu/${settings.honeywelldevice}",
        headers: [
            'Accept': '*/*', // */ comment
            'DNT': '1',
            'dataType': 'json',
            'cache': 'false',
            'Accept-Encoding': 'plain',
            'Cache-Control': 'max-age=0',
            'Accept-Language': 'en-US,en,q=0.8',
            'Connection': 'keep-alive',
            'Host': 'rs.alarmnet.com',
            'Referer': 'https://${tccSite()}/portal/',
            'X-Requested-With': 'XMLHttpRequest',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36',
            'Cookie': device.data.cookiess
        ],
	  timeout: 10
    ]

    if (debugOutput) log.debug "sending gethumidStatus request: $params"

    def HumStatusLine = [:]  
    def CancelLine = [:]
    def Number HumLevel
    def Number HumMin
    def Number HumMax
    def HumStatus = [:]
    try {
     httpGet(params) { response ->
        if (debugOutput) log.debug "GetHumidity Request was successful, $response.status"
        if (debugOutput) log.debug "response = $response.data"
         
         def data = response.getData().toString()
         data.split("\n").each {
        
          //if (debugOutput) log.debug "working on \"${it}\""
        if (it.contains("CancelMin")) {
            CancelLine = it.trim()
          def pair = CancelLine.split(" ");
             if (debugOutput)   log.debug "got cancel min line: $CancelLine"
           // log.debug "pair = $pair"
             def p0 = pair[0]
             def p1 = pair[1]
             def p2 = pair[2]
  
           // log.debug "p0 = $p0"
           // log.debug "p1 = $p1"
           // log.debug "p2 = $p2"
            
            def pair2 = p1.split("%")
            //log.debug "pair2 = $pair2"
            def p20 = pair2[0]
            def p21 = pair2[1]
            def p22 = pair2[2]
            
            //log.debug "p20 = $p20"
            // log.debug "p21 = $p21"
            //log.debug "p22 = $p22"
                   
            HumLevel = p21.toInteger()
            HumMin = p20.toInteger()
            
           def pair3 = p2.split("%")
           //log.debug "pair3 = $pair3"
            def p30 = pair3[0]
           // log.debug "p30 = $p30"
          
            HumMax = p30.toInteger() 
            
            log.debug "-----------------------"
            log.debug "Got current humidifier level = $HumLevel"
            log.debug "Got Current humidifier Min = $HumMin"
            log.debug "Got Current humidifier Max= $HumMax"
        }
             
          if (it.contains("Humidifier operates")) {
            HumStatusLine = it.trim()
            if (debugOutput)  log.debug "Got Humidifier Status Line = $HumStatusLine"
            def start = HumStatusLine.indexOf("Humidifier is ")
            
              if (debugOutput) log.debug "got Start = $start"
              if ( (start) && (start > 0))
              {
               HumStatus = HumStatusLine.substring(start+14,start+17) 
               log.debug "got HumStatus String = $HumStatus" 
               log.debug "-----------------------"   
              }
        }     
      }
         
     	//Send events 
		sendEvent(name: 'humidifierStatus', value: HumStatus)
		sendEvent(name: 'humidifierSetPoint', value: HumLevel as Integer, unit:"%")
		sendEvent(name: 'humidifierUpperLimit', value: HumMax as Integer, unit:"%")
		sendEvent(name: 'humidifierLowerLimit', value: HumMin as Integer, unit:"%") 

    }
    } 
    catch (e) {
    	log.error "Something went wrong: $e"
    }

}

whole file in github: