FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Tapo RV10 Plus: SSL handshake failure on port 4433 · Issue #1787 · python-kasa/python-kasa · GitHub

Repository navigation

Tapo RV10 Plus: SSL handshake failure on port 4433 #1787

Closed

Description

RV10 plus support missing:

Discovering device 192.168.88.19 for 10 seconds
DEBUG:kasa.discover:[DISCOVERY] 192.168.88.19 >> {'system': {'get_sysinfo': {}}}
DEBUG:kasa.discover:Waiting a total of 10 seconds for responses...
DEBUG:kasa.device_factory:Using SmartDevice for SMART.TAPOROBOVAC
DEBUG:kasa.device_factory:Finding protocol for 192.168.88.19
DEBUG:kasa.device_factory:Finding protocol for DeviceFamily.SmartTapoRobovac
DEBUG:kasa.transports.ssltransport:Created ssltransport for 192.168.88.19
DEBUG:kasa.discover:[DISCOVERY] 192.168.88.19 << {'error_code': 0,
'result': {'device_id': 'REDACTED_98fd92ece01943e9521b75e',
'device_model': 'RV10 Plus(EU)',
'device_type': 'SMART.TAPOROBOVAC',
'factory_default': False,
'ip': '192.168.88.19',
'is_support_iot_cloud': True,
'mac': '78-8C-B5-00-00-00',
'mgt_encrypt_schm': {'encrypt_type': 'AES',
'http_port': 4433,
'is_support_https': True},
'obd_src': 'tplink',
'owner': 'REDACTED_37FA1DD45C2FE24871124F8'}}
DEBUG:kasa.device:Initializing 192.168.88.19 of type <class 'kasa.smart.smartdevice.SmartDevice'>
DEBUG:kasa.protocols.smartprotocol:192.168.88.19 multi-request-batch-1-of-1 >> '{"method":"multipleRequest","request_time_milis":1791465777557,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}'
DEBUG:kasa.transports.ssltransport:Going to send {"method":"multipleRequest","request_time_milis":1791465777557,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}
DEBUG:kasa.transports.ssltransport:Transport not established or session expired, logging in
DEBUG:kasa.transports.ssltransport:Going to send login request
DEBUG:kasa.transports.ssltransport:Sending {"method":"login","params":{"password":"74BF0B9100BAB98534943D647D0B5CB1","username":"bhay_bhi@outlook.com"}} to https://192.168.88.19:4433/app
DEBUG:kasa.httpclient:Posting to https://192.168.88.19:4433/app
DEBUG:kasa.httpclient:Device 192.168.88.19 received an os error, enabling sequential request delay: Cannot connect to host 192.168.88.19:4433 ssl:False [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)]
DEBUG:kasa.protocols.smartprotocol:Device 192.168.88.19 got a connection error, will retry 3 times: ('Device connection error: 192.168.88.19: Cannot connect to host 192.168.88.19:4433 ssl:False [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)]', ClientConnectorSSLError(ConnectionKey(host='192.168.88.19', port=4433, is_ssl=True, ssl=False, proxy=None, proxy_auth=None, proxy_headers_hash=None, server_hostname=None), SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)')))
DEBUG:kasa.protocols.smartprotocol:192.168.88.19 multi-request-batch-1-of-1 >> '{"method":"multipleRequest","request_time_milis":1791465777614,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}'
DEBUG:kasa.transports.ssltransport:Going to send {"method":"multipleRequest","request_time_milis":1791465777614,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}
DEBUG:kasa.transports.ssltransport:Transport not established or session expired, logging in
DEBUG:kasa.transports.ssltransport:Going to send login request
DEBUG:kasa.transports.ssltransport:Sending {"method":"login","params":{"password":"74BF0B9100BAB98534943D647D0B5CB1","username":"bhay_bhi@outlook.com"}} to https://192.168.88.19:4433/app
DEBUG:kasa.httpclient:Device 192.168.88.19 waiting 0.24955420003971085 seconds to send request
DEBUG:kasa.httpclient:Posting to https://192.168.88.19:4433/app
DEBUG:kasa.protocols.smartprotocol:192.168.88.19 multi-request-batch-1-of-1 >> '{"method":"multipleRequest","request_time_milis":1791465777935,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}'
DEBUG:kasa.transports.ssltransport:Going to send {"method":"multipleRequest","request_time_milis":1791465777935,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}
DEBUG:kasa.transports.ssltransport:Transport not established or session expired, logging in
DEBUG:kasa.transports.ssltransport:Going to send login request
DEBUG:kasa.transports.ssltransport:Sending {"method":"login","params":{"password":"74BF0B9100BAB98534943D647D0B5CB1","username":"bhay_bhi@outlook.com"}} to https://192.168.88.19:4433/app
DEBUG:kasa.httpclient:Device 192.168.88.19 waiting 0.24957340001128614 seconds to send request
DEBUG:kasa.httpclient:Posting to https://192.168.88.19:4433/app
DEBUG:kasa.protocols.smartprotocol:192.168.88.19 multi-request-batch-1-of-1 >> '{"method":"multipleRequest","request_time_milis":1791465778248,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}'
DEBUG:kasa.transports.ssltransport:Going to send {"method":"multipleRequest","request_time_milis":1791465778248,"terminal_uuid":"GBRuy8/yiKy6zhHnzZlULw==","params":{"requests":[{"method":"component_nego"},{"method":"get_device_info"},{"method":"get_connect_cloud_state"}]}}
DEBUG:kasa.transports.ssltransport:Transport not established or session expired, logging in
DEBUG:kasa.transports.ssltransport:Going to send login request
DEBUG:kasa.transports.ssltransport:Sending {"method":"login","params":{"password":"74BF0B9100BAB98534943D647D0B5CB1","username":"bhay_bhi@outlook.com"}} to https://192.168.88.19:4433/app
DEBUG:kasa.httpclient:Device 192.168.88.19 waiting 0.24962200003210455 seconds to send request
DEBUG:kasa.httpclient:Posting to https://192.168.88.19:4433/app
DEBUG:kasa.protocols.smartprotocol:Giving up on 192.168.88.19 after 3 retries
Raised error: ('Device connection error: 192.168.88.19: Cannot connect to host 192.168.88.19:4433 ssl:False [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)]', ClientConnectorSSLError(ConnectionKey(host='192.168.88.19', port=4433, is_ssl=True, ssl=False, proxy=None, proxy_auth=None, proxy_headers_hash=None, server_hostname=None), SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)')))
Traceback (most recent call last):
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\connector.py", line 1337, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs, sock=sock)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python314\Lib\asyncio\base_events.py", line 1198, in create_connection
transport, protocol = await self._create_connection_transport(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<2 lines>...
ssl_shutdown_timeout=ssl_shutdown_timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python314\Lib\asyncio\base_events.py", line 1231, in _create_connection_transport
await waiter
File "C:\Python314\Lib\asyncio\sslproto.py", line 581, in _on_handshake_complete
raise handshake_exc
File "C:\Python314\Lib\asyncio\sslproto.py", line 563, in _do_handshake
self._sslobj.do_handshake()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Python314\Lib\ssl.py", line 951, in do_handshake
self._sslobj.do_handshake()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)

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

Traceback (most recent call last):
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\httpclient.py", line 106, in post
resp = await self.client.post(
^^^^^^^^^^^^^^^^^^^^^^^
...<8 lines>...
)
^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\client.py", line 900, in _request
resp = await handler(req)
^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\client.py", line 854, in _connect_and_send_request
conn = await self._connector.connect(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
req, traces=traces, timeout=real_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\connector.py", line 665, in connect
proto = await self._create_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\connector.py", line 1263, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\connector.py", line 1641, in _create_direct_connection
raise last_exc
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\connector.py", line 1610, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<7 lines>...
)
^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\aiohttp\connector.py", line 1341, in _wrap_create_connection
raise ClientConnectorSSLError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host 192.168.88.19:4433 ssl:False [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)]

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

Traceback (most recent call last):
File "", line 203, in _run_module_as_main
File "", line 88, in run_code
File "C:\Users\StephenWilson\kasa-venv\Scripts\kasa.exe_main
.py", line 5, in
sys.exit(cli())
~~~^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\cli\common.py", line 282, in call
asyncio.run(self.main(*args, **kwargs))
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python314\Lib\asyncio\runners.py", line 205, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "C:\Python314\Lib\asyncio\runners.py", line 128, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Python314\Lib\asyncio\base_events.py", line 719, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\asyncclick\core.py", line 1549, in main
rv = await self.invoke(ctx)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\cli\common.py", line 270, in invoke
_handle_exception(self._debug, exc)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\cli\common.py", line 268, in invoke
return await super().invoke(ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\asyncclick\core.py", line 2072, in invoke
await super().invoke(ctx)
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\asyncclick\core.py", line 1412, in invoke
return await ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\asyncclick\core.py", line 965, in invoke
rv = await rv
^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\cli\main.py", line 369, in cli
await dev.update()
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\smart\smartdevice.py", line 271, in update
await self._negotiate()
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\smart\smartdevice.py", line 218, in _negotiate
resp = await self.protocol.query(initial_query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\protocols\smartprotocol.py", line 136, in query
return await self._query(request, retry_count)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\protocols\smartprotocol.py", line 154, in _query
raise ex
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\protocols\smartprotocol.py", line 141, in _query
return await self._execute_query(
^^^^^^^^^^^^^^^^^^^^^^^^^^
request, retry_count=retry, iterate_list_pages=True
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\protocols\smartprotocol.py", line 338, in _execute_query
return await self._execute_multiple_query(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
request, retry_count, iterate_list_pages
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\protocols\smartprotocol.py", line 249, in _execute_multiple_query
response_step = await self._transport.send(smart_request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\transports\ssltransport.py", line 232, in send
await self.perform_login()
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\transports\ssltransport.py", line 174, in perform_login
await self.try_login(self._login_params)
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\transports\ssltransport.py", line 210, in try_login
resp_dict = await self.send_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\transports\ssltransport.py", line 150, in send_request
status_code, resp_dict = await self._http_client.post(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
)
^
File "C:\Users\StephenWilson\kasa-venv\Lib\site-packages\kasa\httpclient.py", line 145, in post
raise _ConnectionError(
f"Device connection error: {self._config.host}: {ex}", ex
) from ex
kasa.exceptions._ConnectionError: ('Device connection error: 192.168.88.19: Cannot connect to host 192.168.88.19:4433 ssl:False [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)]', ClientConnectorSSLError(ConnectionKey(host='192.168.88.19', port=4433, is_ssl=True, ssl=False, proxy=None, proxy_auth=None, proxy_headers_hash=None, server_hostname=None), SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1082)')))
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x000001EAF84041A0>`

Activity

  1. rytilahti commented on Oct 12, 2026

    Member

    @bhaybhi could you test if the linked PR fixes the issue for you?

  2. bhaybhi commented on Oct 13, 2026

    Author

    Tested PR #1798 and it fixes the handshake. The RV10 Plus (HW 1.0 EU, FW 1.0.9 Build 230612) now connects and reports status, battery, fan speed, consumables, and mop level.

    Remaining warnings:

    Dustbin: getAutoDustCollection returns UNSPECIFIC_ERROR (it's on the Plus auto-empty dock)
    Firmware: get_auto_update_info returns UNKNOWN_METHOD_ERROR
    clean_progress: KeyError 'clean_percent'
    Device time reports 2000-01-02

    Actions tested: locate worked, start/return home worked

  3. rytilahti commented on Oct 14, 2026

    Member

    Please create a separate issue for those, let's get the linked PR merged already. Thanks for testing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL