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
72.81k stars 30.51k forks source link

Jandy iAqaulink Integration loads, then fails #87431

Closed rosshenning closed 1 year ago

rosshenning commented 1 year ago

The problem

This has been happening over and over; the iAqualink integration will load fine, and everything will work, but then at some point in the following hour or two, the integration will fail. It doesn't appear to be just a minor fluke, but something that continues to happen over and over.

What version of Home Assistant Core has the issue?

Home Assistant 2023.2.1

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

Jandy iAqualink

Link to integration documentation on our website

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

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Logger: homeassistant.config_entries
Source: components/iaqualink/__init__.py:75
First occurred: 3:39:08 PM (1 occurrences)
Last logged: 3:39:08 PM

Error setting up entry <myEmailAddress> for iaqualink
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/anyio/_core/_sockets.py", line 218, in connect_tcp
    await event.wait()
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1842, in wait
    if await self._event.wait():
  File "/usr/local/lib/python3.10/asyncio/locks.py", line 214, in wait
    await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/asyncio.py", line 111, in connect_tcp
    stream: anyio.abc.ByteStream = await anyio.connect_tcp(
  File "/usr/local/lib/python3.10/site-packages/anyio/_core/_sockets.py", line 213, in connect_tcp
    async with create_task_group() as tg:
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 658, in __aexit__
    raise CancelledError
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/asyncio.py", line 110, in connect_tcp
    with anyio.fail_after(timeout):
  File "/usr/local/lib/python3.10/site-packages/anyio/_core/_tasks.py", line 118, in __exit__
    raise TimeoutError
TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 86, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 63, in handle_async_request
    stream = await self._connect(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 111, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/auto.py", line 29, in connect_tcp
    return await self._backend.connect_tcp(
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/asyncio.py", line 109, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc)
httpcore.ConnectTimeout

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 382, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 75, in async_setup_entry
    await aqualink.login()
  File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 126, in login
    r = await self._send_login_request()
  File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 121, in _send_login_request
    return await self.send_request(
  File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 98, in send_request
    r = await self._client.request(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send
    response = await self._send_handling_auth(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request
    response = await transport.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectTimeout

Additional information

It also threw up this warning. I'm not sure if this is a fluke, or if this has something to do with the fact that I have a variable speed pump on my pool. BTW...Does the integration not have support to change the pump speed? Is there a place to log requests for this functionality?

home-assistant[bot] commented 1 year ago

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

Code owner commands Code owners of `iaqualink` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Change the title of the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign iaqualink` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


iaqualink documentation iaqualink source (message by IssueLinks)

bgentry commented 1 year ago

Related to your last question… I’m not seeing any way to even view the current pump speed or priming status through this integration, let alone edit them. I wonder if this is even something the API exposes or if it’s restricted to the web Ui?

Same with OneTouch modes, although those are at least in the iAquaLink app so probably exposed somehow. Freeze protection status of the pump is also exposed in the UI so may be available to this integration.

rosshenning commented 1 year ago

Hi Blake, I agree it’s weird and shortsighted on the part of Jandy. Based on what I’ve seen even in the Jandy app, I save different speeds under “One Touch” saved settings, which are essentially groupings of states of the different devices. That’s the only way to get to them via the app. You say that those onetouch settings are available in the API?

Thanks, Ross Henning

From: Blake Gentry @.> Sent: Sunday, February 5, 2023 9:41 AM To: home-assistant/core @.> Cc: Ross Henning @.>; Author @.> Subject: Re: [home-assistant/core] Jandy iAqaulink Integration loads, then fails (Issue #87431)

Related to your last question… I’m not seeing any way to even view the current pump speed or priming status through this integration, let alone edit them. I wonder if this is even something the API exposes or if it’s restricted to the web Ui?

Same with OneTouch modes, although those are at least in the iAquaLink app so probably exposed somehow. Freeze protection status of the pump is also exposed in the UI so may be available to this integration.

— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/87431#issuecomment-1417984546, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5HIPLC2YKTSE4RSCC4MQSDWV63XFANCNFSM6AAAAAAUROVUM4. You are receiving this because you authored the thread.Message ID: @.**@.>>

rosshenning commented 1 year ago

Also, the more I watch this, the more it appears that the error that shuts down the integration must happen when I restart my Home Assistant, and then is corrected when I manually restart the iAqualink integration service. Does that help in tracking down what's causing the issue?

rosshenning commented 1 year ago

OneTouch in the API Confirmed: I'm moving from Homeseer to Home Assistant. I went back to look at the integration in HomeSeer for iAqualink, and the OneTouch modes are exposed in that integration.

matthewhadley commented 1 year ago

I suspect this is related to https://github.com/home-assistant/core/issues/82497 (closed due to inactivity).

I am experiencing this issue, but it seems worse since 2023.2.

Some short amount of time after restarting HomeAssistant, attempts to activate a pool pump switch result in this message in the UI:

Failed to call service switch/turn_off. <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

The logs have this error:

Logger: homeassistant.components.websocket_api.http.connection
Source: components/iaqualink/utils.py:14 
Integration: Home Assistant WebSocket API (documentation, issues) 
First occurred: 12:13:57 PM (2 occurrences) 
Last logged: 12:15:39 PM

[140522167876576] <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>
[140522156464528] <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/h2/connection.py", line 224, in process_input
    func, target_state = self._transitions[(self.state, input_)]
KeyError: (<ConnectionState.CLOSED: 3>, <ConnectionInputs.SEND_HEADERS: 0>)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 106, in handle_async_request
    await self._send_request_headers(request=request, stream_id=stream_id)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 203, in _send_request_headers
    self._h2_state.send_headers(stream_id, headers, end_stream=end_stream)
  File "/usr/local/lib/python3.10/site-packages/h2/connection.py", line 766, in send_headers
    self.state_machine.process_input(ConnectionInputs.SEND_HEADERS)
  File "/usr/local/lib/python3.10/site-packages/h2/connection.py", line 228, in process_input
    raise ProtocolError(
h2.exceptions.ProtocolError: Invalid input ConnectionInputs.SEND_HEADERS in state ConnectionState.CLOSED

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request
    return await self._connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 139, in handle_async_request
    raise RemoteProtocolError(self._connection_error_event)
httpcore.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

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 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 680, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 968, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 720, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 195, in wrapper
    await func(self, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/switch.py", line 64, in async_turn_off
    await await_or_reraise(self.dev.turn_off())
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/utils.py", line 14, in await_or_reraise
    await awaitable
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/device.py", line 134, in turn_off
    await self._toggle()
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/device.py", line 147, in _toggle
    await self.system.set_aux(self.data["aux"])
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 174, in set_aux
    r = await self._send_session_request(aux)
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 72, in _send_session_request
    return await self.aqualink.send_request(url)
  File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 98, in send_request
    r = await self._client.request(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send
    response = await self._send_handling_auth(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request
    response = await transport.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

There are multiple of these other errors in the log:

Logger: homeassistant
Source: components/iaqualink/__init__.py:151 
First occurred: 12:10:38 PM (24 occurrences) 
Last logged: 12:16:23 PM

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request
    return await self._connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 144, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 112, in handle_async_request
    status, headers = await self._receive_response(
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 229, in _receive_response
    event = await self._receive_stream_event(request, stream_id)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 260, in _receive_stream_event
    await self._receive_events(request, stream_id)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 289, in _receive_events
    raise RemoteProtocolError(event)
httpcore.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 151, in _async_systems_update
    await system.update()
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 91, in update
    r1 = await self._send_home_screen_request()
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 75, in _send_home_screen_request
    r = await self._send_session_request(IAQUA_COMMAND_GET_HOME)
  File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 72, in _send_session_request
    return await self.aqualink.send_request(url)
  File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 98, in send_request
    r = await self._client.request(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send
    response = await self._send_handling_auth(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request
    response = await transport.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

If you attempt to reload the integration, the following error shows in the logs (note I have no light configured):

Logger: homeassistant.config_entries
Source: helpers/entity_component.py:181 
First occurred: 12:18:08 PM (1 occurrences) 
Last logged: 12:18:08 PM

Error unloading entry Jandy iAqualink for light
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 533, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 625, in async_unload_entry
    return await component.async_unload_entry(entry)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 181, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!

The integration is then completely unavailable. Subsequent attempts to reload the integration cause a UI popup with this wording:

Restart Home Assistant to finish reloading this integration

At this point Home Assistant needs to be restarted and the cycle begins again.

rosshenning commented 1 year ago

Yes, it’s a similar issue. After monitoring it for a while, I’ve found that generally, when I restart HA, the Jandy integration ends up failing either during the restart or shortly thereafter. If I go and restart the integration manually, it starts up fine and keeps running with no issues.

All of that being said, today I restarted HA just a moment ago and the Jandy integration is still up and running. No rhyme or reason.

From: Matthew Hadley @.> Sent: Wednesday, February 8, 2023 1:23 PM To: home-assistant/core @.> Cc: Ross Henning @.>; Author @.> Subject: Re: [home-assistant/core] Jandy iAqaulink Integration loads, then fails (Issue #87431)

I suspect this is related to #82497https://github.com/home-assistant/core/issues/82497 (closed due to inactivity).

I am experiencing this issue, but it seems worse since 2023.2.

Some short amount of time after restarting HomeAssistant, attempts to activate a pool pump switch result in this message in the UI:

Failed to call service switch/turn_off. <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

The logs have this error:

Logger: homeassistant.components.websocket_api.http.connection

Source: components/iaqualink/utils.py:14

Integration: Home Assistant WebSocket API (documentation, issues)

First occurred: 12:13:57 PM (2 occurrences)

Last logged: 12:15:39 PM

[140522167876576] <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

[140522156464528] <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

Traceback (most recent call last):

File "/usr/local/lib/python3.10/site-packages/h2/connection.py", line 224, in process_input

func, target_state = self._transitions[(self.state, input_)]

KeyError: (<ConnectionState.CLOSED: 3>, <ConnectionInputs.SEND_HEADERS: 0>)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 106, in handle_async_request

await self._send_request_headers(request=request, stream_id=stream_id)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 203, in _send_request_headers

self._h2_state.send_headers(stream_id, headers, end_stream=end_stream)

File "/usr/local/lib/python3.10/site-packages/h2/connection.py", line 766, in send_headers

self.state_machine.process_input(ConnectionInputs.SEND_HEADERS)

File "/usr/local/lib/python3.10/site-packages/h2/connection.py", line 228, in process_input

raise ProtocolError(

h2.exceptions.ProtocolError: Invalid input ConnectionInputs.SEND_HEADERS in state ConnectionState.CLOSED

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions

yield

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request

resp = await self._pool.handle_async_request(req)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request

raise exc

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request

response = await connection.handle_async_request(request)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request

return await self._connection.handle_async_request(request)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 139, in handle_async_request

raise RemoteProtocolError(self._connection_error_event)

httpcore.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

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 200, in handle_call_service

await hass.services.async_call(

File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call

task.result()

File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service

await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(

File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service

await service.entity_service_call(

File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 680, in entity_service_call

future.result()  # pop exception if have

File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 968, in async_request_call

await coro

File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 720, in _handle_entity_call

await result

File "/usr/src/homeassistant/homeassistant/components/iaqualink/init.py", line 195, in wrapper

await func(self, *args, **kwargs)

File "/usr/src/homeassistant/homeassistant/components/iaqualink/switch.py", line 64, in async_turn_off

await await_or_reraise(self.dev.turn_off())

File "/usr/src/homeassistant/homeassistant/components/iaqualink/utils.py", line 14, in await_or_reraise

await awaitable

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/device.py", line 134, in turn_off

await self._toggle()

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/device.py", line 147, in _toggle

await self.system.set_aux(self.data["aux"])

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 174, in set_aux

r = await self._send_session_request(aux)

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 72, in _send_session_request

return await self.aqualink.send_request(url)

File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 98, in send_request

r = await self._client.request(

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request

return await self.send(request, auth=auth, follow_redirects=follow_redirects)

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send

response = await self._send_handling_auth(

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth

response = await self._send_handling_redirects(

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects

response = await self._send_single_request(request)

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request

response = await transport.handle_async_request(request)

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request

with map_httpcore_exceptions():

File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit

self.gen.throw(typ, value, traceback)

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions

raise mapped_exc(message) from exc

httpx.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

There are multiple of these other errors in the log:

Logger: homeassistant

Source: components/iaqualink/init.py:151

First occurred: 12:10:38 PM (24 occurrences)

Last logged: 12:16:23 PM

Error doing job: Task exception was never retrieved

Traceback (most recent call last):

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions

yield

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request

resp = await self._pool.handle_async_request(req)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request

raise exc

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request

response = await connection.handle_async_request(request)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request

return await self._connection.handle_async_request(request)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 144, in handle_async_request

raise exc

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 112, in handle_async_request

status, headers = await self._receive_response(

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 229, in _receive_response

event = await self._receive_stream_event(request, stream_id)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 260, in _receive_stream_event

await self._receive_events(request, stream_id)

File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http2.py", line 289, in _receive_events

raise RemoteProtocolError(event)

httpcore.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

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

Traceback (most recent call last):

File "/usr/src/homeassistant/homeassistant/components/iaqualink/init.py", line 151, in _async_systems_update

await system.update()

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 91, in update

r1 = await self._send_home_screen_request()

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 75, in _send_home_screen_request

r = await self._send_session_request(IAQUA_COMMAND_GET_HOME)

File "/usr/local/lib/python3.10/site-packages/iaqualink/systems/iaqua/system.py", line 72, in _send_session_request

return await self.aqualink.send_request(url)

File "/usr/local/lib/python3.10/site-packages/iaqualink/client.py", line 98, in send_request

r = await self._client.request(

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request

return await self.send(request, auth=auth, follow_redirects=follow_redirects)

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send

response = await self._send_handling_auth(

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth

response = await self._send_handling_redirects(

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects

response = await self._send_single_request(request)

File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request

response = await transport.handle_async_request(request)

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request

with map_httpcore_exceptions():

File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit

self.gen.throw(typ, value, traceback)

File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions

raise mapped_exc(message) from exc

httpx.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:963, additional_data:None>

If you attempt to reload the integration, the following error shows in the logs (note I have no light configured):

Logger: homeassistant.config_entries

Source: helpers/entity_component.py:181

First occurred: 12:18:08 PM (1 occurrences)

Last logged: 12:18:08 PM

Error unloading entry Jandy iAqualink for light

Traceback (most recent call last):

File "/usr/src/homeassistant/homeassistant/config_entries.py", line 533, in async_unload

result = await component.async_unload_entry(hass, self)

File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 625, in async_unload_entry

return await component.async_unload_entry(entry)

File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 181, in async_unload_entry

raise ValueError("Config entry was never loaded!")

ValueError: Config entry was never loaded!

The integration is then completely unavailable. Subsequent attempts to reload the integration cause a UI popup with wording something like:

Please restart Home Assistant to reload this integration

At this point Home Assistant needs to be restarted and the cycle begins again.

— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/87431#issuecomment-1423055518, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5HIPLD4KSCVDY3NUXVEOULWWPQADANCNFSM6AAAAAAUROVUM4. You are receiving this because you authored the thread.Message ID: @.**@.>>

matthewhadley commented 1 year ago

Getting a lot of these errors

Logger: homeassistant Source: components/iaqualink/init.py:151 First occurred: 5:02:30 PM (694 occurrences) Last logged: 7:55:46 PM

Error doing job: Task exception was never retrieved

Mhengst145 commented 1 year ago

I am also getting the same message. It started on 2/8/23. It worked fine on 2/7/23.

wheindl commented 1 year ago

I am having the same issue as well. I believe it was happening on the 2023.1 release but it's gotten worse. I do not have a variable speed pump so I don't think that is a factor. I get the same error messages.

Brandon168 commented 1 year ago

It’s failing for me as well since upgrading to the latest.

markus99 commented 1 year ago

FWIW, I'm running 2023.1.7 and it's happening. Doesn't seem HA version dependent - and further that Jandy/iAqualink changed something(s) w/ their API... :(