homebridge-roborock-vacuum 2.0.0 → 2.0.1

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,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.1
4
+
5
+ Stability and security hardening release based on a full plugin vulnerability scan. No new features, no configuration changes — updating is strongly recommended, especially on low-power hosts (NAS, Raspberry Pi).
6
+
7
+ - **Fix (crash)**: An MQTT connection that failed to establish within 30 seconds crashed the whole Homebridge process (a timer called a method that does not exist); it now logs a warning and keeps retrying in the background
8
+ - **Fix (crash)**: Status updates no longer abort mid-processing while the vacuum is cleaning (calls to undefined map-updater functions were throwing on every `get_status` poll), so state and battery keep updating during a clean
9
+ - **Performance**: Startup no longer blocks the event loop with synchronous RSA-2048 key generation for every vacuum — the keypair (only used for photo requests) is now generated once, on demand, using fast native crypto. On NAS-class hardware this removes multi-second (up to minute-long) Homebridge freezes at startup
10
+ - **Performance**: Device data (HomeData) is parsed once and cached instead of being re-parsed on every request and every HomeKit read — significantly lower CPU and fewer "Not Responding" moments in the Home app with multiple devices
11
+ - **Performance**: Map payloads are decompressed asynchronously instead of blocking the message loop
12
+ - **Fix (memory)**: Polling timers now keep their real handles — they are properly stopped when a device goes offline or the service stops, and can no longer stack up duplicates (previously they could never be cleared and multiplied on every reconnect)
13
+ - **Fix (memory)**: The local TCP receive buffer is bounded (8 MB per frame / 16 MB total) and the connection resets on corrupt framing, instead of buffering bad data forever
14
+ - **Fix (leak)**: Local TCP reconnect timers are cancellable and stop on shutdown; photo transfer buffers no longer leak when a transfer is interrupted; the UDP discovery socket is created per discovery run; the cloud MQTT connection is closed on service stop
15
+ - **Fix**: TCP connection failures no longer mislabel every device as a remote (cloud-only) device
16
+ - **Fix**: Stale HomeKit scene switches are now actually removed when scenes are deleted
17
+ - **Fix**: The periodic MQTT reconnect now runs every 3 hours as documented (was every hour)
18
+ - **Security**: The persisted Roborock session file (`roborock.UserData`, contains the cloud token) is now written with owner-only permissions (0600)
19
+ - **Security/maintenance**: Removed 10 unused dependencies (`express`, `node-forge`, `abstract-things`, `tinkerhub-discovery`, `yargs`, `deep-equal`, `chalk`, `debug`, `semver`, `rxjs`) — smaller install and attack surface
20
+
3
21
  ## 2.0.0
4
22
 
5
23
  - **New Feature**: Matter protocol support (Beta)
@@ -15,29 +15,44 @@ class RoborockVacuumAccessory {
15
15
  const self = this;
16
16
  // Accessory Information
17
17
  // https://developers.homebridge.io/#/service/AccessoryInformation
18
- (_a = this.accessory.getService(this.platform.Service.AccessoryInformation)) === null || _a === void 0 ? void 0 : _a.setCharacteristic(this.platform.Characteristic.Manufacturer, 'Roborock').setCharacteristic(this.platform.Characteristic.Model, this.platform.roborockAPI.getProductAttribute(accessory.context, "model") || 'Unknown').setCharacteristic(this.platform.Characteristic.SerialNumber, this.platform.roborockAPI.getVacuumDeviceInfo(accessory.context, "sn") || 'Unknown').setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.platform.roborockAPI.getVacuumDeviceInfo(accessory.context, "fv") || 'Unknown');
19
- this.services['Fan'] = this.accessory.getService(this.platform.Service.Fanv2)
20
- || this.accessory.addService(this.platform.Service.Fanv2);
18
+ (_a = this.accessory
19
+ .getService(this.platform.Service.AccessoryInformation)) === null || _a === void 0 ? void 0 : _a.setCharacteristic(this.platform.Characteristic.Manufacturer, "Roborock").setCharacteristic(this.platform.Characteristic.Model, this.platform.roborockAPI.getProductAttribute(accessory.context, "model") || "Unknown").setCharacteristic(this.platform.Characteristic.SerialNumber, this.platform.roborockAPI.getVacuumDeviceInfo(accessory.context, "sn") || "Unknown").setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.platform.roborockAPI.getVacuumDeviceInfo(accessory.context, "fv") || "Unknown");
20
+ this.services["Fan"] =
21
+ this.accessory.getService(this.platform.Service.Fanv2) ||
22
+ this.accessory.addService(this.platform.Service.Fanv2);
21
23
  // This is what is displayed as the default name on the Home app
22
- this.services['Fan'].setCharacteristic(this.platform.Characteristic.Name, this.platform.roborockAPI.getVacuumDeviceInfo(accessory.context, "name") || 'Roborock Vacuum');
23
- this.services['Fan'].getCharacteristic(this.platform.Characteristic.Active)
24
+ this.services["Fan"].setCharacteristic(this.platform.Characteristic.Name, this.platform.roborockAPI.getVacuumDeviceInfo(accessory.context, "name") || "Roborock Vacuum");
25
+ this.services["Fan"]
26
+ .getCharacteristic(this.platform.Characteristic.Active)
24
27
  .onSet(this.setActive.bind(this))
25
28
  .onGet(this.getActive.bind(this));
26
- this.services['Battery'] = this.accessory.getService(this.platform.Service.Battery)
27
- || this.accessory.addService(this.platform.Service.Battery);
28
- this.services['Battery'].setCharacteristic(this.platform.Characteristic.BatteryLevel, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "battery") || 0);
29
- this.services['Battery'].setCharacteristic(this.platform.Characteristic.StatusLowBattery, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "battery") < 20 ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
30
- this.services['Battery'].setCharacteristic(this.platform.Characteristic.ChargingState, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "charge_status") == 1 ? this.platform.Characteristic.ChargingState.CHARGING : this.platform.Characteristic.ChargingState.NOT_CHARGING);
29
+ this.services["Battery"] =
30
+ this.accessory.getService(this.platform.Service.Battery) ||
31
+ this.accessory.addService(this.platform.Service.Battery);
32
+ this.services["Battery"].setCharacteristic(this.platform.Characteristic.BatteryLevel, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "battery") || 0);
33
+ this.services["Battery"].setCharacteristic(this.platform.Characteristic.StatusLowBattery, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "battery") < 20
34
+ ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
35
+ : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
36
+ this.services["Battery"].setCharacteristic(this.platform.Characteristic.ChargingState, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "charge_status") == 1
37
+ ? this.platform.Characteristic.ChargingState.CHARGING
38
+ : this.platform.Characteristic.ChargingState.NOT_CHARGING);
31
39
  // Initialize scene switches
32
40
  this.updateSceneSwitches();
33
41
  }
34
42
  updateDeviceState() {
35
43
  try {
36
- this.services['Fan'].updateCharacteristic(this.platform.Characteristic.Active, this.platform.roborockAPI.isCleaning(this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "state")) ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
37
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "battery") || 0);
38
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.StatusLowBattery, this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "battery") < 20 ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
39
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.ChargingState, this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "charge_status") != 0 ? this.platform.Characteristic.ChargingState.CHARGING : this.platform.Characteristic.ChargingState.NOT_CHARGING);
40
- this.platform.log.debug("Device state is " + this.state_code_to_state(this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "state")));
44
+ this.services["Fan"].updateCharacteristic(this.platform.Characteristic.Active, this.platform.roborockAPI.isCleaning(this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "state"))
45
+ ? this.platform.Characteristic.Active.ACTIVE
46
+ : this.platform.Characteristic.Active.INACTIVE);
47
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "battery") || 0);
48
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.StatusLowBattery, this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "battery") < 20
49
+ ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
50
+ : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
51
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.ChargingState, this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "charge_status") != 0
52
+ ? this.platform.Characteristic.ChargingState.CHARGING
53
+ : this.platform.Characteristic.ChargingState.NOT_CHARGING);
54
+ this.platform.log.debug("Device state is " +
55
+ this.state_code_to_state(this.platform.roborockAPI.getVacuumDeviceStatus(this.accessory.context, "state")));
41
56
  }
