@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 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 when using a Raspberry Pi, and has not been tested on Windows. On macOS, the plugin resolves BLE devices via their advertised name (macOS does not expose bluetooth MAC addresses), and the `node` binary running Homebridge needs Bluetooth permission in System Settings → Privacy & Security → Bluetooth.
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
 
@@ -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
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-govee",
3
3
  "alias": "Govee",
4
4
  "type": "module",
5
- "version": "11.32.2-beta.32",
5
+ "version": "11.32.2-beta.33",
6
6
  "description": "Homebridge plugin to integrate Govee devices into HomeKit.",
7
7
  "author": {
8
8
  "name": "bwp91",