I’m new to HA as of today, and so far, loving it! I have multiple integrations working, webhooks implemented, and more. However, I’m stuck trying to get the Total Connect integration to authenticate me. Note: This is the alarm integration, not the Total Connect Comfort (which I also have, and is working fine) which is the thermostat integration. My end goal is to have automations that run based on a Trigger when the alarm is armed/disarmed.
I’ve tried logging into both my “admin” account, and creating a new “standard” account (as recommended by the documentation). I can log into both fine at https://totalconnect2.com. But when I try to do so via the TC integration I get “Unknown error occurred”. HA logs show the issue is “Server returned an empty response”.
My system is professionally managed, so I’m not sure what model my system is (and I don’t think it’s printed on the circuit board). But the integration documentation implies that if I can log into the TC2 site, I should be good to go. And https://status.resideo.com shows all Honeywell servers are healthy.
Any suggestions?
System info:
- HA Core: 2025.1.4
- Home Assistant OS
- Hardware: Yellow w/ CM5
== log snipped ==
[31m2025-01-30 01:13:14.345 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
return await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 341, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 388, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flow, cur_step["step_id"], user_input
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 491, in _async_handle_step
result: _FlowResultT = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/totalconnect/config_flow.py", line 55, in async_step_user
client = await self.hass.async_add_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TotalConnectClient, username, password, None
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.13/site-packages/total_connect_client/client.py", line 96, in __init__
self.authenticate()
~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/site-packages/total_connect_client/client.py", line 296, in authenticate
response = self.request(
operation_name,
(self.username, self.password, self.API_APP_ID, self.API_APP_VERSION),
)
File "/usr/local/lib/python3.13/site-packages/total_connect_client/client.py", line 235, in request
self._raise_for_retry(response)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/total_connect_client/client.py", line 157, in _raise_for_retry
rc = _ResultCode.from_response(response)
File "/usr/local/lib/python3.13/site-packages/total_connect_client/const.py", line 154, in from_response
raise ServiceUnavailable(f"Server returned empty response, check server status at {STATUS_URL}") from None
total_connect_client.exceptions.ServiceUnavailable: Server returned empty response, check server status at https://status.resideo.com/e[0m