@homebridge-plugins/homebridge-wemo 7.5.1 → 7.5.3
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 +14 -0
- package/README.md +0 -2
- package/lib/platform.js +20 -11
- package/lib/utils/lang-en.js +0 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@homebridge-plugins/homebridge-wemo` will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## v7.5.3 (2026-07-18)
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- chore: remove the looking-for-maintainers message
|
|
10
|
+
- chore(github): update the setup-node action to v7
|
|
11
|
+
- chore(deps): dependency updates
|
|
12
|
+
|
|
13
|
+
## v7.5.2 (2026-07-14)
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- fix: never pass the hidden wemo link accessory to the homebridge cache so saving no longer fails
|
|
18
|
+
|
|
5
19
|
## v7.5.1 (2026-07-12)
|
|
6
20
|
|
|
7
21
|
### Changed
|
package/README.md
CHANGED
|
@@ -28,8 +28,6 @@ Homebridge plugin to integrate Wemo devices into HomeKit
|
|
|
28
28
|
> This means that the plugin should continue to work after the Wemo cloud service is discontinued.
|
|
29
29
|
> See [issue #203](https://github.com/homebridge-plugins/homebridge-wemo/issues/203) for more information.
|
|
30
30
|
|
|
31
|
-
> I'm looking for some lovely people to help maintain this plugin, please get in touch on GitHub or Discord if you'd like to help out 😄
|
|
32
|
-
|
|
33
31
|
### Prerequisites
|
|
34
32
|
|
|
35
33
|
- To use this plugin, you will need to already have:
|
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.
|
|
419
|
-
devicesInHB.set(accessory.UUID, accessory)
|
|
418
|
+
this.saveAccessoryUpdate(accessory)
|
|
420
419
|
})
|
|
421
420
|
|
|
422
421
|
// Set up the listener server for device notifications
|
|
@@ -466,7 +465,7 @@ export default class {
|
|
|
466
465
|
}
|
|
467
466
|
|
|
468
467
|
// Setup successful
|
|
469
|
-
this.log('%s.
|
|
468
|
+
this.log('%s.', platformLang.complete)
|
|
470
469
|
|
|
471
470
|
// Perform the first discovery run and set up the interval for subsequent runs
|
|
472
471
|
this.discoverDevices()
|
|
@@ -971,8 +970,7 @@ export default class {
|
|
|
971
970
|
)
|
|
972
971
|
|
|
973
972
|
// Update any changes to the accessory to the platform
|
|
974
|
-
this.
|
|
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.
|
|
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.
|
|
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.
|
|
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/lib/utils/lang-en.js
CHANGED
|
@@ -120,5 +120,4 @@ export default {
|
|
|
120
120
|
upnpFail: 'upnp error (will be re-attempted)',
|
|
121
121
|
upnpGood: 'upnp has been established',
|
|
122
122
|
viaAL: 'via adaptive lighting',
|
|
123
|
-
welcome: 'I\'m looking for some lovely people to help maintain this plugin, please get in touch on GitHub or Discord if you\'d like to help out 😄',
|
|
124
123
|
}
|
package/package.json
CHANGED