@homebridge-plugins/homebridge-govee 11.32.2-beta.32 → 11.32.2-beta.33
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 +2 -0
- package/README.md +1 -1
- package/lib/connection/ble.js +6 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -48,6 +48,8 @@ All notable changes to `@homebridge-plugins/homebridge-govee` will be documented
|
|
|
48
48
|
- feat: add ble encryption for the H3001 solar string lights, which silently ignore unencrypted frames (#1328) (@dominick-han)
|
|
49
49
|
- fix: mention an unrecognised bluetooth broadcast once, and only for one of your own sensors, since a scan also hears your lights and the neighbours
|
|
50
50
|
- fix: say "device(s)" in the connection summary, since the count is often one
|
|
51
|
+
- fix: stop the macOS bluetooth scan leaving its timer running once the device has been found
|
|
52
|
+
- docs: say that macOS bluetooth support is new and ask for reports, rather than stating it works
|
|
51
53
|
|
|
52
54
|
## v11.32.1 (2026-08-02)
|
|
53
55
|
|
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Homebridge plugin to integrate Govee devices into HomeKit
|
|
|
29
29
|
- To use this plugin, you will need to already have:
|
|
30
30
|
- [Node](https://nodejs.org): latest version of `v22`, `v24` or `v26` - any other major version is not supported.
|
|
31
31
|
- [Homebridge](https://homebridge.io): `v1.6` or above - refer to link for more information and installation instructions.
|
|
32
|
-
- For bluetooth connectivity, it may be necessary to install extra packages on your system, see [Bluetooth Control](https://github.com/homebridge-plugins/homebridge-govee/wiki/Bluetooth-Control). Bluetooth works best
|
|
32
|
+
- For bluetooth connectivity, it may be necessary to install extra packages on your system, see [Bluetooth Control](https://github.com/homebridge-plugins/homebridge-govee/wiki/Bluetooth-Control). Bluetooth works best on a Raspberry Pi, and has not been tested on Windows. macOS is newly supported from `v11.32.2` and has only been tried on a handful of devices so far - you will need to give the `node` binary running Homebridge permission under System Settings → Privacy & Security → Bluetooth, and please do report anything that does not work.
|
|
33
33
|
|
|
34
34
|
### Setup
|
|
35
35
|
|
package/lib/connection/ble.js
CHANGED
|
@@ -421,6 +421,7 @@ export default class BLEConnection {
|
|
|
421
421
|
}
|
|
422
422
|
const peripheral = await new Promise((resolve, reject) => {
|
|
423
423
|
let done = false
|
|
424
|
+
let scanTimeoutId
|
|
424
425
|
function onDiscover(p) {
|
|
425
426
|
const name = (p.advertisement?.localName ?? '').toLowerCase()
|
|
426
427
|
if (name.endsWith(suffix) && (name.startsWith('govee') || name.startsWith('ihoment'))) {
|
|
@@ -432,13 +433,17 @@ export default class BLEConnection {
|
|
|
432
433
|
return
|
|
433
434
|
}
|
|
434
435
|
done = true
|
|
436
|
+
// The device is usually found in well under a second, so without this
|
|
437
|
+
// the timer stays live for the rest of its window and holds the event
|
|
438
|
+
// loop open. The two timeouts above clear theirs the same way.
|
|
439
|
+
clearTimeout(scanTimeoutId)
|
|
435
440
|
btClient.removeListener('discover', onDiscover)
|
|
436
441
|
btClient.stopScanningAsync().catch(() => {})
|
|
437
442
|
fn(value)
|
|
438
443
|
}
|
|
439
444
|
btClient.on('discover', onDiscover)
|
|
440
445
|
btClient.startScanningAsync([], true).catch(err => finish(reject, err))
|
|
441
|
-
setTimeout(() => finish(reject, new Error(`no peripheral advertising name suffix ${suffix} found in scan`)), Math.max(timeout - 1000, 4000))
|
|
446
|
+
scanTimeoutId = setTimeout(() => finish(reject, new Error(`no peripheral advertising name suffix ${suffix} found in scan`)), Math.max(timeout - 1000, 4000))
|
|
442
447
|
})
|
|
443
448
|
this.darwinPeripheralCache.set(suffix, peripheral)
|
|
444
449
|
await peripheral.connectAsync()
|
package/package.json
CHANGED