npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-1c-matter

v1.1.1

Published

Matter-native Homebridge 2.0 plugin for Xiaomi Mi Robot Vacuum-Mop 1C

Readme

Matter-native Homebridge 2.0 plugin for Xiaomi Mi Robot Vacuum-Mop 1C using Local LAN control.

Published on npm as homebridge-1c-matter.

About

Homebridge Xiaomi 1C Vacuum brings the Xiaomi Mi Robot Vacuum-Mop 1C (dreame.vacuum.mc1808) into Apple Home as a native Matter robotic vacuum. It talks directly to the vacuum over your local network using Xiaomi's miIO/MIoT protocol, so day-to-day controls do not depend on Xiaomi Cloud.

The plugin focuses on the controls that make sense in Apple Home: start, pause, resume, return to dock, suction mode, battery, charging state, fault status, consumable status, Siri, scenes, and automations. Your existing Xiaomi map, no-go zones, and saved cleaning rules remain managed by the Mi Home app and are respected by the vacuum during normal whole-home cleans.

Supported Models

This plugin is built and tested for the Xiaomi Mi Robot Vacuum-Mop 1C.

Known identifiers for the supported model:

  • Xiaomi Mi Robot Vacuum-Mop 1C
  • Xiaomi model STYTJ01ZHM
  • Dreame/MIoT model dreame.vacuum.mc1808
  • Hardware model 1C Vacuum (MC1808)

Other Xiaomi, Mi, Dreame, or Roborock vacuums may use different local MIoT properties and actions. They are not currently supported unless a matching model profile is added.

Features

  • Native HomeKit Vacuum Support: Appears as a native vacuum in the Home app (iOS 18+ / Homebridge 2.0+).
  • Local Control: Bypasses Xiaomi Cloud for instant response and better privacy.
  • Cleaning Controls: Start cleaning, pause, resume, and return to dock.
  • Suction Modes: Quiet, Default, Medium, and Strong cleaning modes.
  • Status Updates: Reports idle, cleaning, paused, error, and returning-to-dock states.
  • Fault Labels: Logs common vacuum fault codes with readable descriptions.
  • Find Vacuum: Apple Home identify requests and the local check command can trigger the vacuum's locate prompt.
  • Consumable Status: Logs main brush, side brush, and filter life when status changes.
  • Consumable Resets: Local helper can reset main brush, side brush, and filter counters after replacement.
  • Power Status: Reports battery percentage and charging/docked state.
  • Apple Home Automations: Works with Siri, scenes, and Apple Home automations through Matter.
  • Local Connectivity Check: Includes a command-line check to verify local IP, token, and device ID access before pairing.

Installation

Install from npm: homebridge-1c-matter

  1. Install Homebridge 2.0 or later.
  2. Search for homebridge-1c-matter and install.
  3. Obtain your vacuum's IP Address and 32-character Token.

Configuration

Add the following to your Homebridge config.json:

{
  "platform": "OneCMatter",
  "name": "OneCMatter",
  "ip": "10.11.3.248",
  "token": "YOUR_32_CHARACTER_TOKEN",
  "deviceId": "YOUR_DEVICE_ID",
  "pollInterval": 30,
  "connectAttempts": 5
}

How to get your Token

You can use the Xiaomi-Cloud-Tokens-Extractor to easily get the IP, Token, and Device ID for all your Xiaomi devices.

Network Notes

This plugin talks directly to the vacuum over the local Xiaomi miIO protocol on UDP port 54321.

If Homebridge and the vacuum are on the same VLAN/subnet, no special network rules should normally be required.

If they are on different VLANs or subnets, basic ping may work while miIO still times out. Allow the Homebridge host to reach the vacuum on UDP 54321. Some Xiaomi vacuums only respond reliably when the request appears to come from their own subnet; if a normal allow rule is not enough, add a tightly scoped source NAT/masquerade rule for this traffic.

| Setting | Value | | :--- | :--- | | Source | Homebridge host IP | | Destination | Vacuum IP | | Protocol | UDP | | Destination Port | 54321 | | Action | Allow | | If cross-subnet miIO still times out | Add source NAT/masquerade for this same source, destination, protocol, and port |

You can test local connectivity outside Homebridge with:

npm run check:local -- <vacuum-ip> <token> <device-id>

Add --raw to print the raw MIoT response instead of the human-readable summary.

To trigger the vacuum's locate prompt:

npm run check:local -- <vacuum-ip> <token> <device-id> --find

After replacing a consumable, reset its counter with:

npm run check:local -- <vacuum-ip> <token> <device-id> --reset main-brush
npm run check:local -- <vacuum-ip> <token> <device-id> --reset filter
npm run check:local -- <vacuum-ip> <token> <device-id> --reset side-brush

Pairing

Once Homebridge starts, check the logs for the Matter QR Code. Scan this code with your Home app to add the vacuum.

License

MIT