Skip to content
Homebridge TestFlight
Xiaomi, Roborock, Mi Home

Roborock Vacuum

homebridge-xiaomi-roborock-vacuum · v0.36.0

VerifiedLocalHomebridge 2.0

Adds Xiaomi and Roborock robot vacuums to HomeKit, shown as a fan with room and zone cleaning.

What it says it supports

Brands

  • Xiaomi
  • Roborock
  • Mi Home

Devices it names

  • Mi Robot
  • Roborock S50
  • Roborock S55
  • Roborock S5 Max
  • Roborock S6
  • Roborock T4
  • Roborock T6
  • Roborock Q5 Pro
  • Xiaowa Lite C10

Shows up in Apple Home as from its README

Sensor readings in its code

What people report

Roborock S and T series generally work; room cleaning varies by model, and non-Roborock models (Dreame, Mijia 1C, Smartmi) remain requests.

  • Works4
  • Partly works4
  • Not working1
  • Requested3
DeviceStatusWhat they saidSource
Roborock S7WorksWorks with plugin via Mi Home token; rooms need autoroom names
Saved copy
Hi, Will this plugin support Roborock S7? Thx!

Excerpt saved from GitHub on 2026-10-22.

Issue #384 · 2021-03
Roborock T4WorksTimeout error fixed in 0.12.0
Saved copy
I checked the log, the first error message came on June 2nd. ^[[37m[6/2/2020, 9:52:30 PM] ^[[39m^[[36m[Roborock T4] ^[[39mSTA getDevice | Connected to: 192.168.178.39 ^[[37m[6/2/2020, 9:52:30 PM] ^[[39m^[[36m[Roborock T4] ^[[39mSTA getDevice | Model: roborock.vacuum.t4 ^[[37m[6/2/2020, 9:52:30 PM] ^[[39m^[[36m[Roborock T4] ^[[39mSTA getDevice | State: charging ^[[37m[6/2/2020, 9:52:30 PM] ^[[39m^[[36m[Roborock T4] ^[[39mSTA getDevice | FanSpeed: 102 ^[[37m[6/2/2020, 9:52:30 PM] ^[[39m^[[36m[Roborock T4] ^[[39mSTA getDevice | BatteryLevel: 100 ^[[37m[6/2/2020, 9:52:30 PM] ^[[39m^[[36m[Roborock …

Excerpt saved from GitHub on 2026-10-22.

Issue #243 · 2020-06
Roborock T7 (a11)WorksWater box level fixed in 0.13.2 after model added
Saved copy
I got a Roborock T7 (roborock.vacuum.a11) Everything is working fine except the water box level is always at 0% in homebridge and home app But the log in the homebridge is: `INF getWaterSpeed | roborock.vacuum.a11 | WaterBoxMode is 202 over miIO. Converting to HomeKit` Is this normal? or is there anything I can do to make it right? Thank you so much 👍

Excerpt saved from GitHub on 2026-10-22.

Issue #259 · 2020-07
Xiaomi Roborock vacuumWorksUser runs v0.6.1
Saved copy
homebridge-camera-ffmpeg v0.1.12 homebridge-ewelink-max v0.1.15 homebridge-mi-aqara v0.8.0 homebridge-mi-gateway v0.1.4 homebridge-weather-plus v2.7.2 homebridge-xiaomi-roborock-vacuum v0.6.1

Excerpt saved from Arctic Shift Reddit archive on 2026-10-22.

Reddit comment · 2019-07
Roborock S5Partly worksWorks but room IDs/room commands not supported by this model
Saved copy
Hi, i just setup my roborock S5 to run with HomeKit via Homebridge. Everything seems to work except the "get room ID". [code]

Excerpt saved from GitHub on 2026-10-22.

Issue #910 · 2024-04
Roborock S6 MaxVPartly worksStart works; stopping cleaning throws an error
Saved copy
If I start the cleaning (switch the Fan state to on) everything works fine: [2020-6-22 10:42:34] [S6] INF changedCleaning | roborock.vacuum.a10 | Cleaning is ON. [2020-6-22 10:42:34] [S6] INF changedPause | roborock.vacuum.a10 | Paused possible If I switch the Fan (S6) to off, I got the following error: [2020-6-22 10:42:35] [S6] ERR setCleaning | roborock.vacuum.a10 | Failed to set cleaning to false Error: action locked at Object.reject (/usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/miio/lib/network.js:506:19) at DeviceInfo.onMessage …

Excerpt saved from GitHub on 2026-10-22.

Issue #236 · 2020-06
Roborock T7 Pro (a9)Partly worksWater level not shown until model added to models list
Saved copy
My vacuum is ` Roborock T7 Pro (roborock.vacuum.a9)` I use the plugin version `0.13.2` ,and Enable the “waterbotx(beta)” , but I still got the error: `INF getWaterSpeed | roborock.vacuum.a11 | WaterBoxMode is 202 over miIO. Converting to HomeKit`

Excerpt saved from GitHub on 2026-10-22.

Issue #259 · 2020-07
Xiaomi Mi Robot Vacuum v1Partly worksNot discovered behind Fritz!Box router blocking UDP packets
Saved copy
Hello, I am having an issue with the homebridge unable to find the vacuum i have setup everything correct, any ideas why it won't discover the vacuum? [2023-01-10, 9:54:48 p.m.] [Robo] [Model=unknown] getSerialNumber | No vacuum cleaner is discovered yet. [2023-01-10, 9:54:48 p.m.] [Robo] [Model=unknown] INF ensureDevice | unknown model | The socket was destroyed or not initialised, initialising the device [2023-01-10, 9:54:48 p.m.] [Robo] [Model=unknown] getFirmware | No vacuum cleaner is discovered yet. [2023-01-10, 9:54:48 p.m.] [Robo] [Model=unknown] INF ensureDevice | unknown model | The …

Excerpt saved from GitHub on 2026-10-22.

Issue #639 · 2023-01
Mijia vacuum v2Not workingFails getState and clean command
Saved copy
[code] also [code] and [code] The last error is also the one I see in Homebridge logs [code] Besides that the getSerialNumber function also fails to get a serial number from this model - but the error is caught.

Excerpt saved from GitHub on 2026-10-22.

Issue #506 · 2022-08
Dreame W10RequestedNew model error on startup; not supported
Saved copy
This is my config [code] It gives me this error when the bridge starts [code] and gives this error when I try to run [code]

Excerpt saved from GitHub on 2026-10-22.

Issue #628 · 2022-12
Smartmi VortexWaveRequestedNo data returned; new model request open
Saved copy
Hi, I just got my kickstarter Robot Smartmi VortexWave Robot Vacuum Cleaner. Is there a way to support it with HOOBS? Model: zhimi.vacuum.wa1 This is what hoobs lo showsr: [Model=zhimi.vacuum.wa1] getDocked | Robot Docked is false (Status is undefined) 19.1.2023, 23:13:15Xiaomi Roborock Vacuum BridgeSmartmi VortexWave[Model=zhimi.vacuum.wa1] getCleaning | Cleaning is false 19.1.2023, 23:13:15Xiaomi Roborock Vacuum BridgeSmartmi VortexWave[Model=zhimi.vacuum.wa1] getPauseState | Pause possible is false 19.1.2023, 23:13:15Xiaomi Roborock Vacuum BridgeSmartmi VortexWave[Model=zhimi.vacuum.wa1] …

Excerpt saved from GitHub on 2026-10-22.

Issue #647 · 2023-01
Xiaomi Mijia 1CRequestedNeeds new class; commands differ; handshake timeout, no control
Saved copy
First of all I got this: [4/25/2020, 14:05:01] [Xiaomi Mijia 1C] ERR connect | miio.device, next try in 2 minutes | Error: Could not connect to device, handshake timeout Then 2 mins later: [4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | Connected to: 192.168.1.237 [4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | Model: dreame.vacuum.mc1808 [4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | State: undefined [4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | FanSpeed: undefined [4/25/2020, 14:07:14] [Xiaomi Mijia 1C] STA getDevice | BatteryLevel: undefined [4/25/2020, …

Excerpt saved from GitHub on 2026-10-22.

Issue #150 · 2020-04

Gathered from the plugin’s GitHub issues, pull requests, discussions, wiki and docs, and from r/homebridge. These are individual reports, so check the linked thread and the date before you buy.

How it connects

Local

miio protocol over LAN with IP and token

You’ll need

  • Device IP and token
  • Vacuum linked to Mi Home app

Compatibility

Verified by HomebridgeYes
Homebridge versions^2.3.0
Homebridge 2.0Yes
Node.js^22 || ^24 || ^26
Settings in Homebridge UIYes
MatterNo
Platform nameXiaomiRoborockVacuum
LicenseMIT

Community signals

Downloads a week511
Downloads a month3,637
GitHub stars395
Open issues96
Closed issues332
Discussions13
Last code push2026-10-13
Latest version0.36.0 (2026-09-07)
First published2018-03-22
Releases124

In ReReHome

Whatever this plugin publishes reaches Apple Home as a normal HomeKit accessory behind your Homebridge bridge, so ReReHome shows and controls it like any other.

Bridges get their own settings page listing the accessories behind them.

Caveats from the README

  • Roborock-app devices unsupported
  • Shown as a Fan, not a vacuum

HomeKit services in its code

Found by scanning the published npm package. A plugin can register a service only for some devices.

  • Battery
  • Fan
  • FilterMaintenance
  • LockMechanism
  • OccupancySensor
  • Switch