42
57
  catch (e) {
43
58
  this.platform.log.error("Error updating device state: " + e);
@@ -59,14 +74,15 @@ class RoborockVacuumAccessory {
59
74
  try {
60
75
  const sceneId = scene.id.toString();
61
76
  const sceneName = scene.name.replaceAll(" ", "_");
62
- ;
63
77
  if (!this.sceneServices.has(sceneId) && scene.enabled) {
64
78
  this.platform.log.debug(`Adding scene switch for: ${scene.name} (ID: ${sceneId})`);
65
- const switchService = this.accessory.getServiceById(this.platform.Service.Switch, `scene-${sceneId}`) || this.accessory.addService(this.platform.Service.Switch, sceneName, `scene-${sceneId}`);
79
+ const switchService = this.accessory.getServiceById(this.platform.Service.Switch, `scene-${sceneId}`) ||
80
+ this.accessory.addService(this.platform.Service.Switch, sceneName, `scene-${sceneId}`);
66
81
  switchService.setCharacteristic(this.platform.Characteristic.Name, sceneName);
67
82
  switchService.addOptionalCharacteristic(this.platform.Characteristic.ConfiguredName);
68
83
  switchService.setCharacteristic(this.platform.Characteristic.ConfiguredName, sceneName);
69
- switchService.getCharacteristic(this.platform.Characteristic.On)
84
+ switchService
85
+ .getCharacteristic(this.platform.Characteristic.On)
70
86
  .onSet(this.setSceneSwitch.bind(this, sceneId))
71
87
  .onGet(this.getSceneSwitch.bind(this, sceneId));
72
88
  this.sceneServices.set(sceneId, switchService);
@@ -78,10 +94,12 @@ class RoborockVacuumAccessory {
78
94
  }
79
95
  //Remove scene switches that are no longer available
80
96
  this.accessory.services.forEach((service) => {
81
- if (service instanceof this.platform.Service.Switch && service.UUID.startsWith('scene-')) {
82
- const sceneId = service.UUID.replace('scene-', '');
97
+ var _a;
98
+ if (service instanceof this.platform.Service.Switch &&
99
+ ((_a = service.subtype) === null || _a === void 0 ? void 0 : _a.startsWith("scene-"))) {
100
+ const sceneId = service.subtype.replace("scene-", "");
83
101
  // Check if the scene id in deviceScenes
84
- if (!deviceScenes.some(scene => scene.id.toString() === sceneId)) {
102
+ if (!deviceScenes.some((scene) => scene.id.toString() === sceneId)) {
85
103
  this.platform.log.debug(`Removing scene switch for: ${service.displayName} (ID: ${sceneId})`);
86
104
  this.accessory.removeService(service);
87
105
  this.sceneServices.delete(sceneId);
@@ -103,8 +121,8 @@ class RoborockVacuumAccessory {
103
121
  if (this.currentScenes.length !== newScenes.length) {
104
122
  return true;
105
123
  }
106
- const currentIds = this.currentScenes.map(scene => scene.id).sort();
107
- const newIds = newScenes.map(scene => scene.id).sort();
124
+ const currentIds = this.currentScenes.map((scene) => scene.id).sort();
125
+ const newIds = newScenes.map((scene) => scene.id).sort();
108
126
  return JSON.stringify(currentIds) !== JSON.stringify(newIds);
109
127
  }
110
128
  /**
@@ -143,35 +161,50 @@ class RoborockVacuumAccessory {
143
161
  }
144
162
  notifyDeviceUpdater(id, data) {
145
163
  try {
146
- if (id == 'CloudMessage' || id == 'LocalMessage') {
164
+ if (id == "CloudMessage" || id == "LocalMessage") {
147
165
  this.platform.log.debug(`Updating accessory with ${id} data: ` + JSON.stringify(data));
148
166
  if (data.length > 0) {
149
167
  const messages = data[0];
150
- if (messages.hasOwnProperty('state')) {
151
- this.services['Fan'].updateCharacteristic(this.platform.Characteristic.Active, this.isCleaningState(messages.state) ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
168
+ if (messages.hasOwnProperty("state")) {
169
+ this.services["Fan"].updateCharacteristic(this.platform.Characteristic.Active, this.isCleaningState(messages.state)
170
+ ? this.platform.Characteristic.Active.ACTIVE
171
+ : this.platform.Characteristic.Active.INACTIVE);
152
172
  }
153
- if (messages.hasOwnProperty('battery')) {
154
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.BatteryLevel, messages.battery);
155
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.StatusLowBattery, messages.battery < 20 ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
173
+ if (messages.hasOwnProperty("battery")) {
174
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.BatteryLevel, messages.battery);
175
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.StatusLowBattery, messages.battery < 20
176
+ ? this.platform.Characteristic.StatusLowBattery
177
+ .BATTERY_LEVEL_LOW
178
+ : this.platform.Characteristic.StatusLowBattery
179
+ .BATTERY_LEVEL_NORMAL);
156
180
  }
157
- if (messages.hasOwnProperty('charge_status')) {
158
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.ChargingState, messages.charge_status != 0 ? this.platform.Characteristic.ChargingState.CHARGING : this.platform.Characteristic.ChargingState.NOT_CHARGING);
181
+ if (messages.hasOwnProperty("charge_status")) {
182
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.ChargingState, messages.charge_status != 0
183
+ ? this.platform.Characteristic.ChargingState.CHARGING
184
+ : this.platform.Characteristic.ChargingState.NOT_CHARGING);
159
185
  }
160
- if (messages.hasOwnProperty('in_cleaning')) {
161
- this.services['Fan'].updateCharacteristic(this.platform.Characteristic.Active, messages.in_cleaning != 0 ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
186
+ if (messages.hasOwnProperty("in_cleaning")) {
187
+ this.services["Fan"].updateCharacteristic(this.platform.Characteristic.Active, messages.in_cleaning != 0
188
+ ? this.platform.Characteristic.Active.ACTIVE
189
+ : this.platform.Characteristic.Active.INACTIVE);
162
190
  }
163
191
  }
164
- if (data.hasOwnProperty('dps') && data.dps.hasOwnProperty('121')) {
165
- this.platform.log.debug(`${this.platform.roborockAPI.getVacuumDeviceInfo(this.accessory.context, "name")} state update to: ${this.state_code_to_state(data.dps['121'])}`);
166
- this.services['Fan'].updateCharacteristic(this.platform.Characteristic.Active, this.isCleaningState(data.dps['121']) ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
192
+ if (data.hasOwnProperty("dps") && data.dps.hasOwnProperty("121")) {
193
+ this.platform.log.debug(`${this.platform.roborockAPI.getVacuumDeviceInfo(this.accessory.context, "name")} state update to: ${this.state_code_to_state(data.dps["121"])}`);
194
+ this.services["Fan"].updateCharacteristic(this.platform.Characteristic.Active, this.isCleaningState(data.dps["121"])
195
+ ? this.platform.Characteristic.Active.ACTIVE
196
+ : this.platform.Characteristic.Active.INACTIVE);
167
197
  }
168
- if (data.hasOwnProperty('dps') && data.dps.hasOwnProperty('122')) {
169
- this.platform.log.debug(`${this.platform.roborockAPI.getVacuumDeviceInfo(this.accessory.context, "name")} battery update to: ${data.dps['122']}`);
170
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.BatteryLevel, data.dps['122']);
171
- this.services['Battery'].updateCharacteristic(this.platform.Characteristic.StatusLowBattery, data.dps['122'] < 20 ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
198
+ if (data.hasOwnProperty("dps") && data.dps.hasOwnProperty("122")) {
199
+ this.platform.log.debug(`${this.platform.roborockAPI.getVacuumDeviceInfo(this.accessory.context, "name")} battery update to: ${data.dps["122"]}`);
200
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.BatteryLevel, data.dps["122"]);
201
+ this.services["Battery"].updateCharacteristic(this.platform.Characteristic.StatusLowBattery, data.dps["122"] < 20
202
+ ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
203
+ : this.platform.Characteristic.StatusLowBattery
204
+ .BATTERY_LEVEL_NORMAL);
172
205
  }
173
206
  }
174
- else if (id == 'HomeData') {
207
+ else if (id == "HomeData") {
175
208
  this.updateDeviceState();
176
209
  // Update scene switches when home data changes
177
210
  this.updateSceneSwitches();
@@ -191,7 +224,7 @@ class RoborockVacuumAccessory {
191
224
  await this.platform.roborockAPI.app_stop(this.accessory.context);
192
225
  await this.platform.roborockAPI.app_charge(this.accessory.context);
193
226
  }
194
- this.services['Fan'].updateCharacteristic(this.platform.Characteristic.Active, value);
227
+ this.services["Fan"].updateCharacteristic(this.platform.Characteristic.Active, value);
195
228
  }
196
229
  catch (e) {
197
230
  this.platform.log.error("Error setting active: " + e);
@@ -199,7 +232,9 @@ class RoborockVacuumAccessory {
199
232
  }
200
233
  async getActive() {
201
234
  this.updateDeviceState();
202
- return this.isCleaning() ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE;
235
+ return this.isCleaning()
236
+ ? this.platform.Characteristic.Active.ACTIVE
237
+ : this.platform.Characteristic.Active.INACTIVE;
203
238
  }
204
239
  state_code_to_state(code) {
205
240
  const RoborockStateCodes = {
@@ -1 +1 @@
1
- {"version":3,"file":"vacuum_accessory.js","sourceRoot":"","sources":["../src/vacuum_accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vacuum_accessory.js","sourceRoot":"","sources":["../src/vacuum_accessory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-roborock-vacuum",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Roborock Vacuum Cleaner - plugin for Homebridge.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -46,22 +46,12 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@homebridge/plugin-ui-utils": "^2.1.2",
49
- "abstract-things": "0.9.0",
50
49
  "axios": "^1.13.4",
51
50
  "binary-parser": "^2.3.0",
52
- "chalk": "4.1.2",
53
51
  "crc-32": "^1.2.2",
54
- "debug": "4.3.5",
55
- "deep-equal": "2.2.3",
56
- "express": "^4.22.1",
57
52
  "jszip": "^3.10.1",
58
53
  "mqtt": "^5.15.0",
59
- "node-forge": "^1.3.3",
60
- "qrcode": "^1.5.4",
61
- "rxjs": "^7.8.2",
62
- "semver": "7.6.2",
63
- "tinkerhub-discovery": "0.3.1",
64
- "yargs": "15.4.1"
54
+ "qrcode": "^1.5.4"
65
55
  },
66
56
  "devDependencies": {
67
57
  "@babel/core": "7.24.8",