homebridge-roborock-matter 2.1.0

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.
Files changed (59) hide show
  1. package/.gitattributes +13 -0
  2. package/CHANGELOG.md +469 -0
  3. package/LICENSE +23 -0
  4. package/README.md +45 -0
  5. package/__tests__/testdata/b01_q7_get_prop_response.json +1 -0
  6. package/__tests__/testdata/b01_q7_map_fixture.json +16 -0
  7. package/config.schema.json +118 -0
  8. package/dist/crypto.js +65 -0
  9. package/dist/crypto.js.map +1 -0
  10. package/dist/index.js +10 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/live_message.js +25 -0
  13. package/dist/live_message.js.map +1 -0
  14. package/dist/logger.js +37 -0
  15. package/dist/logger.js.map +1 -0
  16. package/dist/matter_vacuum_accessory.js +1877 -0
  17. package/dist/matter_vacuum_accessory.js.map +1 -0
  18. package/dist/platform.js +441 -0
  19. package/dist/platform.js.map +1 -0
  20. package/dist/settings.js +8 -0
  21. package/dist/settings.js.map +1 -0
  22. package/dist/types.js +3 -0
  23. package/dist/types.js.map +1 -0
  24. package/dist/ui/index.js +741 -0
  25. package/dist/ui/index.js.map +1 -0
  26. package/docs/matter-rvc-updating-homebridge-report.md +120 -0
  27. package/homebridge-roborock-vacuum.code-workspace +7 -0
  28. package/homebridge-ui/public/index.html +257 -0
  29. package/homebridge-ui/public/index.js +1276 -0
  30. package/homebridge-ui/public/styles.css +611 -0
  31. package/homebridge-ui/server.js +3 -0
  32. package/package.json +91 -0
  33. package/roborockLib/i18n/de/translations.json +188 -0
  34. package/roborockLib/i18n/en/translations.json +208 -0
  35. package/roborockLib/i18n/es/translations.json +188 -0
  36. package/roborockLib/i18n/fr/translations.json +188 -0
  37. package/roborockLib/i18n/it/translations.json +188 -0
  38. package/roborockLib/i18n/nl/translations.json +188 -0
  39. package/roborockLib/i18n/pl/translations.json +188 -0
  40. package/roborockLib/i18n/pt/translations.json +188 -0
  41. package/roborockLib/i18n/ru/translations.json +188 -0
  42. package/roborockLib/i18n/uk/translations.json +188 -0
  43. package/roborockLib/i18n/zh-cn/translations.json +188 -0
  44. package/roborockLib/lib/RRMapParser.js +459 -0
  45. package/roborockLib/lib/b01Q7Adapter.js +468 -0
  46. package/roborockLib/lib/deviceFeatures.js +1349 -0
  47. package/roborockLib/lib/localConnector.js +629 -0
  48. package/roborockLib/lib/map/map.html +137 -0
  49. package/roborockLib/lib/map/zones.js +851 -0
  50. package/roborockLib/lib/message.js +402 -0
  51. package/roborockLib/lib/messageQueueHandler.js +411 -0
  52. package/roborockLib/lib/roborockAuth.js +178 -0
  53. package/roborockLib/lib/roborockCrypto.js +55 -0
  54. package/roborockLib/lib/roborockPackageHelper.js +142 -0
  55. package/roborockLib/lib/roborock_mqtt_connector.js +567 -0
  56. package/roborockLib/lib/sniffing/mitmproxy_roborock.py +300 -0
  57. package/roborockLib/lib/vacuum.js +992 -0
  58. package/roborockLib/roborockAPI.js +3635 -0
  59. package/tsconfig.roborockLib.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ # Matter Robotic Vacuum Cleaner (device type 0x74) "Updating…" investigation in Apple Home
