home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
69.03k stars 28.27k forks source link

Honeywell Errors #115758

Open Shredder5262 opened 1 month ago

Shredder5262 commented 1 month ago

The problem

When setting the temperature on the thermostat card, i get this error . It seems all the integration can do is report the temperature. Any adjustments just throw an error.

2024-04-17 06:57:56.648 ERROR (MainThread) [somecomfort] Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/SubmitControlScreenChanges', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:37df69c5-87bd-4049-8b08-6c245f26c814', 'ADRUM_1': 'n:honeywell-prod_f7be1c76-506d-4111-81c5-fc62766aedb7', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:127', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Wed, 17 Apr 2024 11:57:56 GMT', 'Content-Length': '186', 'Set-Cookie': 'NSC_NZUDD-443-WT=ffffffff090ecc1c45525d5f4f58455e445a4a42378b;expires=Wed, 17-Apr-2024 11:59:56 GMT;path=/;secure;httponly')> ,). 2024-04-17 06:57:56.648 ERROR (MainThread) [homeassistant.components.honeywell.const] Invalid temperature 79.0: ('Service Unavailable %s.', 200) 2024-04-17 06:57:56.649 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140223520598592] Honeywell set temperature failed: invalid temperature: 79.0. Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 380, in async_set_temperature await self._device.set_setpoint_cool(temperature) File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/device.py", line 164, in set_setpoint_cool await self._client.set_thermostat_settings( File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/init.py", line 222, in set_thermostat_settings result = await self._post_json(url, json=data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/init.py", line 180, in _post_json return await self._request_json("post", *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/init.py", line 169, in _request_json raise ConnectionError("Service Unavailable %s.", resp.status) aiosomecomfort.exceptions.ConnectionError: ('Service Unavailable %s.', 200)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service response = await hass.services.async_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 2543, in async_call response_data = await coro ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 2580, in _execute_service return await target(service_call) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 971, in entity_service_call single_response = await _handle_entity_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1043, in _handle_entity_call result = await task ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/climate/init.py", line 917, in async_service_temperature_set await entity.async_set_temperature(*kwargs) File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 391, in async_set_temperature raise ValueError( ValueError: Honeywell set temperature failed: invalid temperature: 79.0. 2024-04-17 06:58:00.448 ERROR (MainThread) [somecomfort] Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/SubmitControlScreenChanges', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:9b0b4d5e-c48c-40a3-97a3-ae7313b3543a', 'ADRUM_1': 'n:honeywell-prod_f7be1c76-506d-4111-81c5-fc62766aedb7', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:127', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Wed, 17 Apr 2024 11:58:00 GMT', 'Content-Length': '186', 'Set-Cookie': 'NSC_NZUDD-443-WT=ffffffff090ecc1c45525d5f4f58455e445a4a42378b;expires=Wed, 17-Apr-2024 12:00:00 GMT;path=/;secure;httponly')> ,). 2024-04-17 06:58:00.449 ERROR (MainThread) [homeassistant.components.honeywell.const] Invalid temperature 80.0: ('Service Unavailable %s.', 200) 2024-04-17 06:58:00.449 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140223520598592] Honeywell set temperature failed: invalid temperature: 80.0. Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 380, in async_set_temperature await self._device.set_setpoint_cool(temperature) File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/device.py", line 164, in set_setpoint_cool await self._client.set_thermostat_settings( File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/init.py", line 222, in set_thermostat_settings result = await self._post_json(url, json=data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/init.py", line 180, in _post_json return await self._request_json("post", args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/aiosomecomfort/init.py", line 169, in _request_json raise ConnectionError("Service Unavailable %s.", resp.status) aiosomecomfort.exceptions.ConnectionError: ('Service Unavailable %s.', 200)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service response = await hass.services.async_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 2543, in async_call response_data = await coro ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 2580, in _execute_service return await target(service_call) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 971, in entity_service_call single_response = await _handle_entity_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1043, in _handle_entity_call result = await task ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/climate/init.py", line 917, in async_service_temperature_set await entity.async_set_temperature(**kwargs) File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 391, in async_set_temperature raise ValueError( ValueError: Honeywell set temperature failed: invalid temperature: 80.0.

What version of Home Assistant Core has the issue?

2024.4.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Honeywell Total Comfort

Link to integration documentation on our website

https://www.home-assistant.io/integrations/honeywell

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 1 month ago

Hey there @rdfurman, @mkmer, mind taking a look at this issue as it has been labeled with an integration (honeywell) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `honeywell` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign honeywell` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


honeywell documentation honeywell source (message by IssueLinks)

mkmer commented 1 month ago

Backend is down when you are trying to change the temperature. You need to create some retry logic in the automation to recover or "make sure" the change happens. explained here: https://github.com/home-assistant/core/issues/110500 and here: https://github.com/home-assistant/core/issues/115440

Shredder5262 commented 2 weeks ago

Backend is down when you are trying to change the temperature. You need to create some retry logic in the automation to recover or "make sure" the change happens. explained here: #110500 and here: #115440

I don't even have an automation set up for this integration, this device simply just exists in HA. Between my first post and now, I did discover that there is a slave device for reporting outdoor temperatures on my network that wasn't plugged in for a month, that has been resolved, but i don't think it's related to the error messages being experienced here.

I see another error message for this integration today. There needs to be some error handling put into the code of this integration.

Service Unavailable 500, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/5800342) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/5800342', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:61f66c4c-978e-4753-9161-18ecd4a1189e', 'ADRUM_1': 'n:honeywell-prod_f7be1c76-506d-4111-81c5-fc62766aedb7', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:134', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Fri, 03 May 2024 20:47:40 GMT', 'Content-Length': '184', 'Set-Cookie': 'NSC_NZUDD-443-WT=ffffffff090ecc1a45525d5f4f58455e445a4a42378b;expires=Fri, 03-May-2024 20:49:41 GMT;path=/;secure;httponly')> ,).

Another one , only a couple hours later, Please Fix First occurred: 5:10:07 PM (1 occurrences) Last logged: 5:10:07 PM

Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/5800342) [302 Found]> <CIMultiDictProxy('Cache-Control': 'private, s-maxage=0', 'Content-Type': 'text/html; charset=utf-8', 'Location': '/portal/Error?aspxerrorpath=/portal/Device/CheckDataSession/5800342', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:7ba95ebd-1924-42bd-988c-9b3016a2231f', 'ADRUM_1': 'n:honeywell-prod_f7be1c76-506d-4111-81c5-fc62766aedb7', 'ADRUM_2': 'i:197974', 'ADRUM_3': 'e:161', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'Date': 'Fri, 03 May 2024 22:10:06 GMT', 'Content-Length': '184', 'Set-Cookie': 'NSC_NZUDD-443-WT=ffffffff090ecc1a45525d5f4f58455e445a4a42378b;expires=Fri, 03-May-2024 22:12:07 GMT;path=/;secure;httponly')> ,).

Shredder5262 commented 1 week ago

Perhaps worth mentioning here, today i migrated my entire Home assistant setup from an Oracle VM machine to a VMware workstation player 17 machine (Which was surprisingly and possibly the easiest thing i've ever done in HA) because of machine instability issues with freezing and constantly rebooting for the past couple of years and this is even a new build/setup. Perhaps without the constant reboots that i would see less error messages with integrations.

mkmer commented 1 week ago

I have 38 instances of Service Unavailable 200, for yesterday and one Service Unavailable 500, Since midnight I already have 3 Service Unavailable 200. There really isn't much I can think of to "change" this behavior on the HA side other than mask the read errors (which we do) for a number of retries.
On the service side, HA doesn't have a built in "retry", so for now we need to add retries into our automation. It should be possible to retry a few times (how many??? and/or for how long) but it starts to get "weird" in the service if you make multiple adjustments on a card or via automation while it's retrying. I am very open to suggestions to help "bullet" proof it.

bakerkj commented 1 week ago

I have 5 thermostats. There are no automations running against these thermostats, I believe these errors are caused simply from home assistant fetching the state of the thermostats.

I see hundreds of errors similar to these each day with a mixture of 200s as well as 500s.

Examples:

2024-05-06 15:59:13.603 ERROR (MainThread) [somecomfort] Service Unavailable 200, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/106314) [302 Found]>
2024-05-06 15:58:14.618 ERROR (MainThread) [somecomfort] Service Unavailable 500, (<ClientResponse(https://www.mytotalconnectcomfort.com/portal/Device/CheckDataSession/106310) [302 Found]>
mkmer commented 1 week ago

You can prove your theory by turning off polling and triggering it yourself at various rates.