Skip to content

MQTT API just stopped working #318

@reneroth

Description

@reneroth

For whatever reason, the MQTT API just stopped working. Didn't change anything, tried re-authing, etc.
Web API works, but there are no responses coming from the device (A network protocol error occurred when communicating with the broker.).

This did simply not happen until yesterday:

[Roborock S8 Pro Ultra] Failed to connect (Unknown error.)
[Roborock S8 Pro Ultra] A network protocol error occurred when communicating with the broker.
Traceback (most recent call last):
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/cloud_api.py", line 169, in async_connect
    await connected_future
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/api.py", line 93, in _wait_response
    response = await queue.async_get(self.queue_timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/roborock_future.py", line 34, in async_get
    return await self.fut
           ^^^^^^^^^^^^^^
roborock.exceptions.VacuumError: Failed to connect (Unknown error.)

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

Traceback (most recent call last):
  File "/Users/reneroth/projects/random/roborocktest/test.py", line 43, in <module>
    asyncio.run(main())
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/Users/reneroth/projects/random/roborocktest/test.py", line 28, in main
    networking = await mqtt_client.get_networking()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/version_1_apis/roborock_client_v1.py", line 303, in get_networking
    return await self.send_command(RoborockCommand.GET_NETWORK_INFO, return_type=NetworkInfo)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/version_1_apis/roborock_client_v1.py", line 511, in send_command
    response = await self._send_command(method, params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/version_1_apis/roborock_mqtt_client_v1.py", line 87, in _send_command
    return await self.send_message(roborock_message)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/version_1_apis/roborock_mqtt_client_v1.py", line 41, in send_message
    await self.validate_connection()
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/api.py", line 89, in validate_connection
    await self.async_connect()
  File "/Users/reneroth/.pyenv/versions/3.12.4/lib/python3.12/site-packages/roborock/cloud_api.py", line 171, in async_connect
    raise RoborockException(err) from err
roborock.exceptions.RoborockException: Failed to connect (Unknown error.)

I do not believe this is an issue with this codebase, more likely something else I'm doing wrong, or something wrong with the device. The app was also broken, in that I could not enter the map view anymore (which relies on the MQTT data), but that was resolved by resetting the WIFI on the Roborock. The NodeJS implementation in a different repository shows the exact same behavior.

Did anyone encounter this before? What do?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions