@homebridge-plugins/homebridge-wemo 7.5.1 → 7.5.2

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
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to `@homebridge-plugins/homebridge-wemo` will be documented in this file.
4
4
 
5
+ ## v7.5.2 (2026-07-14)
6
+
7
+ ### Changed
8
+
9
+ - fix: never pass the hidden wemo link accessory to the homebridge cache so saving no longer fails
10
+
5
11
  ## v7.5.1 (2026-07-12)
6
12
 
7
13
  ### Changed
package/lib/platform.js CHANGED
@@ -415,8 +415,7 @@ export default class {
415
415
  }
416
416
 
417
417
  // Update the changes to the accessory to the platform
418
- this.api.updatePlatformAccessories([accessory])
419
- devicesInHB.set(accessory.UUID, accessory)
418
+ this.saveAccessoryUpdate(accessory)
420
419
  })
421
420
 
422
421
  // Set up the listener server for device notifications
@@ -971,8 +970,7 @@ export default class {
971
970
  )
972
971
 
973
972
  // Update any changes to the accessory to the platform
974
- this.api.updatePlatformAccessories([subAcc])
975
- devicesInHB.set(uuidSub, subAcc)
973
+ this.saveAccessoryUpdate(subAcc)
976
974
  } catch (err) {
977
975
  // Catch any errors during the process
978
976
  const eText = parseError(err)
@@ -1241,14 +1239,27 @@ export default class {
1241
1239
  }
1242
1240
 
1243
1241
  // Update any changes to the accessory to the platform
1244
- this.api.updatePlatformAccessories([accessory])
1245
- devicesInHB.set(uuid, accessory)
1242
+ this.saveAccessoryUpdate(accessory)
1246
1243
  } catch (err) {
1247
1244
  // Catch any errors during the process
1248
1245
  this.log.warn('[%s] %s %s.', device.friendlyName, platformLang.devNotInit, parseError(err))
1249
1246
  }
1250
1247
  }
1251
1248
 
1249
+ saveAccessoryUpdate(accessory) {
1250
+ // Persist any context/characteristic changes to Homebridge, then keep the
1251
+ // accessory in our in-memory map. Hidden accessories (the Wemo Link hub) are
1252
+ // deliberately never registered (see addAccessory), so they have no associated
1253
+ // plugin, and Homebridge 2 adds any accessory passed to
1254
+ // updatePlatformAccessories to its cached list, where every cache save then
1255
+ // fails to serialize it ('Cannot serialize accessory ...'). We still keep them
1256
+ // in devicesInHB so lookups continue to work.
1257
+ if (!accessory.context.hidden) {
1258
+ this.api.updatePlatformAccessories([accessory])
1259
+ }
1260
+ devicesInHB.set(accessory.UUID, accessory)
1261
+ }
1262
+
1252
1263
  addAccessory(device, isPri, hidden = false) {
1253
1264
  const accName = device.friendlyName || device.deviceId || device.serialNumber
1254
1265
  try {
@@ -1328,8 +1339,7 @@ export default class {
1328
1339
 
1329
1340
  // Remove the accessory from the pending connection list
1330
1341
  existSerialsToConnect = existSerialsToConnect.filter(el => el !== deviceData.serialNumber)
1331
- this.api.updatePlatformAccessories([accessory])
1332
- devicesInHB.set(accessory.UUID, accessory)
1342
+ this.saveAccessoryUpdate(accessory)
1333
1343
  }
1334
1344
 
1335
1345
  disableUPNP(accessory, err) {
@@ -1343,8 +1353,7 @@ export default class {
1343
1353
  existSerialsToConnect.push(accessory.context.serialNumber)
1344
1354
 
1345
1355
  // Update any changes to the accessory to the platform
1346
- this.api.updatePlatformAccessories([accessory])
1347
- devicesInHB.set(accessory.UUID, accessory)
1356
+ this.saveAccessoryUpdate(accessory)
1348
1357
 
1349
1358
  // Perform a http poll to see if the device is still reachable
1350
1359
  if (accessory.control?.requestDeviceUpdate) {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-wemo",
3
3
  "alias": "Wemo",
4
4
  "type": "module",
5
- "version": "7.5.1",
5
+ "version": "7.5.2",
6
6
  "description": "Homebridge plugin to integrate Wemo devices into HomeKit.",
7
7
  "author": {
8
8
  "name": "bwp91",