Is Roborock still not working with 2025.12.4?

So I upgraded to 2025.12.4 and I was hoping the issues with Roborock would be resolved, but it seems they haven’t.




And then I read this note on the integration’s website


And I was wondering if this was always the case. Because my Q5 Pro used to work just fine with Home Assistant.

Can anyone shed some light if the ~Roborock integration will/can ever be fixed, or if there are any alternatives to use my Q5 Pro with Home Assistant?

Thanks

It’s been stable for a while here on my S7 and S8.

1 Like

Support for Q7 & potentially Q10 will be added in 2026.1 on the 7th January according to this. Hopefully that’ll also bring back your Q5 if the integration is failing because Roborock use a different API for their Q series.
If you’re still encountering issues once that’s out, I suggest you create a separate issue in Github.

My Q5 Pro and Q8 Max work with 2025.12.3. The docks for each are also connected.

Can you elaborate?
I upgraded to .4 and still can’t get my S7 to reconnect.
Tried the usual… restarted robot, reloaded integration, etc…

TIA

Not sure how to elaborate, its been working fine for about a month. I had the issues that everyone had but they are not present anymore. I upgrade usually within a day or two when updates are available.

I’m running 2026.1.3 and my Q5+ has been unable to complete setup for a few weeks now (since prior versions of HA core). If the issue preventing the Q series from working has been solved, is there a process that needs to be performed to get it running again? I’ve retried the setup but that alone is not working.

Finally! Made it work!!!

Been tinkering with gemini and when succeeded, asked to made a guide

Enabling Support for Roborock Q10 S5+ in Home Assistant
The Roborock Q10 S5+ (B01-Q10 series) is currently not fully supported by the official Roborock integration. If you add it, it will either fail to initialize or show no battery and a fixed “Idle” state.

This guide explains how to create a patched Custom Component to make it 100% functional.

Step 1: Download and Prepare the Folder
Download the source code of theofficial Roborock integration(Download the ZIP).

Inside your Home Assistant config folder, create a folder named custom_components (if it doesn’t exist).

Extract the roborock folder from the ZIP into config/custom_components/.

Your structure should look like this: /config/custom_components/roborock/.

Step 2: Modify the Code
You need to edit 3 specific files within /config/custom_components/roborock/.

  1. File: __init__.py
    Search for the logic where coordinators are created and ensure the Q10 is intercepted.
if device.b01_q10_properties:
    _LOGGER.info("Q10 S5+ detected, using custom B01 coordinator")
    coordinator = RoborockB01Q10UpdateCoordinator(hass, entry, device, device.b01_q10_properties)
  1. File: coordinator.py (Add to the end of file)
    This coordinator forces the Q10 to start its data stream and refreshes the status object.
class RoborockB01Q10UpdateCoordinator(RoborockDataUpdateCoordinatorB01):
    """Specific Coordinator for B01-Q10 Series."""
    def __init__(self, hass: HomeAssistant, config_entry: RoborockConfigEntry, device: RoborockDevice, api: Any) -> None:
        super().__init__(hass, config_entry, device)
        self.api = api
        self._api_started = False

    async def _async_update_data(self) -> Any:
        try:
            if not self._api_started and hasattr(self.api, 'start'):
                await self.api.start()
                self._api_started = True

            if hasattr(self.api, 'refresh'):
                await self.api.refresh()
        except Exception as ex:
            _LOGGER.debug("Q10 Refresh Error: %s", ex)
            
        return getattr(self.api, 'status', {})
  1. File vacuum.py (Add to the end of file)
    This handles the string-based statuses and specific command paths for the Q10.
class RoborockB01Q10UpdateCoordinator(RoborockDataUpdateCoordinatorB01):
    """Specific Coordinator for B01-Q10 Series."""
    def __init__(self, hass: HomeAssistant, config_entry: RoborockConfigEntry, device: RoborockDevice, api: Any) -> None:
        super().__init__(hass, config_entry, device)
        self.api = api
        self._api_started = False

    async def _async_update_data(self) -> Any:
        try:
            if not self._api_started and hasattr(self.api, 'start'):
                await self.api.start()
                self._api_started = True

            if hasattr(self.api, 'refresh'):
                await self.api.refresh()
        except Exception as ex:
            _LOGGER.debug("Q10 Refresh Error: %s", ex)
            
        return getattr(self.api, 'status', {})

Step 3: Finalize
Restart Home Assistant.

Go to Settings > Devices & Services.

Add the Roborock integration (it will now use your custom_component version).

Login with your Roborock account.

The Q10 S5+ should now correctly report battery percentage, switch to “Cleaning” status when active, and respond to all controls.

Has anyone successfully done this? (what the post above this one says - the 3 steps)

several users reported that they made it work at github
https://github.com/orgs/home-assistant/discussions/2249