homebridge-roborock-matter 2.9.6 → 2.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.9.8
4
+
5
+ - Fixed a long-standing quirk in state persistence: the file encoding argument was passed to `JSON.stringify` (where it is silently ignored) instead of `fs.writeFileSync`. Behavior was correct by luck (utf8 is the default); the code now says what it means.
6
+ - npm search keywords expanded (s7, s8, q revo, saros, robotic vacuum) so the plugin is found by people searching for their model.
7
+ - README: highlighted that one sign-in brings the whole fleet — every robot on the account appears as its own accessory.
8
+
9
+ ## 2.9.7
10
+
11
+ - Positioning sharpened across the npm description and README: the entire Roborock lineup is supported (classic S/Q/Saros series through the 2025 Q7 series that no other plugin can control, with automatic adoption of future models), presented as the most complete Roborock plugin for Apple Home. No functional changes.
12
+
3
13
  ## 2.9.6
4
14
 
5
15
  - **Friendlier plugin description and README.** The npm description shown in the Homebridge UI now leads with what the plugin does for you ("sign in with your Roborock account — start cleans, pick rooms, set suction power, and see live which room the robot is cleaning") instead of protocol terminology. The README's intro, feature matrix and live-room section were rewritten in plain language, with the technical depth preserved in collapsible under-the-hood sections. No functional changes.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  <h1 align="center">homebridge-roborock-matter</h1>
6
6
 
7
7
  <p align="center">
8
- <b>Your Roborock vacuum as a native Matter robot in Apple Home — with live "cleaning in the kitchen" room tracking.</b>
8
+ <b>The most complete way to run your Roborock in Apple Home — every model, every feature, with live "cleaning in the kitchen" room tracking.</b>
9
9
  </p>
10
10
 
11
11
  <p align="center">
@@ -27,13 +27,15 @@
27
27
 
28
28
  ---
29
29
 
30
- Sign in with the same account you already use in the Roborock app — that's the whole setup. Every robot then appears in Apple Home as a real vacuum: start and stop cleans, send it to specific rooms, pick the suction power, check the battery — and watch the Home app tell you **which room it's cleaning right now**. No token extraction, no network tricks, no command line.
30
+ Sign in with the same account you already use in the Roborock app — that's the whole setup. Every robot on your account then appears in Apple Home as a real vacuum: start and stop cleans, send it to specific rooms, pick the suction power, check the battery — and watch the Home app tell you **which room it's cleaning right now**. No token extraction, no network tricks, no command line.
31
+
32
+ This is the most feature-packed, most thoroughly engineered Roborock plugin for Homebridge — and the only one that speaks every generation of Roborock, including the newest.
31
33
 
32
34
  ## Why this plugin
33
35
 
34
- - 🥇 **The only plugin that works with the newest Roborocks.** The 2025 Q7 series (Q7 M5 / M5+) speaks a brand-new protocol that no other Homebridge plugin understands. Fully supported here — alongside the classic S- and Q-series models.
36
+ - 🥇 **Every Roborock, fully supported.** The entire lineup works — from the classic S-series through the Q- and Saros families to the 2025 Q7 series (Q7 M5 / M5+), which speaks a brand-new protocol that no other Homebridge plugin understands. Brand-new models are adopted automatically with sensible defaults.
35
37
  - 📍 **See where it's cleaning — live.** Apple Home shows _"Cleaning — Kitchen"_ with the room the robot is actually inside, updating as it moves from room to room. Works even for cleans started from the robot's button or the Roborock app. No other Homebridge plugin does this.
36
- - 🧭 **One robot, one tile.** Your vacuum shows up as a single, native accessory in Apple Home — no clutter of fake fans and helper switches. Rooms appear with the names you gave them in the Roborock app.
38
+ - 🧭 **One robot, one tile — and as many robots as you own.** Sign in once and your whole fleet comes along: every vacuum on your account appears as its own clean, native accessory in Apple Home. No clutter of fake fans and helper switches, and rooms appear with the names you gave them in the Roborock app.
37
39
  - ⚡ **Fast and reliable.** Commands go directly to the robot over your own network whenever possible, with the Roborock cloud as automatic backup — and built-in diagnostics in the settings if you ever want to look under the hood.
38
40
  - 🛡️ **Verified by Homebridge.** Reviewed and endorsed by the Homebridge team. 263 automated tests, zero known vulnerabilities, no analytics, and a startup designed to never crash your Homebridge — even when your Wi-Fi or the Roborock cloud has a bad day.
39
41
 
@@ -85,9 +87,11 @@ Enable **Enable Suction-Level Cleaning Modes** (`enableFanPowerCleanModes`) and
85
87
 
86
88
  ## Supported robots
87
89
 
