The Roborock integration allows you to control your Roborock vacuum while using the Roborock app.

This integration requires a cloud connection to set up the device, but it communicates with the device entirely over your home network.

Once you log in with your Roborock account, the integration will automatically discover your Roborock devices and get the needed information to communicate locally with them. Please ensure your Home Assistant instance can communicate with the local IP of your device. We recommend setting a static IP for your Roborock Vacuum to help prevent future issues. The device communicates on port 58867. Depending on your firewall, you may need to allow communication from Home Assistant to your vacuum on that port.


To add the Roborock integration to your Home Assistant instance, use this My button:


Roborock devices have a variety of features that are supported on some devices but not on others. Only entities that your device supports will be added to your integration.


The vacuum entity holds the ability to control most things the vacuum can do, such as start a clean, return to the dock, or set the fan speed.


Mop mode - Describes how to mop the floor. On some firmware, it is called ‘mop route’.

Mop intensity - How hard you would like your vacuum to mop.


Cleaning area - How much area the vacuum has cleaned in its current run. If the vacuum is not currently cleaning, how much area it has cleaned during its last run.

Cleaning time - How long the vacuum has been cleaning for. If the vacuum is not currently cleaning, how long it cleaned for in its last run.

Main brush time left - How much time is left before Roborock recommends you replace your main brush.

Side brush time left - How much time is left before Roborock recommends you replace your side brush.

Filter time left - How much time is left before Roborock recommends you replace your vacuum’s air filter.

Status - The current status of your vacuum. This typically describes the action that is currently being run. For example, ‘spot_cleaning’ or ‘docking’.

Total cleaning time - The lifetime cleaning duration of your vacuum.

Total cleaning area - The lifetime cleaning area of your vacuum.

Vacuum error - The current error with your vacuum, if there is one.


Do not disturb begin - When Do not disturb is enabled, the vacuum does not run or speak after this point.

Do not disturb end - When Do not disturb is enabled, the vacuum does not run or speak before this point.


Child lock - This disables the buttons on the vacuum. Nothing happens when the buttons are pushed.

Status indicator light - This is the LED on the top of your vacuum. The color changes depending on the status of your vacuum.

Do not disturb - This enables Do not disturb during the time frame you have set in the app or on the time entity. When Do not disturb is enabled, the vacuum does not run or speak.


Volume - This allows you to control the volume of the robot’s voice. For example, when it states “Starting cleaning”. This allows you to set the volume to 0%, while the app limits it to 20%.


Can I use the Mi home app with this integration?

No. This integration requires information from your Roborock app to set up and uses Roborock’s protocols to communicate with your device. You must have your vacuum synced to the Roborock app.

Can I block internet access for this device?

As of right now - no. When the vacuum is disconnected from the internet, it will attempt to disconnect itself from Wi-Fi and reconnect itself until it can reach the Roborock servers. We are looking for the best way to handle this and see what can be blocked while still allowing the vacuum to function.

What devices are supported?

If you can add your device to the Roborock app - it is supported. However, some older vacuums like the Roborock S5 must be connected using the Mi Home app and can be set up in Home Assistant through the Xiaomi Miio integration.

What features will you support?

We are working on adding a lot of features to the core integration. We have reverse-engineered over 100 commands. The documentation is currently very bare-bones, and we are looking for users to help us make it more complete. The following are some of the functionalities we plan to add to Home Assistant Core. We ask that you are patient with us as we add them.

  • Selective room cleaning
  • Dock controls
  • Manual vacuum remote control
  • Status information such as errors, clean time, consumables, etc.
  • Viewing the camera
  • Viewing the map

How can I clean a specific room?

We plan to make the process simpler in the future, but for now, it is a multi-step process.

  1. Make sure to first name the rooms in the Roborock app; otherwise, they won’t appear in the debug log.
  2. Enable debug logging for this integration and reload it.
  3. Search your logs for ‘Got home data’ and find the attribute rooms.
  4. Write the rooms down; they have a name and 6 digit ID.
  5. Go to Developer Tools > Services > Vacuum: Send Command. Select your vacuum as the entity and get_room_mapping as the command.
  6. Go back to your logs and look at the response to get_room_mapping. This is a list of the 6-digit IDs you saw earlier to 2-digit IDs. In your original list of room names and 6-digit IDs, replace the 6-digit ID with its pairing 2-digit ID.
  7. Now, you have the 2-digit ID that your vacuum uses to describe a room.
  8. Go back to Developer Tools > Services > Vacuum: Send Command then type app_segment_clean as your command and segments with a list of the 2-digit IDs you want to clean. Then, add repeat with a number (ranging from 1 to 3) to determine how many times you want to clean these areas.


service: vacuum.send_command
  command: app_segment_clean
    - segments:
        - 22
        - 23
      repeat: 2
  entity_id: vacuum.s7_roborock