Honeywell Total Comfort Integration (polling rates)

Hello,

I am using the Honeywell Total Comfort integration with 12 thermostats, and noticed that sometimes my automations are not triggering thermostat preset changes as desired.

When I check the log, I see that the automation is executing but it cannot get the Total Comfort cloud to respond to its request. I know that selecting a Zwave or Zigbee thermostat would have been the wiser choice, however the investment has been made and I need to push forward with making what I have work.

I suspect that I have too many thermostats, and that the HA integration is polling the Honeywell cloud too quickly. As a result, the Honeywell cloud begins to ignore my HA Instance, and sometimes even after a few days will log me out of the Honeywell cloud and force me to reload and relogin the integration.

The first thing I’ve done is to disable “Polling for Updates” on the integration. This is not ideal but I suspect will cut down significantly on the number of requests to the Honeywell cloud.

I was wondering if there is a way to slow down the polling rate further, likely by a factor of 12 (12 thermostats) and/or stagger the polling events. IE: Don’t poll al thermostats during a heartbeat.

Anyone have any experience or can provide any insight?

Here is an example of the error in the Logs.

My automation runs, selects one of the logic options to change the Preset on the thermostat for the room. Then subsequently the Honeywell cloud is not responding to HA’s request to change the thermostat.

Logger: homeassistant.components.automation.room_9_timer_closed_hvac_on
Source: helpers/script.py:1918
integration: Automation (documentation, issues)
First occurred: 10:05:03 AM (3 occurrences)
Last logged: 10:05:03 AM

Room_9_Timer_Closed_HVAC_On: Choose at step 1: choice 2: Choose at step 1: choice 3: Error executing script. Error for device at pos 1: Honeywell could not set system mode.
Room_9_Timer_Closed_HVAC_On: Choose at step 1: choice 2: Error executing script. Error for choose at pos 1: Honeywell could not set system mode.
Room_9_Timer_Closed_HVAC_On: Error executing script. Error for choose at pos 1: Honeywell could not set system mode.
Logger: somecomfort
Source: components/honeywell/climate.py:523
First occurred: April 9, 2024 at 5:01:37 AM (509 occurrences)
Last logged: 10:24:18 AM

Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/8770685) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/8770685', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:22d4cd2d-f0f7-48f2-a414-f209c472366f', 'ADRUM_1': 'XXXXXXXXXXXXXXXXXXXXXX', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:126', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Thu, 11 Apr 2024 17:19:46 GMT', 'Content-Length': '184', 'Set-Cookie': 'XXXXXXXXXXXXXXXXXXXXXX;expires=Thu, 11-Apr-2024 17:21:47 GMT;path=/;secure;httponly')> ,).

Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/8767023) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/8767023', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:12d2faba-b164-42f4-9e0b-7ae884e5f0a3', 'ADRUM_1': 'XXXXXXXXXXXXXXXXXXXXXX', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:126', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Thu, 11 Apr 2024 17:19:49 GMT', 'Content-Length': '184', 'Set-Cookie': 'XXXXXXXXXXXXXXXXXXXXXX;expires=Thu, 11-Apr-2024 17:21:50 GMT;path=/;secure;httponly')> ,).

Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/8774585) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/8774585', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:bff2125c-e4af-419c-93c5-d0cf511c9a24', 'ADRUM_1': 'XXXXXXXXXXXXXXXXXXXXXX', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:123', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Thu, 11 Apr 2024 17:22:47 GMT', 'Content-Length': '184', 'Set-Cookie': 'XXXXXXXXXXXXXXXXXXXXXX;expires=Thu, 11-Apr-2024 17:24:47 GMT;path=/;secure;httponly')> ,).

Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/8433840) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/8433840', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:a9b24588-553c-4df4-b06d-b45b46a05091', 'ADRUM_1': 'XXXXXXXXXXXXXXXXXXXXXX', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:119', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Thu, 11 Apr 2024 17:23:16 GMT', 'Content-Length': '184', 'Set-Cookie': 'XXXXXXXXXXXXXXXXXXXXXX;expires=Thu, 11-Apr-2024 17:25:17 GMT;path=/;secure;httponly')> ,).

Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/8767023) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/8767023', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:afffd5f2-768f-47f4-b27f-9dab28d85f25', 'ADRUM_1': 'XXXXXXXXXXXXXXXXXXXXXX', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:138', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Thu, 11 Apr 2024 17:24:17 GMT', 'Content-Length': '184', 'Set-Cookie': 'XXXXXXXXXXXXXXXXXXXXXX;expires=Thu, 11-Apr-2024 17:26:18 GMT;path=/;secure;httponly')> ,).

I think you are on the right track with disabling the polling but I would log this issue on GitHub.

Looking into this some more… With “enable polling for updates” disabled on the Honeywell integration, the entities will need to be updated manually or via an automation. This should be able to be done (I have not tested this) using the homeassistant.update_entity service. Then you should be able to control the polling rate.

Using this? I’m new to HA so I’m still on the learning curve.

I’ll try to log a issue via Github.

Yes.

Note: I don’t use this type of automation (I use Node-Red) so I won’t be able to help you create / test this.

No worries.

Any lead is a good lead. Gotta chase them all down. I appreciate the insight.

It works.

I did a very dirty automation. It checks thermostat entity 1 by 1, with a 59 second delay in between. I then put a trigger to start the automation on every 12mins of every hour.

Its not pretty, but it should work for now.

1 Like

You made a significant jump up the curve. Congrats!

1 Like