Akuvox SmartPlus - View door camera feeds, open doors and manage temporary keys

You’re a genius. Work like a charm!
Would add this link, which explains how to use the proxy on iPhone

Hi, i have a problem with verification. Every SMS code i get is wrong to integration proces.

Hi i have the same problem as Noble above. I have got the pass and token. However, when trying to set up the integration with App Token method it gives me the error “Sign in failed. Please check the values entered and try again”. Country code is +61, Australia

Thank you for your help

1 Like

Same here for US number.

Hi everyone. For those of you who have had issues when trying to add the integration via SMS verification - I just released a new beta, v0.2.0-beta2, which hopefully fixes the issue.

I would like to ask you to please install the beta and let me know if the issue is fixed.

To install the new beta version:

  1. Open the Akuvox SmartPlus repository in HACS
  2. Click on the button in the top right
  3. Select the ↻ Redownload option
  4. Enable the Show beta versions option (it may take a moment to update the list)
  5. Select version v0.2.0-beta2 from the updated version drop-down list
  6. Restart Home Assistant

On the latest beta from 3 days ago. Getting this error message

Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:211
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 8:34:08 AM (1 occurrences)
Last logged: 8:34:08 AM

❌ SMS code request unsuccessful
Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:478
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 8:34:08 AM (12 occurrences)
Last logged: 8:34:42 AM

❌ Unable to retrieve user's personal door log
Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:554
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 8:34:08 AM (1 occurrences)
Last logged: 8:34:08 AM

🤨 Response: {'result': -1, 'message': "Mobile Number doesn't exist", 'err_code': ''}

But I confirmed this is the correct phone number in the 1234567890 US format.

The integration sets the regional subdomain used to communicate with Akuvox according to the list from this repo, so it’s unclear to me why the SMS request fails.

I released a new beta, v0.2.0-beta3, which allows you to manually override the API regional subdomain used to communicate with Akuvox. You can try to use another subdomain.

To install the new beta version:

  1. Open the Akuvox SmartPlus repository in HACS
  2. Click on the button in the top right
  3. Select the ↻ Redownload option
  4. Enable the Show beta versions option (it may take a moment to update the list)
  5. Select version v0.2.0-beta3 from the updated version drop-down list
  6. Restart Home Assistant
This error originated from a custom integration.

Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:453
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 8:06:18 PM (400 occurrences)
Last logged: 8:13:17 PM

❌ Unable to retrieve user's personal door log
This error originated from a custom integration.

Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:190
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 8:06:44 PM (4 occurrences)
Last logged: 8:13:08 PM

❌ SMS code request unsuccessful. Request URL: https://ucloud.akuvox.com:8443/send_mobile_checkcode
This error originated from a custom integration.

Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:531
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 8:06:44 PM (4 occurrences)
Last logged: 8:13:08 PM

🤨 Response: {'result': -1, 'message': "Mobile Number doesn't exist", 'err_code': ''}

No luck US number using this format 1234567890

If you are using a US account you need to use the ucloud subdomain.

Make sure you have the latest beta version installed (v0.2.0-beta3) and change the subdomain to ucloud in the sign in process.

Still no luck, using the latest beta plus using ucloud.

Logger: aiohttp.server
Source: /usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py:421
First occurred: 11:20:44 AM (1 occurrences)
Last logged: 11:20:44 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/urllib3/util/connection.py", line 72, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/socket.py", line 964, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -5] Name has no usable address

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 715, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 404, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1060, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.12/site-packages/urllib3/connection.py", line 363, in connect
    self.sock = conn = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fd606715670>: Failed to establish a new connection: [Errno -5] Name has no usable address

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 801, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/urllib3/util/retry.py", line 594, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /send_mobile_checkcode (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fd606715670>: Failed to establish a new connection: [Errno -5] Name has no usable address'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/akuvox/api.py", line 475, in _async_api_wrapper
    response = await self.hass.async_add_executor_job(func, url, headers, data, 10)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/akuvox/api.py", line 571, in post_request
    response: requests.Response = requests.post(url,
                                  ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/requests/adapters.py", line 700, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /send_mobile_checkcode (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fd606715670>: Failed to establish a new connection: [Errno -5] Name has no usable address'))

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

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, 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 210, 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/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 368, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 415, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 518, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/akuvox/config_flow.py", line 138, in async_step_sms_sign_in
    request_sms_code = await self.akuvox_api_client.async_send_sms(self.hass, country_code, phone_number, subdomain)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/akuvox/api.py", line 179, in async_send_sms
    response = await self._async_api_wrapper(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/akuvox/api.py", line 505, in _async_api_wrapper
    raise AkuvoxApiClientError(
custom_components.akuvox.api.AkuvoxApiClientError: Something really wrong happened! HTTPSConnectionPool(host='none', port=443): Max retries exceeded with url: /send_mobile_checkcode (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fd606715670>: Failed to establish a new connection: [Errno -5] Name has no usable address')). URL = https://None/send_mobile_checkcode
This error originated from a custom integration.

Logger: custom_components.akuvox
Source: custom_components/akuvox/api.py:453
integration: Akuvox SmartPlus (documentation, issues)
First occurred: 11:20:41 AM (4 occurrences)
Last logged: 11:20:50 AM

❌ Unable to retrieve user's personal door log

I want to be able to use the SmartPlus app as a back up option and for members of the family who have not yet fully embraced the vision of Home Assistant.

So, I understand that means going down the App Tokens route in order to avoid having issues with logging into the App and having things stop working. (pls correct me if this is wrong).

When I use the Mitmproxy method described in the readme file (I think I’m doing it the way described), the relevant line ending in /servers_list is a GET and not a POST. And the JSON content does not exist.

I realise this is a Home Assistant forum, not a Mitmproxy forum, but I’m really at a loss to know how to proceed here. It feels like the login process may have somehow changed or I’m logging in wrong.

Is anyone else experiencing the same thing or does anyone have an idea what I’m doing wrong?

I think that if you search through the different url “paths” and the tabs “response”, you will find it eventually. You can see that some of the paths contains the token for example.

I see the token= in some of the paths so could try that value as the Token field. It is/was not obvious to me if there might be more than one token at play so did not want to assume since it was not displaying in the way recommended by @Nimrod_Dolev .

What I can’t find anywhere is auth_token. I see x-auth-token: in the Request window, however x-auth-token and auth_token are not the same according to @Nimrod_Dolev in the screenshot provided in the instructions.

They are not the same and you will need them both while setting the integration

Hi, I am having trouble getting the integration fully working. I managed to install it and the entities appear etc. But the problem is that the camera picture shows still image or broken stream image (as someone described here) and the buttons to open doore etc. do not do anything. How can I troubleshoot or what could be the issue? I am using the v0.2.0-beta3 with auth tokens.
Thanks

hi
is there a way to press through the integretion on “answer” (מענה)?

Hi i managed to get the automation connecting to my phone in australia. Thank you. for a while i could see the entities related to my Akuvox. After moving home assistant to a different ip address and installing v0.2.0-beta3, the integration recognise my australian number but i get “no devices or entities”?? your help greatly appreciated.

hey, im in aus too and cant get an sms, what did you change to make it work?

Hi. I set mine up with the App token not the SMS following the add on instructions.