AlexOwl / jtechdigital-ha

Home Assistant integration of J-Tech Digital HDMI Matrix.
3 stars 2 forks source link

"Unknown error occurred" #1

Closed PASeanfire02 closed 1 year ago

PASeanfire02 commented 1 year ago

The "Authorize J-Tech Digital HDMI Matrix" dialog box accepts the ip address. I enter the username and password correctly and "Unknown error occurred" is returned.

The Matrix is powered on and works via ip control in a browser. The model I have is: JTECH-MX443-UHD. Link to product: https://jtechdigital.com/product/8x8-hdmi-matrix-switch-switcher-hdbaset/

AlexOwl commented 1 year ago

@PASeanfire02 hey, can you provide me the log from home assistant? Can you also sniff network packages from your hdmi matrix dashboard login dialog? I will check how the login flow working on your device (like cookies or Authentication header)

PASeanfire02 commented 1 year ago

@AlexOwl Thanks for the reply. Here's the log and sniff:

This error originated from a custom integration.

Logger: aiohttp.server Source: custom_components/jtechdigital/config_flow.py:182 Integration: J-Tech Digital Matrix (documentation, issues) First occurred: 10:21:05 AM (1 occurrences) Last logged: 10:21:05 AM

Error handling request Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request resp = await request_handler(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle resp = await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/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 85, in security_filter_middleware return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware response = await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle result = await handler(request, request.match_info) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 63, in with_admin return await func(self, request, *args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 177, in post return await super().post(request, flow_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper result = await method(view, request, data, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post result = await self._flow_mgr.async_configure(flow_id, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 298, in async_configure result = await self._async_handle_step( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 394, in _async_handle_step result: FlowResult = await getattr(flow, method)(user_input) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/jtechdigital/config_flow.py", line 83, in async_step_authorize await self._async_client_connect() File "/config/custom_components/jtechdigital/config_flow.py", line 182, in _async_client_connect await self._client.connect(user, password) File "/usr/local/lib/python3.11/site-packages/pyjtechdigital/client.py", line 136, in connect login_response = await self.login(user, password) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyjtechdigital/client.py", line 297, in login result=bool(response.get(ATTR_RESULT)), ^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'get' J-Tech_Matrix.txt

AlexOwl commented 1 year ago

@PASeanfire02, unfortunately your device uses completely different API and commands. I will try to add compatibility for devices over rs232 later (also your device uses different commands than mine, so I will need to take a look at this further). For now I’ll mark it as close as this is completely different device unfortunately