homebridge / homebridge/plugins

Verification Request: homebridge-roborock-vacuum

Open
#1,129 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

awaiting-final-review request-verification
Dominant language
TypeScript
Stars
369
Forks
24
PR merge metrics
No merged PRs in 30d

Description

Plugin Name

homebridge-roborock-vacuum

Link To GitHub Repo

homebridge-roborock-vacuum

Plugin Icon (Optional)
Image
The plugin does not offer the same nor less functionality than that of any existing verified plugin.

🟢 Yes

The plugin successfully installs and does not start unless it is configured.

🟢 Yes

The plugin does not require the user to run Homebridge in a TTY or with non-standard startup parameters, even for initial configuration.

🟢 Yes

The plugin does not contain any analytics or calls that enable you to track the user.

🟢 Yes

If the plugin needs to write files to disk (cache, keys, etc.), it stores them inside the Homebridge storage directory.

🟢 Yes

The plugin does not throw unhandled exceptions, the plugin must catch and log its own errors.

🟢 Yes

More Information

Thank you for reviewing this request. Some background on the plugin and how it
differs from existing verified plugins:

Relationship to existing verified plugins

While homebridge-xiaomi-roborock-vacuum (verified) also targets Roborock
vacuums, it works over the Xiaomi miIO protocol and requires the device to be
set up in the Xiaomi ecosystem. This plugin instead signs in with the user's
official Roborock app account and communicates through the Roborock cloud API
plus a direct local (LAN) connection to each vacuum. As a result it covers a
different and growing set of devices and features:

  • Supports newer Roborock models that are only available in the Roborock app
    ecosystem and are not exposed via miIO
  • Roborock scenes (created in the Roborock app) surfaced as HomeKit switches,
    automatically added/removed as scenes change
  • Dock mop-wash control (start/stop) for models with a washing dock, with
    state kept in sync even when a wash is started from the Roborock app
  • Optional Matter robotic-vacuum bridging (per device), including per-room
    cleaning through the ServiceArea cluster and clean-mode selection

Verification requirements

  • Dynamic platform plugin, registered via the standard Homebridge API
  • Configuration is done entirely in the Homebridge UI: config.schema.json plus
    a custom settings page (@homebridge/plugin-ui-utils) with an email/QR-code
    login flow — no token extraction, no TTY, no non-standard startup parameters
  • If no platform config is present, the plugin does not start
  • The Roborock cloud session token is encrypted at rest; the encryption key
    and session files are written inside the Homebridge storage directory with
    owner-only permissions
  • No analytics or user tracking of any kind
  • Runs on Node.js v22 and v24 (engines: ^18.20.4 || ^20.15.1 || ^22 || ^24)
  • A GitHub release with release notes is published for every version, and
    GitHub issues are enabled for support

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing homebridge-roborock-vacuum's config.schema.json and custom settings page against the listed verification requirements, then check its standard Homebridge API registration and storage behavior. Done means the plugin's installation, configuration, error handling, authentication, and release requirements have been confirmed for verification.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
developer-experience
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.