2
+
3
+ Evidence gathered live from a running Homebridge 2.1.1‑beta.1 container for
4
+ **homebridge/homebridge#3951**.
5
+
6
+ ## Summary
7
+
8
+ A Matter Robotic Vacuum Cleaner (RVC, device type `0x74`) exposed through Homebridge 2's Matter API commissioned successfully into Apple Home, the controller subscribed and read every attribute **without error**, but the accessory tile initially stayed **stuck on "Updating…"** and never became controllable.
9
+
10
+ The exposing plugin was ruled out during the original failure (see "Ruled out"). A later clean reset/re-pair of the same external RVC node, with the full intended cluster set enabled, rendered correctly in Apple Home on both Mac and iPhone. The current read is that the failure was likely stale Apple Home controller/presentation state, or a Homebridge/matter.js/Apple Home presentation edge case that is not deterministic.
11
+
12
+ ## Latest status
13
+
14
+ After resetting the Homebridge external RVC Matter node and removing the stale Apple Home accessory, the full RVC endpoint paired and rendered successfully:
15
+
16
+ - Apple Home tile reached `Ready` on Mac and iPhone.
17
+ - The control sheet opened with Start, Clean Mode, Rooms, and Send to Dock.
18
+ - The Rooms sheet rendered the expected Service Area choices.
19
+ - Homebridge logs showed successful commissioning, fresh subscriptions, and full state publishes for `rvcRunMode`, `rvcOperationalState`, `rvcCleanMode`, `serviceArea`, and `powerSource`.
20
+ - No Homebridge conformance errors or subscription cancellations were found.
21
+
22
+ One Apple Home log remained:
23
+
24
+ ```text
25
+ No options for RVC secondaryCleanControl
26
+ ```
27
+
28
+ That log appeared non-fatal because the UI rendered and was controllable. The earlier `primaryCleanControl` / `Failed to build RVC status button control` messages only appeared on the stale pre-removal accessory and did not recur after fresh pairing.
29
+
30
+ ## Environment
31
+
32
+ | | |
33
+ | -------------------------- | -------------------------------------------------------------- |
34
+ | Homebridge | **2.1.1‑beta.1** (also the newest published; `latest` = 2.1.0) |
35
+ | matter.js (`@matter/main`) | **0.17.2-alpha.0-20260605-b2c9f3f65** |
36
+ | Node | 24.17.0 (Docker `homebridge/homebridge:beta`) |
37
+ | Exposing plugin | homebridge-roborock-vacuum2 1.4.58 (also reproduced on 1.4.42) |
38
+ | Controller | Apple Home, multi‑hub (Apple TV + HomePod), current iOS/tvOS |
39
+ | Device | Roborock S6 Pure exposed as RVC `0x74` rev 4 |
40
+
41
+ The RVC is published as a **standalone external Matter node** (its own commissioning node, separate from the child bridge's aggregator node), which is the documented Homebridge behavior for robotic vacuums.
42
+
43
+ Endpoint as instantiated by Homebridge:
44
+
45
+ ```
46
+ endpoint#1 type: RoboticVacuumCleaner (0x74, rev 4)
47
+ behaviors: ✓identify ✓rvcRunMode ✓rvcOperationalState ✓rvcCleanMode ✓serviceArea ✓powerSource ✓descriptor
48
+ ```
49
+
50
+ ## Original symptom
51
+
52
+ - Commissioning completes: `generalCommissioning.commissioningComplete errorCode: 0`.
53
+ - The controller establishes a subscription and reads the RVC endpoint.
54
+ - The Apple Home tile shows **"Updating…" indefinitely** and is never controllable.
55
+ - It briefly clears if an `Identify` command is invoked (e.g. "Play Sound to Locate"), then reverts — i.e. a command round‑trip forces a one‑time re‑render, but passive subscription data does not.
56
+
57
+ ## Original reproduction
58
+
59
+ 1. Expose any Matter RVC (`0x74`) via Homebridge 2.1.x‑beta Matter.
60
+ 2. Commission it into Apple Home.
61
+ 3. Observe the tile never leaves "Updating…".
62
+
63
+ ## What we ruled out (each with evidence)
64
+
65
+ | Hypothesis | Test | Result |
66
+ | ------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
67
+ | Exposing plugin / its data | Deployed a known‑good older plugin build | **Identical failure** |
68
+ | Stale/corrupt controller record | Full remove + fresh re‑pair (multiple times) | Still "Updating…" |
69
+ | Transport / reachability | Inspected the subscription | Controller subscribes, reads endpoint 1, **0 attribute errors**, ACKs all reports, then settles (no read loop) |
70
+ | Service Area cluster | Removed `serviceArea` from the endpoint, re‑paired | Still "Updating…" |
71
+ | Multi‑admin contamination | Device is co‑commissioned to Apple (vendor 4937) + Amazon (vendor 4996) | Amazon fabric is **idle (0 messages)**; multi‑admin is normal — not the cause |
72
+
73
+ ## Wire‑level evidence
74
+
75
+ The persisted RVC Operational State cluster is spec‑conformant (PhaseList/CurrentPhase null, only base states advertised, no labels):
76
+
77
+ ```json
78
+ {
79
+ "phaseList": null,
80
+ "currentPhase": null,
81
+ "operationalStateList": [
82
+ { "operationalStateId": 0 },
83
+ { "operationalStateId": 1 },
84
+ { "operationalStateId": 2 },
85
+ { "operationalStateId": 3 }
86
+ ],
87
+ "operationalState": 0
88
+ }
89
+ ```
90
+
91
+ `rvcRunMode` / `rvcCleanMode` advertise valid `supportedModes` with conformant `modeTags`, and each `currentMode` exists in its `supportedModes`. The controller reads all of this with no `Status=Unsupported*`/constraint errors (only the benign `OTA Requestor (0x2A)` and Apple vendor‑cluster `0x1349…` probes return UnsupportedCluster, as expected).
92
+
93
+ During the original failure, the controller received correct, conformant, error‑free RVC data over a healthy subscription and still refused to render the tile.
94
+
95
+ ## What we suspect / open question
96
+
97
+ Since the controller never errored on a read yet did not render until a later reset/re-pair, the gap is likely one of:
98
+
99
+ 1. **Stale Apple Home controller/presentation state** for the external RVC node, especially after cluster-set or persisted-state changes, **or**
100
+ 2. **A Homebridge/matter.js or Apple RVC presentation edge case** that can be cleared by a clean node reset and fresh Apple Home pairing.
101
+
102
+ **Questions for maintainers:**
103
+
104
+ - Is Matter RVC (`0x74`) via Homebridge 2.1.x expected to render in Apple Home today, or is it a known gap/limitation?
105
+ - Is the **standalone external node** the correct structure for RVC, and does Apple's RVC client require anything beyond what `@matter/main` 0.17.2 emits for this device type?
106
+ - Are there required RVC attributes/feature‑map bits (e.g. on RVC Operational State, or Service Area conformance) that the device type should be advertising but isn't?
107
+
108
+ ## If it recurs
109
+
110
+ If the issue recurs after a clean reset/re-pair, pair the same RVC node into a **non‑Apple ecosystem with real RVC support (Google Home)**:
111
+
112
+ - Renders in Google but not Apple ⇒ **Apple RVC client** issue.
113
+ - Fails in Google too ⇒ **Homebridge/matter.js RVC output** issue.
114
+
115
+ (We could not use Alexa for this — Amazon co‑commissions the node automatically but its RVC support doesn't surface a usable tile, so it's not a clean comparison.)
116
+
117
+ ## Notes
118
+
119
+ - The Apple + Amazon dual‑fabric is normal Matter multi‑admin (the Amazon fabric is created by the iOS‑level linked‑ecosystem handoff, not the plugin) and is **not** the cause — the failure reproduces identically and the Amazon fabric is idle.
120
+ - Logs (commissioning, subscription, attribute reads, persisted cluster state) are available on request, redacted of pairing codes.
@@ -0,0 +1,7 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": ".",
5
+ },
6
+ ],
7
+ }
@@ -0,0 +1,257 @@
1
+ <link rel="stylesheet" href="styles.css" />
2
+
3
+ <main class="container">
4
+ <header>
5
+ <h1>Roborock Vacuum</h1>
6
+ <p class="subtitle">
7
+ Configure account access, discovery filters, and connection diagnostics.
8
+ </p>
9
+ </header>
10
+
11
+ <section class="panel">
12
+ <div class="section-header">
13
+ <div>
14
+ <h2>Account</h2>
15
+ <p class="help">
16
+ The plugin can start with either a saved encrypted token or a password
17
+ fallback.
18
+ </p>
19
+ </div>
20
+ <span id="auth-status" class="status-pill warn">Checking config</span>
21
+ </div>
22
+
23
+ <div class="settings-grid">
24
+ <label class="field">
25
+ <span>Email</span>
26
+ <input id="email" type="email" placeholder="name@example.com" />
27
+ <small>Roborock account email used for login and discovery.</small>
28
+ </label>
29
+
30
+ <label id="password-row" class="field">
31
+ <span>Password</span>
32
+ <input id="password" type="password" placeholder="Password" />
33
+ <small
34
+ >Used to create a token or as a fallback if no token exists.</small
35
+ >
36
+ </label>
37
+
38
+ <label class="field">
39
+ <span>Region</span>
40
+ <select id="base-url">
41
+ <option value="https://usiot.roborock.com">
42
+ US (usiot.roborock.com)
43
+ </option>
44
+ <option value="https://euiot.roborock.com">
45
+ EU (euiot.roborock.com)
46
+ </option>
47
+ <option value="https://cniot.roborock.com">
48
+ CN (cniot.roborock.com)
49
+ </option>
50
+ <option value="https://api.roborock.com">
51
+ Asia (api.roborock.com)
52
+ </option>
53
+ </select>
54
+ <small>Choose the region used by your Roborock app account.</small>
55
+ </label>
56
+
57
+ <label class="field">
58
+ <span>Skip Devices</span>
59
+ <input
60
+ id="skip-devices"
61
+ type="text"
62
+ placeholder="Serial number or DUID, comma-separated"
63
+ />
64
+ <small
65
+ >Optional. Use values shown in Diagnostics to ignore devices.</small
66
+ >
67
+ </label>
68
+
69
+ <label class="field">
70
+ <span>Transient Warning Interval</span>
71
+ <input
72
+ id="transient-warning-throttle-hours"
73
+ type="number"
74
+ min="0"
75
+ step="0.25"
76
+ placeholder="6"
77
+ />
78
+ <small
79
+ >Hours between repeated timeout warnings per vacuum. Use 0 to show
80
+ these only when debug logging is enabled.</small
81
+ >
82
+ </label>
83
+ </div>
84
+
85
+ <label class="checkbox">
86
+ <input id="enable-matter-charging-docked" type="checkbox" />
87
+ <span>
88
+ Show Charging/Docked on the Apple Home tile
89
+ <small
90
+ >Reports real Matter Charging and Docked states instead of Ready
91
+ while on the dock. Requires a recent iOS/tvOS; turn off and restart
92
+ the bridge if the tile misbehaves.</small
93
+ >
94
+ </span>
95
+ </label>
96
+ <label class="field">
97
+ <span>Charged Battery Threshold (%)</span>
98
+ <input
99
+ id="matter-charged-battery-threshold"
100
+ type="number"
101
+ min="1"
102
+ max="100"
103
+ step="1"
104
+ placeholder="100"
105
+ />
106
+ <small
107
+ >The tile shows Charging while docked below this battery percentage,
108
+ and Docked at or above it. Lower it (e.g. 90) if a worn battery makes
109
+ the robot report fully charged early.</small
110
+ >
111
+ </label>
112
+ <p class="help matter-setup-note">
113
+ After saving and restarting the Roborock bridge, use the Matter Pairing
114
+ section below. Apple Home may need both the bridge QR code and the
115
+ vacuum's 11-digit setup code.
116
+ </p>
117
+
118
+ <details id="advanced-settings" class="advanced-settings">
119
+ <summary>Advanced troubleshooting</summary>
120
+ <p class="help">
121
+ Use these when collecting logs or working around local connection
122
+ timeouts.
123
+ </p>
124
+
125
+ <label class="checkbox">
126
+ <input id="debug-mode" type="checkbox" />
127
+ <span>
128
+ Enable debug logging
129
+ <small
130
+ >Writes verbose API, discovery, and transport details to the
131
+ Homebridge log.</small
132
+ >
133
+ </span>
134
+ </label>
135
+
136
+ <label class="checkbox">
137
+ <input id="prefer-cloud-for-matter-commands" type="checkbox" />
138
+ <span>
139
+ Prefer Roborock cloud for Matter commands
140
+ <small
141
+ >Use cloud transport for Matter vacuum commands when available. This
142
+ can avoid local LAN command timeouts on some models.</small
143
+ >
144
+ </span>
145
+ </label>
146
+
147
+ <label class="checkbox">
148
+ <input id="cloud-only-mode" type="checkbox" />
149
+ <span>
150
+ Use Roborock cloud only
151
+ <small
152
+ >Disables local LAN discovery and local TCP commands for this
153
+ plugin. Restart the Roborock child bridge after changing this
154
+ setting.</small
155
+ >
156
+ </span>
157
+ </label>
158
+ </details>
159
+
160
+ <div class="actions">
161
+ <button id="save-settings" class="secondary">Save Settings</button>
162
+ <button id="login" class="primary">Password Login</button>
163
+ <button id="logout" class="secondary hidden">Logout</button>
164
+ </div>
165
+ </section>
166
+
167
+ <section class="panel">
168
+ <div class="section-header">
169
+ <div>
170
+ <h2>Devices</h2>
171
+ <p class="help">
172
+ Choose which robots this plugin manages. Unchecked robots are added
173
+ to Skip Devices: they are not polled, not published to Matter, and cost no resources. Restart the Roborock bridge after
174
+ changing.
175
+ </p>
176
+ </div>
177
+ <button id="refresh-devices" class="secondary">Refresh</button>
178
+ </div>
179
+ <div id="devices-empty" class="help">
180
+ Devices have not been loaded yet. Run a successful plugin startup, then
181
+ refresh this section.
182
+ </div>
183
+ <div id="devices-list" class="device-list"></div>
184
+ </section>
185
+
186
+ <section class="panel">
187
+ <div class="section-header">
188
+ <div>
189
+ <h2>Matter Pairing</h2>
190
+ <p class="help">
191
+ Pair the Roborock child/daughter bridge first, then add the external
192
+ vacuum accessory if Apple Home asks for it.
193
+ </p>
194
+ </div>
195
+ <button id="refresh-matter-pairing" class="secondary">Refresh</button>
196
+ </div>
197
+ <div id="matter-pairing-summary" class="diagnostics-summary muted">
198
+ Matter pairing codes have not been loaded yet.
199
+ </div>
200
+ <div id="matter-pairing-empty" class="help">
201
+ Enable Matter for the Roborock child/daughter bridge, enable the Matter
202
+ vacuum setting above, save, restart the bridge, then refresh this section.
203
+ </div>
204
+ <div id="matter-pairing-list" class="pairing-list"></div>
205
+ </section>
206
+
207
+ <section class="panel hidden" id="two-factor-section">
208
+ <h2>Two-Factor Authentication</h2>
209
+ <p class="help">
210
+ Send a Roborock verification email, then enter the code to save an
211
+ encrypted token.
212
+ </p>
213
+ <label id="code-row" class="field">
214
+ <span>Verification Code</span>
215
+ <input id="two-factor-code" type="text" placeholder="6-digit code" />
216
+ <small
217
+ >Codes usually expire quickly; request a fresh one if verification
218
+ fails.</small
219
+ >
220
+ </label>
221
+ <div class="actions">
222
+ <button id="send-2fa" class="primary">Send Email</button>
223
+ <button id="verify-2fa" class="secondary">Verify Code</button>
224
+ </div>
225
+ </section>
226
+
227
+ <section class="panel">
228
+ <div class="section-header">
229
+ <div>
230
+ <h2>Diagnostics</h2>
231
+ <p class="help">
232
+ Read the latest cached Roborock HomeData and local transport state.
233
+ </p>
234
+ </div>
235
+ <div class="diagnostics-actions">
236
+ <button id="test-local" class="primary">Test Local Connection</button>
237
+ <button id="copy-diagnostics" class="secondary">
238
+ Copy Diagnostic Report
239
+ </button>
240
+ <button id="refresh-diagnostics" class="secondary">Refresh</button>
241
+ </div>
242
+ </div>
243
+ <div id="diagnostics-summary" class="diagnostics-summary muted">
244
+ No diagnostics loaded yet.
245
+ </div>
246
+ <div id="diagnostics-empty" class="help">
247
+ Run a successful plugin startup, then refresh to inspect the latest cached
248
+ HomeData.
249
+ </div>
250
+ <div id="local-test-results" class="local-test-results hidden"></div>
251
+ <div id="diagnostics-list" class="diagnostics-list"></div>
252
+ </section>
253
+ </main>
254
+
255
+ <div id="toast-container" class="toast-container"></div>
256
+
257
+ <script src="index.js"></script>