homebridge-roborock-matter 2.9.7 → 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,11 @@
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
+
3
9
  ## 2.9.7
4
10
 
5
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.
package/README.md CHANGED
@@ -35,7 +35,7 @@ This is the most feature-packed, most thoroughly engineered Roborock plugin for
35
35
 
36
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.
37
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.
38
- - 🧭 **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.
39
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.
40
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.
41
41
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-roborock-matter",
3
- "version": "2.9.7",
3
+ "version": "2.9.8",
4
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": {
@@ -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
- ```