88
- - **B01/Q7-series (2025):** `roborock.vacuum.sc05` and compatible (Q7 M5 / M5+), including manual-tank mopping with vacuum/mop mode switching.
89
- - **Classic app-account Roborock vacuums** supported by the upstream lineage (S-series, Q-series, Saros — S5 through S8 Pro Ultra, Q5/Q7/Q8/Q Revo families and newer), published as Matter accessories.
90
- - Brand-new models get capability-derived defaults automatically. If something looks off, [open a model report](https://github.com/mathiashornbek/homebridge-roborock-matter/issues) with a diagnostics export — that's exactly what it's for.
90
+ **The entire Roborock lineup.** If it runs in the Roborock app, this plugin can control it:
91
+
92
+ - **2025 Q7 series** (`roborock.vacuum.sc05`, Q7 M5 / M5+) — the only Homebridge plugin that supports these at all, including manual-tank mopping with vacuum/mop mode switching.
93
+ - **Classic S-, Q- and Saros-series** — S5 through S8 Pro Ultra, Q5/Q7/Q8/Q Revo families, Saros, and newer.
94
+ - **Future models** are adopted automatically: the plugin reads what each robot says it can do and adapts, so brand-new releases get sensible defaults from day one. If something looks off, [open a model report](https://github.com/mathiashornbek/homebridge-roborock-matter/issues) with a diagnostics export — that's exactly what it's for.
91
95
 
92
96
  ## Configuration
93
97
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "homebridge-roborock-matter",
3
- "version": "2.9.6",
4
- "description": "Control your Roborock robot vacuums from Apple Home — just sign in with your Roborock account. Start cleans, pick rooms, set suction power, and see live which room the robot is cleaning. The only plugin supporting the new 2025 Q7 series, alongside classic S- and Q-series models. Verified by Homebridge.",
3
+ "version": "2.9.8",
4
+ "description": "The most complete Roborock plugin for Apple Home. Supports the entire Roborock lineup — from the classic S-series to the new 2025 Q7 series that no other plugin can control. Sign in with your Roborock account and get native start/stop, room cleaning, suction levels, battery, and live 'cleaning in the kitchen' room tracking. Verified by Homebridge.",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Mathias Hornbek"
@@ -16,9 +16,14 @@
16
16
  "homekit",
17
17
  "matter",
18
18
  "q7",
19
+ "q revo",
20
+ "robotic vacuum",
19
21
  "roborock",
20
22
  "roborock app",
21
23
  "roborock vacuum",
24
+ "s7",
25
+ "s8",
26
+ "saros",
22
27
  "vacuum",
23
28
  "vacuum cleaner"
24
29
  ],
@@ -303,7 +303,7 @@ class Roborock {
303
303
  }
304
304
  const persistPath = this.getPersistPath(id);
305
305
  fs.mkdirSync(path.dirname(persistPath), { recursive: true });
306
- fs.writeFileSync(persistPath, JSON.stringify(state, null, 2, "utf8"));
306
+ fs.writeFileSync(persistPath, JSON.stringify(state, null, 2), "utf8");
307
307
  }
308
308
 
309
309
  this.states[id] = state;
@@ -320,7 +320,8 @@ class Roborock {
320
320
  );
321
321
  fs.writeFileSync(
322
322
  fallbackPath,
323
- JSON.stringify(state, null, 2, "utf8")
323
+ JSON.stringify(state, null, 2),
324
+ "utf8"
324
325
  );
325
326
  this.states[id] = state;
326
327
  this.log.warn(
@@ -431,7 +432,7 @@ class Roborock {
431
432
 
432
433
  try {
433
434
  fs.mkdirSync(path.dirname(persistPath), { recursive: true });
434
- fs.writeFileSync(persistPath, JSON.stringify(state, null, 2, "utf8"));
435
+ fs.writeFileSync(persistPath, JSON.stringify(state, null, 2), "utf8");
435
436
  this.log.info(
436
437
  `Migrated legacy '${id}' state file from '${legacyPath}' to '${persistPath}'.`
437
438
  );
@@ -1,29 +0,0 @@
1
- # Svar til bwp91 på homebridge#3958 — klar til at poste
2
-
3
- ```markdown
4
- Thank you — this is exactly the kind of verification I was hoping for, and
5
- the C → Q correction is a genuinely important update. You're right that my
6
- analysis was written against the older changes-omitted reading of the
7
- attribute; I've already corrected the plugin's documentation to reflect the
8
- Matter 1.4 Q (quieter) quality and your subscription trace
9
- (mathiashornbek/homebridge-roborock-matter@main, README + docs).
10
-
11
- Your controller log also explains two things I had observed but couldn't
12
- fully reconcile: the resync nudge's null → value transition "working" at the
13
- wire level while Apple still never converged, and `batChargeState` updating
14
- live throughout. Both are consistent with the reports leaving the bridge and
15
- Apple simply not applying Q-quality percentage reports in steady state.
16
-
17
- I'll run the verification you suggested on my production setup (three
18
- robots: one V1, two B01) — Homebridge with matter.js debug logging through a
19
- full charge cycle, watching for the subscription flushes carrying
20
- `batPercentRemaining` — and post the log excerpts here. If I can get
21
- chip-tool set up on the same network I'll add a subscription trace from that
22
- side too.
23
-
24
- Assuming both confirm what your trace already shows, I'll file the Apple
25
- Feedback report about the controller's handling of Q-quality PowerSource
26
- attributes and link it here so others can dupe it. Thanks again for digging
27
- in — happy to test any builds if something changes in the Homebridge Matter
28
- layer down the road.
29
- ```