iMicknl / python-overkiz-api

Async Python wrapper to interact with internal Somfy TaHoma API, or other OverKiz API's.
MIT License
48 stars 29 forks source link

HexaConnect / Hexaom - KizConnect Rail Din - Too many request via Home Assistant #1406

Open makak06 opened 4 days ago

makak06 commented 4 days ago

Hello All,

I have a KizConnect Rail Din box deployed by partner Hexaom / HexaConnect. The first is working properly, I can monitor my shutter, but after around 10 min and a sync every 30 sec, I got too many request

At this timestamp, everything works well :

2024-10-14 14:27:53.609 DEBUG (MainThread) [homeassistant.components.overkiz] Added gateway (Gateway(partners=[], functions='INTERNET_AUTHORIZATION,SCENARIO_DOWNLOAD,SCENARIO_AUTO_LAUNCHING,SCENARIO_TELECO_LAUNCHING,INTERNET_UPLOAD,INTERNET_UPDATE,TRIGGERS_SENSORS', sub_type=None, id=****-****-5295, gateway_id=****-****-5295, alive=True, mode='ACTIVE', place_oid='6d67895e-ce6a-409d-9e31-ef09815dc5a5', time_reliable=True, connectivity=Connectivity(status='OK', protocol_version='2024.1.4'), up_to_date=True, update_status=<UpdateBoxStatus.UP_TO_DATE: 'UP_TO_DATE'>, sync_in_progress=False, type=<GatewayType.UNKNOWN: -1>))

Then fetching the information, and I can manage my shutter

2024-10-14 14:28:23.821 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.5s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:28:24.436 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.698 seconds (success: True)
2024-10-14 14:28:54.814 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.9s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:28:55.823 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 1.083 seconds (success: True)
2024-10-14 14:29:25.820 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.081 seconds (success: True)
2024-10-14 14:29:55.818 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.080 seconds (success: True)
2024-10-14 14:30:25.825 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.3s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:30:26.232 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.493 seconds (success: True)
2024-10-14 14:30:55.814 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.074 seconds (success: True)
2024-10-14 14:31:25.819 INFO (MainThread) [backoff] Backing off fetch_events(...) for 1.0s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:31:26.865 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 1.126 seconds (success: True)
2024-10-14 14:31:56.812 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.073 seconds (success: True)
2024-10-14 14:32:26.823 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.4s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:32:27.313 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.574 seconds (success: True)
2024-10-14 14:32:56.832 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.094 seconds (success: True)
2024-10-14 14:33:26.811 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.072 seconds (success: True)
2024-10-14 14:33:56.826 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.9s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:33:57.841 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 1.103 seconds (success: True)
2024-10-14 14:34:27.811 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.072 seconds (success: True)
2024-10-14 14:34:57.837 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.9s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:34:58.824 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 1.084 seconds (success: True)
2024-10-14 14:35:28.861 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.3s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:35:29.213 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.475 seconds (success: True)
2024-10-14 14:35:58.821 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.082 seconds (success: True)
2024-10-14 14:36:28.811 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.073 seconds (success: True)
2024-10-14 14:36:58.818 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.2s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:36:59.139 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.401 seconds (success: True)
2024-10-14 14:37:28.811 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.073 seconds (success: True)
2024-10-14 14:37:58.880 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.5s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:37:58.905 ERROR (MainThread) [homeassistant.components.overkiz] Error fetching device events data: Too many requests, try again later.
2024-10-14 14:37:58.906 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.167 seconds (success: False)
2024-10-14 14:38:28.841 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.7s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:38:28.868 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.130 seconds (success: False)
2024-10-14 14:38:58.809 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.6s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:38:58.834 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.096 seconds (success: False)
2024-10-14 14:39:28.816 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.5s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:39:28.844 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.105 seconds (success: False)
2024-10-14 14:39:58.811 INFO (MainThread) [backoff] Backing off fetch_events(...) for 0.7s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)
2024-10-14 14:39:58.836 DEBUG (MainThread) [homeassistant.components.overkiz] Finished fetching device events data in 0.097 seconds (success: False)
2024-10-14 14:40:22.800 INFO (MainThread) [backoff] Backing off get_diagnostic_data(...) for 0.5s (pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated)

And then :

2024-10-14 14:40:22.827 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry
    ret = await target(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 453, in get_diagnostic_data
    response = await self.__get("setup")
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 904, in __get
    await self.check_response(response)
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 987, in check_response
    raise NotAuthenticatedException(message)
pyoverkiz.exceptions.NotAuthenticatedException: Not authenticated

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 477, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 559, in _handle
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/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 85, 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/diagnostics/__init__.py", line 299, in get
    data = await info.device_diagnostics(hass, config_entry, device)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/overkiz/diagnostics.py", line 57, in async_get_device_diagnostics
    "setup": await client.get_diagnostic_data(),
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 171, in retry
    await _call_handlers(on_backoff, **details, wait=seconds,
  File "/usr/local/lib/python3.12/site-packages/backoff/_async.py", line 37, in _call_handlers
    await handler(details)
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 91, in relogin
    await invocation["args"][0].login()
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 229, in login
    response = await self.__post("login", data=payload)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 924, in __post
    await self.check_response(response)
  File "/usr/local/lib/python3.12/site-packages/pyoverkiz/client.py", line 979, in check_response
    raise TooManyRequestsException(message)
pyoverkiz.exceptions.TooManyRequestsException: Too many requests, try again later : login with Benoit.meissner@gmail.com

Here the full log home-assistant_overkiz_2024-10-14T13-10-57.396Z.log

How can I increase the delay to avoid this issue please ?

TYIA

Regards

iMicknl commented 4 days ago

Can you share your code?

makak06 commented 4 days ago

I'm using HomeAssistant and I download the Overkiz application. Maybe i'm not in the correct git ? Thanks

EDIT : Seems to be the same issue here : https://github.com/home-assistant/core/issues/106228