homebridge-roborock-matter 2.8.1 → 2.9.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.
- package/CHANGELOG.md +5 -0
- package/README.md +6 -0
- package/homebridge-ui/public/index.html +124 -33
- package/homebridge-ui/public/index.js +59 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.9.0
|
|
4
|
+
|
|
5
|
+
- **All Apple Home feature toggles are now visible in the plugin settings UI.** The custom settings page previously exposed only a subset of the configuration; options like suction-level cleaning modes, live room tracking, room/map selection, cleaning mode selection, battery and Returning status could only be set by editing the JSON config by hand. They now live in a dedicated **Apple Home Features** section, with a clear "⚠ re-pair" marker on every option that changes the robot's announced Matter capabilities (Matter locks capabilities at commissioning — after toggling those, restart Homebridge, then remove and re-pair the robot).
|
|
6
|
+
- No functional changes to the plugin itself.
|
|
7
|
+
|
|
3
8
|
## 2.8.1
|
|
4
9
|
|
|
5
10
|
- **Suction modes now render with proper localized names in Apple Home.** Field observation: Apple ignores Matter mode labels and renders its own localized names from the mode TAGS (a variant with only the Vacuum tag displays as plain "Vacuum"). Balanced and Turbo therefore now carry distinct intensity tags (Auto and Quick), matching Quiet and Max — in Apple Home the five levels render as Quiet / Automatic / Quick / Max (+ Deep Clean for Max+ on Q7). Remember: enabling `enableFanPowerCleanModes` requires one remove/re-pair of the robot, since Matter fixes the mode list at commissioning.
|
package/README.md
CHANGED
|
@@ -66,6 +66,12 @@ While a robot is actively cleaning, the plugin fetches its live position from th
|
|
|
66
66
|
|
|
67
67
|
Enabled by default; opt out with `enableLiveRoomTracking: false`.
|
|
68
68
|
|
|
69
|
+
## Suction modes (optional)
|
|
70
|
+
|
|
71
|
+
Enable **Enable Suction-Level Cleaning Modes** (`enableFanPowerCleanModes`) and Apple Home's mode picker gains the suction levels — rendered by Apple with localized names from the Matter mode tags: **Quiet / Automatic / Quick / Max** (+ **Deep Clean** for the Q7's Max+ level). The current mode follows the robot live, so suction changed in the Roborock app shows up in Apple Home too.
|
|
72
|
+
|
|
73
|
+
> ⚠️ **Re-pairing required:** Matter locks an accessory's mode list at commissioning. After enabling (or disabling) this option, restart Homebridge, then **remove the robot from Apple Home and pair it again** — otherwise the new modes will not appear. The same applies to any option that changes announced capabilities.
|
|
74
|
+
|
|
69
75
|
## Supported robots
|
|
70
76
|
|
|
71
77
|
- **B01/Q7-series (2025):** `roborock.vacuum.sc05` and compatible (Q7 M5 / M5+), including manual-tank mopping with vacuum/mop mode switching.
|
|
@@ -82,39 +82,6 @@
|
|
|
82
82
|
</label>
|
|
83
83
|
</div>
|
|
84
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 while
|
|
91
|
-
on the dock. Requires a recent iOS/tvOS; turn off and restart the
|
|
92
|
-
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, and
|
|
108
|
-
Docked at or above it. Lower it (e.g. 90) if a worn battery makes the
|
|
109
|
-
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
85
|
<details id="advanced-settings" class="advanced-settings">
|
|
119
86
|
<summary>Advanced troubleshooting</summary>
|
|
120
87
|
<p class="help">
|
|
@@ -164,6 +131,130 @@
|
|
|
164
131
|
</div>
|
|
165
132
|
</section>
|
|
166
133
|
|
|
134
|
+
<section class="panel">
|
|
135
|
+
<div class="section-header">
|
|
136
|
+
<div>
|
|
137
|
+
<h2>Apple Home Features</h2>
|
|
138
|
+
<p class="help">
|
|
139
|
+
What each robot exposes through Matter. Options marked
|
|
140
|
+
<strong>⚠ re-pair</strong> change the robot's announced
|
|
141
|
+
capabilities: after toggling them, save, restart Homebridge, then
|
|
142
|
+
remove the robot from Apple Home and pair it again — Matter locks
|
|
143
|
+
capabilities at pairing time.
|
|
144
|
+
</p>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
|
|
148
|
+
<label class="checkbox">
|
|
149
|
+
<input id="enable-matter-service-area" type="checkbox" />
|
|
150
|
+
<span>
|
|
151
|
+
Room & map selection <strong>⚠ re-pair</strong>
|
|
152
|
+
<small
|
|
153
|
+
>Pick rooms to clean directly in Apple Home, using your Roborock room
|
|
154
|
+
names (multi-map homes included).</small
|
|
155
|
+
>
|
|
156
|
+
</span>
|
|
157
|
+
</label>
|
|
158
|
+
|
|
159
|
+
<label class="checkbox">
|
|
160
|
+
<input id="enable-live-room-tracking" type="checkbox" />
|
|
161
|
+
<span>
|
|
162
|
+
Live room tracking
|
|
163
|
+
<small
|
|
164
|
+
>While cleaning, the robot's map position is resolved to the room it
|
|
165
|
+
is physically inside and shown as the current room in Apple Home
|
|
166
|
+
(fetched every ~20 s during active runs only).</small
|
|
167
|
+
>
|
|
168
|
+
</span>
|
|
169
|
+
</label>
|
|
170
|
+
|
|
171
|
+
<label class="checkbox">
|
|
172
|
+
<input id="enable-matter-clean-mode" type="checkbox" />
|
|
173
|
+
<span>
|
|
174
|
+
Cleaning mode selection <strong>⚠ re-pair</strong>
|
|
175
|
+
<small
|
|
176
|
+
>Vacuum / Mop / Vacuum + Mop in Apple Home's mode picker,
|
|
177
|
+
capability-gated per robot.</small
|
|
178
|
+
>
|
|
179
|
+
</span>
|
|
180
|
+
</label>
|
|
181
|
+
|
|
182
|
+
<label class="checkbox">
|
|
183
|
+
<input id="enable-fan-power-clean-modes" type="checkbox" />
|
|
184
|
+
<span>
|
|
185
|
+
Suction-level cleaning modes <strong>⚠ re-pair</strong>
|
|
186
|
+
<small
|
|
187
|
+
>Adds Quiet / Balanced / Turbo / Max (and Max+ on Q7) to the mode
|
|
188
|
+
picker — Apple renders them as Quiet / Automatic / Quick / Max / Deep
|
|
189
|
+
Clean. Requires cleaning mode selection above.</small
|
|
190
|
+
>
|
|
191
|
+
</span>
|
|
192
|
+
</label>
|
|
193
|
+
|
|
194
|
+
<label class="checkbox">
|
|
195
|
+
<input id="enable-matter-power-source" type="checkbox" />
|
|
196
|
+
<span>
|
|
197
|
+
Battery status <strong>⚠ re-pair</strong>
|
|
198
|
+
<small
|
|
199
|
+
>Battery percentage and charging state on the Matter accessory. See
|
|
200
|
+
the README for a known Apple-side limitation on percentage
|
|
201
|
+
refresh.</small
|
|
202
|
+
>
|
|
203
|
+
</span>
|
|
204
|
+
</label>
|
|
205
|
+
|
|
206
|
+
<label class="checkbox">
|
|
207
|
+
<input id="enable-matter-extended-states" type="checkbox" />
|
|
208
|
+
<span>
|
|
209
|
+
Returning status
|
|
210
|
+
<small
|
|
211
|
+
>Shows the extended Matter Returning state while the robot heads back
|
|
212
|
+
to the dock. Off by default for maximum Apple Home
|
|
213
|
+
compatibility.</small
|
|
214
|
+
>
|
|
215
|
+
</span>
|
|
216
|
+
</label>
|
|
217
|
+
|
|
218
|
+
<label class="checkbox">
|
|
219
|
+
<input id="enable-matter-charging-docked" type="checkbox" />
|
|
220
|
+
<span>
|
|
221
|
+
Show Charging/Docked on the Apple Home tile
|
|
222
|
+
<small
|
|
223
|
+
>Reports real Matter Charging and Docked states instead of Ready while
|
|
224
|
+
on the dock. Requires a recent iOS/tvOS; turn off and restart the
|
|
225
|
+
bridge if the tile misbehaves.</small
|
|
226
|
+
>
|
|
227
|
+
</span>
|
|
228
|
+
</label>
|
|
229
|
+
<label class="field">
|
|
230
|
+
<span>Charged Battery Threshold (%)</span>
|
|
231
|
+
<input
|
|
232
|
+
id="matter-charged-battery-threshold"
|
|
233
|
+
type="number"
|
|
234
|
+
min="1"
|
|
235
|
+
max="100"
|
|
236
|
+
step="1"
|
|
237
|
+
placeholder="100"
|
|
238
|
+
/>
|
|
239
|
+
<small
|
|
240
|
+
>The tile shows Charging while docked below this battery percentage, and
|
|
241
|
+
Docked at or above it. Lower it (e.g. 90) if a worn battery makes the
|
|
242
|
+
robot report fully charged early.</small
|
|
243
|
+
>
|
|
244
|
+
</label>
|
|
245
|
+
<p class="help matter-setup-note">
|
|
246
|
+
After saving and restarting the Roborock bridge, use the Matter Pairing
|
|
247
|
+
section below. Apple Home may need both the bridge QR code and the
|
|
248
|
+
vacuum's 11-digit setup code.
|
|
249
|
+
</p>
|
|
250
|
+
|
|
251
|
+
<div class="actions">
|
|
252
|
+
<button id="save-feature-settings" class="secondary">
|
|
253
|
+
Save Settings
|
|
254
|
+
</button>
|
|
255
|
+
</div>
|
|
256
|
+
</section>
|
|
257
|
+
|
|
167
258
|
<section class="panel">
|
|
168
259
|
<div class="section-header">
|
|
169
260
|
<div>
|
|
@@ -8,6 +8,21 @@ const elements = {
|
|
|
8
8
|
devicesEmpty: document.getElementById("devices-empty"),
|
|
9
9
|
refreshDevices: document.getElementById("refresh-devices"),
|
|
10
10
|
debugMode: document.getElementById("debug-mode"),
|
|
11
|
+
enableMatterServiceArea: document.getElementById(
|
|
12
|
+
"enable-matter-service-area"
|
|
13
|
+
),
|
|
14
|
+
enableLiveRoomTracking: document.getElementById("enable-live-room-tracking"),
|
|
15
|
+
enableMatterCleanMode: document.getElementById("enable-matter-clean-mode"),
|
|
16
|
+
enableFanPowerCleanModes: document.getElementById(
|
|
17
|
+
"enable-fan-power-clean-modes"
|
|
18
|
+
),
|
|
19
|
+
enableMatterPowerSource: document.getElementById(
|
|
20
|
+
"enable-matter-power-source"
|
|
21
|
+
),
|
|
22
|
+
enableMatterExtendedStates: document.getElementById(
|
|
23
|
+
"enable-matter-extended-states"
|
|
24
|
+
),
|
|
25
|
+
saveFeatureSettings: document.getElementById("save-feature-settings"),
|
|
11
26
|
enableMatterChargingDocked: document.getElementById(
|
|
12
27
|
"enable-matter-charging-docked"
|
|
13
28
|
),
|
|
@@ -124,6 +139,35 @@ async function loadConfig() {
|
|
|
124
139
|
elements.skipDevices.value = config.skipDevices;
|
|
125
140
|
}
|
|
126
141
|
elements.debugMode.checked = Boolean(config.debugMode);
|
|
142
|
+
// Apple Home feature toggles. Service Area, clean mode, power source and
|
|
143
|
+
// live room tracking default ON (config semantics: `!== false`);
|
|
144
|
+
// suction-level modes and extended states default OFF.
|
|
145
|
+
if (elements.enableMatterServiceArea) {
|
|
146
|
+
elements.enableMatterServiceArea.checked =
|
|
147
|
+
config.enableMatterServiceArea !== false;
|
|
148
|
+
}
|
|
149
|
+
if (elements.enableLiveRoomTracking) {
|
|
150
|
+
elements.enableLiveRoomTracking.checked =
|
|
151
|
+
config.enableLiveRoomTracking !== false;
|
|
152
|
+
}
|
|
153
|
+
if (elements.enableMatterCleanMode) {
|
|
154
|
+
elements.enableMatterCleanMode.checked =
|
|
155
|
+
config.enableMatterCleanMode !== false;
|
|
156
|
+
}
|
|
157
|
+
if (elements.enableFanPowerCleanModes) {
|
|
158
|
+
elements.enableFanPowerCleanModes.checked = Boolean(
|
|
159
|
+
config.enableFanPowerCleanModes
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
if (elements.enableMatterPowerSource) {
|
|
163
|
+
elements.enableMatterPowerSource.checked =
|
|
164
|
+
config.enableMatterPowerSource !== false;
|
|
165
|
+
}
|
|
166
|
+
if (elements.enableMatterExtendedStates) {
|
|
167
|
+
elements.enableMatterExtendedStates.checked = Boolean(
|
|
168
|
+
config.enableMatterExtendedOperationalStates
|
|
169
|
+
);
|
|
170
|
+
}
|
|
127
171
|
if (elements.enableMatterChargingDocked) {
|
|
128
172
|
elements.enableMatterChargingDocked.checked = Boolean(
|
|
129
173
|
config.enableMatterChargingDockedStates
|
|
@@ -213,6 +257,16 @@ function getFormValues() {
|
|
|
213
257
|
baseURL: getBaseUrl(),
|
|
214
258
|
skipDevices: getSkipDevices(),
|
|
215
259
|
debugMode: getDebugMode(),
|
|
260
|
+
enableMatterServiceArea: Boolean(elements.enableMatterServiceArea?.checked),
|
|
261
|
+
enableLiveRoomTracking: Boolean(elements.enableLiveRoomTracking?.checked),
|
|
262
|
+
enableMatterCleanMode: Boolean(elements.enableMatterCleanMode?.checked),
|
|
263
|
+
enableFanPowerCleanModes: Boolean(
|
|
264
|
+
elements.enableFanPowerCleanModes?.checked
|
|
265
|
+
),
|
|
266
|
+
enableMatterPowerSource: Boolean(elements.enableMatterPowerSource?.checked),
|
|
267
|
+
enableMatterExtendedOperationalStates: Boolean(
|
|
268
|
+
elements.enableMatterExtendedStates?.checked
|
|
269
|
+
),
|
|
216
270
|
enableMatterChargingDockedStates: Boolean(
|
|
217
271
|
elements.enableMatterChargingDocked?.checked
|
|
218
272
|
),
|
|
@@ -1207,6 +1261,11 @@ function init() {
|
|
|
1207
1261
|
showToast("error", "Failed to load current config.");
|
|
1208
1262
|
});
|
|
1209
1263
|
elements.saveSettings.addEventListener("click", () => saveCredentials(true));
|
|
1264
|
+
if (elements.saveFeatureSettings) {
|
|
1265
|
+
elements.saveFeatureSettings.addEventListener("click", () =>
|
|
1266
|
+
saveCredentials(true)
|
|
1267
|
+
);
|
|
1268
|
+
}
|
|
1210
1269
|
elements.login.addEventListener("click", login);
|
|
1211
1270
|
elements.send2fa.addEventListener("click", sendTwoFactorEmail);
|
|
1212
1271
|
elements.verify2fa.addEventListener("click", verifyTwoFactorCode);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-roborock-matter",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "Matter-only Homebridge plugin publishing Roborock robot vacuums (including 2025 B01/Q7-series) as native Matter accessories for Apple Home. Fork of homebridge-roborock-vacuum2.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|