core: Roborock Timeouts on setup

The problem

Cannot get Roborock vacuums to work in HA. Was working until i updated to latest version. Authenticates fine and then does not work.

What version of Home Assistant Core has the issue?

core-2023.9.1

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

roborock

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Logger: homeassistant.config_entries
Source: components/roborock/__init__.py:45
First occurred: 2:36:18 PM (2 occurrences)
Last logged: 2:47:48 PM

Error setting up entry xxxx@gmail.com for roborock
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/roborock/__init__.py", line 45, in async_setup_entry
    network_results = await asyncio.gather(
                      ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/roborock/api.py", line 489, in get_networking
    return await self.send_command(RoborockCommand.GET_NETWORK_INFO, return_type=NetworkInfo)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/roborock/api.py", line 389, in send_command
    response = await self._send_command(method, params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/roborock/cloud_api.py", line 207, in _send_command
    return await self.send_message(roborock_message)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/roborock/cloud_api.py", line 185, in send_message
    (response, err) = await async_response
                      ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/roborock/api.py", line 321, in _wait_response
    raise RoborockTimeout(f"id={request_id} Timeout after {QUEUE_TIMEOUT} seconds") from None
roborock.exceptions.RoborockTimeout: id=31399 Timeout after 4 seconds

Additional information

VirtualBox run HA OS. Latest version, was working until i upgraded. have installed and removed twice ,get no entries and setup error as per the above

About this issue

  • Original URL
  • State: open
  • Created 10 months ago
  • Reactions: 1
  • Comments: 37 (12 by maintainers)

Most upvoted comments

@home-assistant rename Roborock Timeouts on setup

Looks like a timeout issue because I have 2 vacuums? I have a s5 max and a s6 maxV.

I have two vacuums as well, and I’ve found this to be the solution:

  • Both vacuums need to be “reachable”, so make sure they’re either charged or charging, and have a good WiFi connection.
  • Try reloading the integration a few times.

Looks like it’s related to humbertogontijo/homeassistant-roborock#480. Can we have true local only mode?

see #97311

That is probably the closest we are going to be able to get - it gets the information once and caches it, it will always try to get it again, but if it fails, it will use the cached information. And so long as you have the ability for local connection - that is used

Past that - we are rather limited.

Also the issue you linked is not quite the same - as The custom integration has the map component which makes a ton of cloud api calls, which can lead to rate limiting, that is part of why it has not been implemented here.

Is your mobile app blocked from accessing as well?

https://github.com/home-assistant/core/pull/100236

This PR updates the package to have a default timeout of 10 seconds for cloud based connections. Should be included in 2023.9.3 - I barely missed the cutoff for 2023.9.2