[RELEASE] Honeywell TCC Total Connect Comfort Parent/Child Drivers

FYI, this is working great for me. The only thing I'd ask, and I just need to add it myself, is the ability for the log.info messages to continue to be displayed when debug is off. I would love to be able to look in the logs and see when cool was called, when setFollowSchedule was called, etc.

Released v2.0.9 "corrected log.info lines to be qualified by descTextEnable vs debugOutput"

2 Likes

Thank you for creating this and for your directions. Both extremely appreciated!!

I'm a complete Hubitat neophyte having trouble with almost everything I try to do in Hubitat, but I was able to install this, create the virtual devices, install tiles on my dashboard, confirm it is working not just to see the temp but also to control the temp (takes about 2 seconds to get to my Minisplit T-stat). I also REALLY appreciate the log - I'm able to see info about my system in your log that is not visible to me any other way. What this tells me is the Honeywell Total Connect Comfort site is pulling far more data from my system than either the Honeywell website or my local T-stat will share with me.
THANK YOU!!!

2 Likes

@csteele : Thank you again for creating this!

In case this helps someone: Somehow, I clicked "Add Thermostat" too many times and have double the number of child devices than I need. I got a bit confused as the "Remove Device" at the lower right of the page is grayed out and wont' work. Finally figured out that I could click your "Delete this Thermostat" button in the commands section and that works great.

Also, my "Fan Operating State" and "Thermostat Operating State" have continuously both displayed "Idle" for the entire month I've had this installed. I don't know if this is a Hubitat/Hubitat Driver issue or a Honeywell issue. My T-stats are the MRCH1's which seem to share very little info with the Honeywell site.

"Thermostat Operating State" is a value derived from EquipmentOutputStatus coded values as returned by the Thermostat.

The driver is dominated by two methods.. send commands and get status. Commands are sent and in order to confirm, status is requested. Or periodically status is requested (Poll). Or someone pushes a button (Refresh) and status is requested.

In all of those cases, status from the Thermostat (via the cloud) is a json array of key:value pairs. The driver receives a few dozen and slots them into Attributes.

EquipmentOutputStatus is a coded value of 0-2 and those numbers are converted to a string value like this:

String operatingState = [ 0: 'idle', 1: 'heating', 2: 'cooling' ][equipmentStatus] ?: 'idle'

If you have the Humidifier, then operatingState might be adjusted but then thermostatOperatingState (the hubitat Attribute) is populated from operatingState.

TL:DR
Yes, "Fan Operating State" and "Thermostat Operating State" are just the decode of values the Thermostat offers. Nothing in equals nothing out. "Idle" is the default.

I'll send a PM about how to check the values that the Thermostat is returning.

I saw in another topic:

I thought it would be equally useful to the TCC Thermostat community. Thanks to @WindowWasher

I don't know if this is the proper forum to ask this, but figured I would start here.
I have this driver up and running and working properly on my Hubitat dashboard. No issues there.

However, I also use Sharptools for a wall mount tablet. I exposed this device to Sharptools and was able to add it to that dashboard as a tile. But it's not displaying the temperature set points on the Sharptools tile. It does show the humidity, current temp, and fan setting. It also has the appropriate adjustments for my Honeywell thermostat and making any changes (such as the temperature set point, fan settings, etc) do get pushed back to Hubitat and my thermostat. So it is communicating properly. That tells me it's likely a data display issue but I have no clue where to look to try and resolve it.

To expose it to Sharptools I selected the 'Which thermostats?' option under the Sharptools app in Hubitat and selected this device.

Below are grabs of the tile in Hubitat as well as Sharptools. As mentioned, Sharptools sees it as a 'Thing' (along with my other Hubitat devices). The only options I see in Sharptools for data is to show humidity or not.

Anyone have any ideas?
Hubitat tile:
Hubitat_TCC

Sharptools tile:
Sharptools_TCC

@josh will need to interpret this I imagine...

I don't know how Sharptools interacts but the basics have to be roughly the same. :slight_smile:

My Get Attributes App displays the following for the Honeywell TCC driver and is what the Hubitat Dashboard is using to display its tile:

Screen Shot 2022-08-26 at 12.46.31 PM

which I like because it's a prettier version of what's in the driver source:

        capability "Polling"
        capability "Thermostat"
        capability "Refresh"
        capability "Temperature Measurement"
        capability "Sensor"
        capability "Relative Humidity Measurement"
        capability "Initialize"   
        command    "heatLevelUp"
        command    "heatLevelDown"
        command    "coolLevelUp"
        command    "coolLevelDown"
        command    "setFollowSchedule"
        attribute  "outdoorHumidity",    "number"
        attribute  "outdoorTemperature", "number"
        attribute  "lastUpdate",         "string"
        attribute  "followSchedule",     "string"
        attribute  "fanOperatingState",  "string"
        
        attribute "humidifierStatus", "string"
        attribute "humidifierSetPoint", "number"
        attribute "humidifierUpperLimit", "number"
        attribute "humidifierLowerLimit", "number"

and also 'decodes' the attributes and commands that are buried within a Capability.

But independent of the format, the specifics are all there. @josh will know what attribute is displaying as a "?" -- and I presume, will notice any spelling or case differences. :smiley:

If you are in auto mode on a single height thermostat layout, that value is looking for the thermostatSetpoint.

The easiest fix is to switch to the double height thermostat layout.

Awesome! That worked.
Thank you both for helping with this. I'm fairly new to Hubitat, having recently moved to it after the latest Wink outage/fiasco and deciding I had finally had enough of that nonsense. Just wish I had done it much, much sooner and this is SO MUCH better.
Thanks again.

3 Likes

just found a bug in this after all this time.. at least in the non parent child i was running..

You set emergency heat to on if switchposition =4
and assume 5 = auto

but for themotats with no emergency heat position 4 is auto not 5..

here is the change to the older driver.

if (isEmergencyHeatAllowed) n = [ 1: 'heat', 2: 'off', 3: 'cool', 4: 'emergency heat', 5: 'auto'][switchPos] ?: 'auto'
else n = [ 1: 'heat', 2: 'off', 3: 'cool', 4: 'auto'][switchPos] ?: 'auto'

i have one therm. where 4= auto and another where 5=auto..

strange.

Released v2.0.12 to use "\" for Platform 2.3.3.x compatibility.

2 Likes

So I followed you over here since it sounds more gooder than version C... and has been patched for the recent os update... (Thx for that pointer!)

Question - renaming child devices? Possible? I'd like to distinguish by name, not room... maybe it's as easy as changing the name before "add child"? scared to try till I get my second question answered... :wink:
Second question - How do I delete a child? there doesn't seem to be a remove device button... (see how/why these two questions are linked?)

All Hubitat devices have two fields for naming...

Screen Shot 2022-09-25 at 12.58.07 PM

The Label is initially empty and therefore the Name is used. But if you simply add a Label, it will be what's shown in the GUI.

Screen Shot 2022-09-25 at 12.59.56 PM

To delete a Child, push the button :smiley:

Screen Shot 2022-09-25 at 12.57.59 PM

On the Device Info page. But the Caution is real. Click it and it's GONE.

1 Like

I like it! Thanks for the quick 411. Both suggestions work fine....

1 Like

I had this same issue with my thermostats, and this addition to the parent driver resolved it. Thanks.

@csteele Anyone reporting an issue wherein calls to TCC are being logged as:

dev:8722022-11-10 21:01:10.981infoStat - Upstairs TCC transaction: retry login
dev:8702022-11-10 21:01:10.974debugAdding cookie to collection: ADRUM_BT1=R:0|i:197975|e:89
dev:8702022-11-10 21:01:10.971debugAdding cookie to collection: SameSite=None
dev:8702022-11-10 21:01:10.968debugAdding cookie to collection: ADRUM_BTa=R:0|g:xxxxxxxx-ed57-430e-bfb8-527f669d493e|n:honeywell-prod_f7be1c76-xxxx-xxxx-xxxx-fc62766aedb7
dev:8702022-11-10 21:01:10.965debugAdding cookie to collection: ASP.NET_SessionId=an0la0zi2qz2zw2evxgkdlb2
dev:8702022-11-10 21:01:10.963debugRequest was successful, 302
dev:8702022-11-10 21:01:10.231debugHoneywell TCC 'login'
dev:8722022-11-10 21:01:04.227infoStat - Upstairs TCC transaction: retry login
dev:8702022-11-10 21:01:04.220debugAdding cookie to collection: thlang=en-US
dev:8702022-11-10 21:01:04.216debugAdding cookie to collection:

This just started today and has continued into the evening now. My Honeywell TCC mobile app logs in just fine and I can make manual adjustments but my automations are sunk.

I posted this earlier on another thread that I probably misinterpreted. But two people report it fixed it for them too.

1 Like

Edit in place, awaiting next automation run. Thanks very much for the quick response - much appreciated!

EDIT/UPDATE: confirmed, this did the trick @csteele

1 Like

I changed the value in line 792 to 8 and I'm all set. Thanks so much!!!

2 Likes