Pigotka / ha-cc-jablotron-cloud

HACS custom component for jablotron cloud integration
GNU General Public License v3.0
11 stars 1 forks source link

Infinite recursion when adding entry #6

Closed davidcampelo closed 11 months ago

davidcampelo commented 1 year ago

Hi, I just installed the integration and added my user/pass/pin details. As nothing related to my system is shown I checked in the logs.

And it goes into an infinite recursion.

Any ideas? Thanks.

2023-06-12 20:57:24.172 ERROR (MainThread) [custom_components.jablotron_cloud.config_flow] Unexpected exception
Traceback (most recent call last):
File "/config/custom_components/jablotron_cloud/config_flow.py", line 59, in async_step_user
info = await validate_input(self.hass, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/jablotron_cloud/config_flow.py", line 34, in validate_input
await hass.async_add_executor_job(hub.get_session_id)
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 88, in get_session_id
status, data = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 66, in _make_request
self.set_cookies()
File "/usr/local/lib/python3.11/site-packages/jablotronpy/jablotronpy.py", line 36, in set_cookies
session_id = self.get_session_id()
^^^^^^^^^^^^^^^^^^^^^

(.....)\

File "/usr/local/lib/python3.11/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 454, in send
conn = self.get_connection(request.url, proxies)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 356, in get_connection
conn = self.poolmanager.connection_from_url(url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/poolmanager.py", line 299, in connection_from_url
return self.connection_from_host(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/poolmanager.py", line 246, in connection_from_host
return self.connection_from_context(request_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/poolmanager.py", line 261, in connection_from_context
return self.connection_from_pool_key(pool_key, request_context=request_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/poolmanager.py", line 282, in connection_from_pool_key
pool = self._new_pool(scheme, host, port, request_context=request_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/poolmanager.py", line 214, in _new_pool
return pool_cls(host, port, **request_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 949, in __init__
HTTPConnectionPool.__init__(
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 191, in __init__
ConnectionPool.__init__(self, host, port)
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 86, in __init__
self.host = _normalize_host(host, scheme=self.scheme)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 1111, in _normalize_host
host = normalize_host(host, scheme)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/util/url.py", line 300, in _normalize_host
b".".join([_idna_encode(label) for label in host.split(".")])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/util/url.py", line 300, in <listcomp>
b".".join([_idna_encode(label) for label in host.split(".")])
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/util/url.py", line 306, in _idna_encode
if name and any(ord(x) >= 128 for x in name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/urllib3/util/url.py", line 306, in <genexpr>
if name and any(ord(x) >= 128 for x in name):
^^^^^^
RecursionError: maximum recursion depth exceeded while calling a Python object
davidcampelo commented 1 year ago

Ok, I just found this PR: https://github.com/fdegier/JablotronPy/pull/14

Maybe this fixes the issue.

davidcampelo commented 1 year ago

Weird enough, we should be using jablotronpy v0.5.0 already, though it does not seem so.

Pigotka commented 11 months ago

Yes, recursion was fixed in jablotronpy and integration is already configured to use latest. Closing.