OpenWonderLabs / homebridge-switchbot

The Homebridge SwitchBot plugin allows you to access your SwitchBot Device(s) from HomeKit. Homebridge.
https://openwonderlabs.github.io/homebridge-switchbot/
ISC License
244 stars 53 forks source link

Bug: Update to 2.5.3 fails due to missing file (404) #713

Closed pmcdowall closed 1 year ago

pmcdowall commented 1 year ago

Describe the Bug

The update cannot be completed due to a 404 error on a file called during the update. Subsequent update steps fail due to the missing file.

To Reproduce

Update to 2.5.3 using Homebridge (may be specific to my install/hardware)

Expected Behavior

Update completes successfully.

Relevant Log Output

./@switchbot/homebridge-switchbot/node_modules/@abandonware/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/LICENSE
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/index.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/native.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/unsupported.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/usb.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/src/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/src/BluetoothHciSocket.cpp
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/src/BluetoothHciSocket.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/README.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/binding.gyp
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/package-lock.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/examples/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/examples/le-connection-test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/examples/le-scan-test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/examples/list-devices-test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/examples/le-advertisement-test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/examples/mgmt-test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/package.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/workflows/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/workflows/nodepackage.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/workflows/fediverse-action.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/workflows/node.js.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/workflows/npm-publish.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/.github/FUNDING.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/appveyor.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/LICENSE
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/src/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/src/common.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/src/index.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/src/browser.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/src/node.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/README.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/debug/package.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/ms/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/ms/index.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/ms/license.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/ms/package.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/ms/readme.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/LICENSE
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/index.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/MAINTAINERS.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/codecov.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.nycrc.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/hci.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/hci-status.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/gatt.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/signaling.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/gap.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/crypto.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/smp.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/hci-socket/acl-stream.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/services.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/service.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/descriptors.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/resolve-bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/peripheral.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/noble.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/webbluetooth/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/webbluetooth/bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/websocket/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/websocket/bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/descriptor.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/characteristic.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/characteristics.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/winrt_guid.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/napi_winrt.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/radio_watcher.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/callbacks.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/peripheral_winrt.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/ble_manager.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/noble_winrt.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/napi_winrt.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/noble_winrt.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/notify_map.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/winrt_cpp.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/callbacks.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/notify_map.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/winrt_guid.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/winrt_cpp.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/peripheral.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/ble_manager.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/radio_watcher.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/src/peripheral_winrt.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/win/binding.gyp
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/distributed/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/distributed/bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/callbacks.cc
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/ble_manager.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/noble_mac.mm
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/ble_manager.mm
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/objc_cpp.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/callbacks.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/peripheral.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/objc_cpp.mm
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/noble_mac.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/napi_objc.mm
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/src/napi_objc.h
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/mac/binding.gyp
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/lib/resolve-bindings-web.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/mocha.setup.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/acl-stream.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/smp.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/gatt.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/hci.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/crypto.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/bindings.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/signaling.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/hci-socket/gap.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/resolve-bindings.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/webbluetooth/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/webbluetooth/bindings.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/peripheral.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/characteristic.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/websocket/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/websocket/bindings.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/service.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/descriptor.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/distributed/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/lib/distributed/bindings.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test/noble.test.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.editorconfig
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/ws-slave.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/README.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/binding.gyp
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/package-lock.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/test.custom.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/enter-exit.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/cache-gatt-discovery.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/pizza/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/pizza/pizza.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/pizza/README.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/pizza/central.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/peripheral-explorer.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/peripheral-explorer-async.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/cache-gatt-reconnect.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/advertisement-discovery.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/ext-advertisement-discovery.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/examples/echo.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/package.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/workflows/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/workflows/prebuild.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/workflows/nodepackage.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/workflows/fediverse-action.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/workflows/npm-publish.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.github/FUNDING.yml
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/.eslintrc.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/with-custom-binding.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/assets/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/assets/noble-logo.svg
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/assets/noble-logo.png
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/with-bindings.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/LICENSE
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/src/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/src/common.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/src/index.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/src/browser.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/src/node.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/README.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/debug/package.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/ms/
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/ms/index.js
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/ms/license.md
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/ms/package.json
./@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/node_modules/ms/readme.md
./@switchbot/homebridge-switchbot/node_modules/number-allocator/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/LICENSE
./@switchbot/homebridge-switchbot/node_modules/number-allocator/index.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/lib/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/lib/number-allocator.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/test/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/test/typescript/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/test/typescript/tsconfig.json
./@switchbot/homebridge-switchbot/node_modules/number-allocator/test/typescript/test.ts
./@switchbot/homebridge-switchbot/node_modules/number-allocator/test/test.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/types/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/types/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/number-allocator/types/lib/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/types/lib/number-allocator.d.ts
./@switchbot/homebridge-switchbot/node_modules/number-allocator/README.md
./@switchbot/homebridge-switchbot/node_modules/number-allocator/package.json
./@switchbot/homebridge-switchbot/node_modules/number-allocator/.github/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/.github/workflows/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/.github/workflows/nodejs.yml
./@switchbot/homebridge-switchbot/node_modules/number-allocator/karma.conf.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/LICENSE
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/src/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/src/common.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/src/index.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/src/browser.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/src/node.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/README.md
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/debug/package.json
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/ms/
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/ms/index.js
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/ms/license.md
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/ms/package.json
./@switchbot/homebridge-switchbot/node_modules/number-allocator/node_modules/ms/readme.md
./@switchbot/homebridge-switchbot/node_modules/jws/
./@switchbot/homebridge-switchbot/node_modules/jws/LICENSE
./@switchbot/homebridge-switchbot/node_modules/jws/index.js
./@switchbot/homebridge-switchbot/node_modules/jws/lib/
./@switchbot/homebridge-switchbot/node_modules/jws/lib/tostring.js
./@switchbot/homebridge-switchbot/node_modules/jws/lib/sign-stream.js
./@switchbot/homebridge-switchbot/node_modules/jws/lib/verify-stream.js
./@switchbot/homebridge-switchbot/node_modules/jws/lib/data-stream.js
./@switchbot/homebridge-switchbot/node_modules/jws/package.json
./@switchbot/homebridge-switchbot/node_modules/jws/readme.md
./@switchbot/homebridge-switchbot/node_modules/jws/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/json-bigint/
./@switchbot/homebridge-switchbot/node_modules/json-bigint/LICENSE
./@switchbot/homebridge-switchbot/node_modules/json-bigint/index.js
./@switchbot/homebridge-switchbot/node_modules/json-bigint/lib/
./@switchbot/homebridge-switchbot/node_modules/json-bigint/lib/stringify.js
./@switchbot/homebridge-switchbot/node_modules/json-bigint/lib/parse.js
./@switchbot/homebridge-switchbot/node_modules/json-bigint/README.md
./@switchbot/homebridge-switchbot/node_modules/json-bigint/package.json
./@switchbot/homebridge-switchbot/node_modules/duplexify/
./@switchbot/homebridge-switchbot/node_modules/duplexify/LICENSE
./@switchbot/homebridge-switchbot/node_modules/duplexify/index.js
./@switchbot/homebridge-switchbot/node_modules/duplexify/test.js
./@switchbot/homebridge-switchbot/node_modules/duplexify/.travis.yml
./@switchbot/homebridge-switchbot/node_modules/duplexify/README.md
./@switchbot/homebridge-switchbot/node_modules/duplexify/example.js
./@switchbot/homebridge-switchbot/node_modules/duplexify/package.json
./@switchbot/homebridge-switchbot/node_modules/ieee754/
./@switchbot/homebridge-switchbot/node_modules/ieee754/LICENSE
./@switchbot/homebridge-switchbot/node_modules/ieee754/index.js
./@switchbot/homebridge-switchbot/node_modules/ieee754/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/ieee754/README.md
./@switchbot/homebridge-switchbot/node_modules/ieee754/package.json
./@switchbot/homebridge-switchbot/node_modules/safe-buffer/
./@switchbot/homebridge-switchbot/node_modules/safe-buffer/LICENSE
./@switchbot/homebridge-switchbot/node_modules/safe-buffer/index.js
./@switchbot/homebridge-switchbot/node_modules/safe-buffer/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/safe-buffer/README.md
./@switchbot/homebridge-switchbot/node_modules/safe-buffer/package.json
./@switchbot/homebridge-switchbot/node_modules/object-assign/
./@switchbot/homebridge-switchbot/node_modules/object-assign/index.js
./@switchbot/homebridge-switchbot/node_modules/object-assign/package.json
./@switchbot/homebridge-switchbot/node_modules/object-assign/readme.md
./@switchbot/homebridge-switchbot/node_modules/object-assign/license
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/text.js
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/index.js
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/es2015/
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/es2015/text.js
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/es2015/index.js
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/README.md
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/package.json
./@switchbot/homebridge-switchbot/node_modules/emoji-regex/LICENSE-MIT.txt
./@switchbot/homebridge-switchbot/node_modules/inflight/
./@switchbot/homebridge-switchbot/node_modules/inflight/LICENSE
./@switchbot/homebridge-switchbot/node_modules/inflight/inflight.js
./@switchbot/homebridge-switchbot/node_modules/inflight/README.md
./@switchbot/homebridge-switchbot/node_modules/inflight/package.json
./@switchbot/homebridge-switchbot/node_modules/tar/
./@switchbot/homebridge-switchbot/node_modules/tar/LICENSE
./@switchbot/homebridge-switchbot/node_modules/tar/index.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/
./@switchbot/homebridge-switchbot/node_modules/tar/lib/get-write-flag.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/replace.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/high-level-opt.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/create.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/unpack.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/warn-mixin.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/list.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/strip-trailing-slashes.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/pack.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/header.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/normalize-unicode.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/mode-fix.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/large-numbers.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/mkdir.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/extract.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/strip-absolute-path.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/winchars.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/parse.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/write-entry.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/path-reservations.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/pax.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/normalize-windows-path.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/types.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/read-entry.js
./@switchbot/homebridge-switchbot/node_modules/tar/lib/update.js
./@switchbot/homebridge-switchbot/node_modules/tar/README.md
./@switchbot/homebridge-switchbot/node_modules/tar/package.json
./@switchbot/homebridge-switchbot/node_modules/node-forge/
./@switchbot/homebridge-switchbot/node_modules/node-forge/LICENSE
./@switchbot/homebridge-switchbot/node_modules/node-forge/flash/
./@switchbot/homebridge-switchbot/node_modules/node-forge/flash/README.md
./@switchbot/homebridge-switchbot/node_modules/node-forge/flash/package.json
./@switchbot/homebridge-switchbot/node_modules/node-forge/flash/swf/
./@switchbot/homebridge-switchbot/node_modules/node-forge/flash/swf/SocketPool.swf
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/prime.worker.min.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/forge.min.js.map
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/prime.worker.min.js.map
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/forge.all.min.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/forge.all.min.js.map
./@switchbot/homebridge-switchbot/node_modules/node-forge/dist/forge.min.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/md5.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/rc2.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/oids.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pkcs1.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/random.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/index.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/sha512.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/x509.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pki.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pkcs12.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/tlssocket.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/cipher.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/rsa.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pkcs7asn1.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/aes.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/cipherModes.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/md.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/hmac.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/index.all.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/aesCipherSuites.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/http.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/md.all.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/kem.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/mgf.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pem.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/xhr.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/socket.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/jsbn.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/prime.worker.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/asn1-validator.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/sha256.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/tls.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/asn1.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/ssh.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/util.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pbe.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/ed25519.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/prng.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pkcs7.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/sha1.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/mgf1.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/baseN.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/forge.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/des.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/log.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/prime.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pbkdf2.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/form.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/lib/pss.js
./@switchbot/homebridge-switchbot/node_modules/node-forge/README.md
./@switchbot/homebridge-switchbot/node_modules/node-forge/package.json
./@switchbot/homebridge-switchbot/node_modules/node-forge/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/ansi-regex/
./@switchbot/homebridge-switchbot/node_modules/ansi-regex/index.js
./@switchbot/homebridge-switchbot/node_modules/ansi-regex/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/ansi-regex/package.json
./@switchbot/homebridge-switchbot/node_modules/ansi-regex/readme.md
./@switchbot/homebridge-switchbot/node_modules/ansi-regex/license
./@switchbot/homebridge-switchbot/node_modules/xtend/
./@switchbot/homebridge-switchbot/node_modules/xtend/LICENSE
./@switchbot/homebridge-switchbot/node_modules/xtend/immutable.js
./@switchbot/homebridge-switchbot/node_modules/xtend/test.js
./@switchbot/homebridge-switchbot/node_modules/xtend/README.md
./@switchbot/homebridge-switchbot/node_modules/xtend/package.json
./@switchbot/homebridge-switchbot/node_modules/xtend/.jshintrc
./@switchbot/homebridge-switchbot/node_modules/xtend/mutable.js
./@switchbot/homebridge-switchbot/node_modules/ws/
./@switchbot/homebridge-switchbot/node_modules/ws/LICENSE
./@switchbot/homebridge-switchbot/node_modules/ws/index.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/
./@switchbot/homebridge-switchbot/node_modules/ws/lib/event-target.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/sender.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/validation.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/receiver.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/limiter.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/websocket-server.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/buffer-util.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/permessage-deflate.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/stream.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/constants.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/extension.js
./@switchbot/homebridge-switchbot/node_modules/ws/lib/websocket.js
./@switchbot/homebridge-switchbot/node_modules/ws/README.md
./@switchbot/homebridge-switchbot/node_modules/ws/package.json
./@switchbot/homebridge-switchbot/node_modules/ws/browser.js
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/LICENSE
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/index.js
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/README.md
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/package.json
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/minipass/
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/minipass/LICENSE
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/minipass/index.js
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/minipass/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/minipass/README.md
./@switchbot/homebridge-switchbot/node_modules/fs-minipass/node_modules/minipass/package.json
./@switchbot/homebridge-switchbot/node_modules/gauge/
./@switchbot/homebridge-switchbot/node_modules/gauge/error.js
./@switchbot/homebridge-switchbot/node_modules/gauge/LICENSE
./@switchbot/homebridge-switchbot/node_modules/gauge/process.js
./@switchbot/homebridge-switchbot/node_modules/gauge/index.js
./@switchbot/homebridge-switchbot/node_modules/gauge/has-color.js
./@switchbot/homebridge-switchbot/node_modules/gauge/set-interval.js
./@switchbot/homebridge-switchbot/node_modules/gauge/spin.js
./@switchbot/homebridge-switchbot/node_modules/gauge/wide-truncate.js
./@switchbot/homebridge-switchbot/node_modules/gauge/base-theme.js
./@switchbot/homebridge-switchbot/node_modules/gauge/README.md
./@switchbot/homebridge-switchbot/node_modules/gauge/set-immediate.js
./@switchbot/homebridge-switchbot/node_modules/gauge/package.json
./@switchbot/homebridge-switchbot/node_modules/gauge/themes.js
./@switchbot/homebridge-switchbot/node_modules/gauge/render-template.js
./@switchbot/homebridge-switchbot/node_modules/gauge/theme-set.js
./@switchbot/homebridge-switchbot/node_modules/gauge/plumbing.js
./@switchbot/homebridge-switchbot/node_modules/gauge/progress-bar.js
./@switchbot/homebridge-switchbot/node_modules/gauge/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/gauge/template-item.js
./@switchbot/homebridge-switchbot/node_modules/function-bind/
./@switchbot/homebridge-switchbot/node_modules/function-bind/LICENSE
./@switchbot/homebridge-switchbot/node_modules/function-bind/index.js
./@switchbot/homebridge-switchbot/node_modules/function-bind/.eslintrc
./@switchbot/homebridge-switchbot/node_modules/function-bind/.npmignore
./@switchbot/homebridge-switchbot/node_modules/function-bind/.travis.yml
./@switchbot/homebridge-switchbot/node_modules/function-bind/test/
./@switchbot/homebridge-switchbot/node_modules/function-bind/test/index.js
./@switchbot/homebridge-switchbot/node_modules/function-bind/test/.eslintrc
./@switchbot/homebridge-switchbot/node_modules/function-bind/.editorconfig
./@switchbot/homebridge-switchbot/node_modules/function-bind/.jscs.json
./@switchbot/homebridge-switchbot/node_modules/function-bind/README.md
./@switchbot/homebridge-switchbot/node_modules/function-bind/package.json
./@switchbot/homebridge-switchbot/node_modules/function-bind/implementation.js
./@switchbot/homebridge-switchbot/node_modules/.bin/
./@switchbot/homebridge-switchbot/node_modules/.bin/semver
./@switchbot/homebridge-switchbot/node_modules/.bin/rimraf
./@switchbot/homebridge-switchbot/node_modules/.bin/mqtt_sub
./@switchbot/homebridge-switchbot/node_modules/.bin/color-support
./@switchbot/homebridge-switchbot/node_modules/.bin/uuid
./@switchbot/homebridge-switchbot/node_modules/.bin/mqtt_pub
./@switchbot/homebridge-switchbot/node_modules/.bin/nopt
./@switchbot/homebridge-switchbot/node_modules/.bin/mkdirp
./@switchbot/homebridge-switchbot/node_modules/.bin/node-gyp-build
./@switchbot/homebridge-switchbot/node_modules/.bin/gp12-pem
./@switchbot/homebridge-switchbot/node_modules/.bin/node-gyp-build-optional
./@switchbot/homebridge-switchbot/node_modules/.bin/node-pre-gyp
./@switchbot/homebridge-switchbot/node_modules/.bin/mqtt
./@switchbot/homebridge-switchbot/node_modules/.bin/node-gyp-build-test
./@switchbot/homebridge-switchbot/node_modules/mqtt/
./@switchbot/homebridge-switchbot/node_modules/mqtt/mqtt.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/bin/
./@switchbot/homebridge-switchbot/node_modules/mqtt/bin/mqtt.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/bin/pub.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/bin/sub.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/dist/
./@switchbot/homebridge-switchbot/node_modules/mqtt/dist/mqtt.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/dist/mqtt.min.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/unique-message-id-provider.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/topic-alias-recv.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/topic-alias-send.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/client.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/store.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/validations.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/index.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/tls.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/wx.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/tcp.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/ali.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/connect/ws.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/lib/default-message-id-provider.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/CONTRIBUTING.md
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/store.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/client.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/client-options.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/message-id-provider.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/unique-message-id-provider.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/store-options.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/default-message-id-provider.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/connect/
./@switchbot/homebridge-switchbot/node_modules/mqtt/types/lib/connect/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/mqtt/README.md
./@switchbot/homebridge-switchbot/node_modules/mqtt/package.json
./@switchbot/homebridge-switchbot/node_modules/mqtt/doc/
./@switchbot/homebridge-switchbot/node_modules/mqtt/doc/publish.txt
./@switchbot/homebridge-switchbot/node_modules/mqtt/doc/help.txt
./@switchbot/homebridge-switchbot/node_modules/mqtt/doc/subscribe.txt
./@switchbot/homebridge-switchbot/node_modules/mqtt/LICENSE.md
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/LICENSE
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/src/
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/src/common.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/src/index.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/src/browser.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/src/node.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/README.md
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/debug/package.json
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/ms/
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/ms/index.js
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/ms/license.md
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/ms/package.json
./@switchbot/homebridge-switchbot/node_modules/mqtt/node_modules/ms/readme.md
./@switchbot/homebridge-switchbot/node_modules/nan/
./@switchbot/homebridge-switchbot/node_modules/nan/nan_object_wrap.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_define_own_property_helper.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_weak.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_new.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_json.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_maybe_pre_43_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_callbacks.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_scriptorigin.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_converters_43_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_callbacks_pre_12_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/README.md
./@switchbot/homebridge-switchbot/node_modules/nan/nan_typedarray_contents.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_converters_pre_43_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/package.json
./@switchbot/homebridge-switchbot/node_modules/nan/doc/
./@switchbot/homebridge-switchbot/node_modules/nan/doc/new.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/maybe_types.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/v8_internals.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/asyncworker.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/scopes.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/v8_misc.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/converters.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/errors.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/callback.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/node_misc.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/script.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/string_bytes.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/buffers.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/json.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/object_wrappers.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/persistent.md
./@switchbot/homebridge-switchbot/node_modules/nan/doc/methods.md
./@switchbot/homebridge-switchbot/node_modules/nan/nan_maybe_43_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_string_bytes.h
./@switchbot/homebridge-switchbot/node_modules/nan/LICENSE.md
./@switchbot/homebridge-switchbot/node_modules/nan/nan.h
./@switchbot/homebridge-switchbot/node_modules/nan/include_dirs.js
./@switchbot/homebridge-switchbot/node_modules/nan/nan_private.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_callbacks_12_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_implementation_pre_12_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/nan/tools/
./@switchbot/homebridge-switchbot/node_modules/nan/tools/1to2.js
./@switchbot/homebridge-switchbot/node_modules/nan/tools/README.md
./@switchbot/homebridge-switchbot/node_modules/nan/tools/package.json
./@switchbot/homebridge-switchbot/node_modules/nan/nan_converters.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_implementation_12_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_persistent_pre_12_inl.h
./@switchbot/homebridge-switchbot/node_modules/nan/nan_persistent_12_inl.h
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/parse-proxy-response.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/agent.js.map
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/index.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/agent.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/index.js.map
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/agent.d.ts
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/README.md
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/package.json
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/LICENSE
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/src/
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/src/common.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/src/index.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/src/node.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/README.md
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/debug/package.json
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/ms/
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/ms/index.js
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/ms/license.md
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/ms/package.json
./@switchbot/homebridge-switchbot/node_modules/https-proxy-agent/node_modules/ms/readme.md
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/LICENSE
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/index.js
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/index.d.ts
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/gcp-residency.js.map
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/gcp-residency.d.ts
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/index.js.map
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/build/src/gcp-residency.js
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/README.md
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/package.json
./@switchbot/homebridge-switchbot/node_modules/gcp-metadata/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/call-bind/
./@switchbot/homebridge-switchbot/node_modules/call-bind/LICENSE
./@switchbot/homebridge-switchbot/node_modules/call-bind/index.js
./@switchbot/homebridge-switchbot/node_modules/call-bind/.eslintrc
./@switchbot/homebridge-switchbot/node_modules/call-bind/test/
./@switchbot/homebridge-switchbot/node_modules/call-bind/test/index.js
./@switchbot/homebridge-switchbot/node_modules/call-bind/test/callBound.js
./@switchbot/homebridge-switchbot/node_modules/call-bind/README.md
./@switchbot/homebridge-switchbot/node_modules/call-bind/.eslintignore
./@switchbot/homebridge-switchbot/node_modules/call-bind/package.json
./@switchbot/homebridge-switchbot/node_modules/call-bind/.github/
./@switchbot/homebridge-switchbot/node_modules/call-bind/.github/FUNDING.yml
./@switchbot/homebridge-switchbot/node_modules/call-bind/CHANGELOG.md
./@switchbot/homebridge-switchbot/node_modules/call-bind/.nycrc
./@switchbot/homebridge-switchbot/node_modules/call-bind/callBound.js
Extracted to: /volume1/homebridge/node_modules

Running post-install scripts...

> @abandonware/bluetooth-hci-socket@0.5.3-10 install
> node-pre-gyp install --fallback-to-build --update-binary

node-pre-gyp ERR! install response status 404 Not Found on https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-10/bluetooth_hci_socket-0.5.3-10-node-v93-linux-x64.tar.gz 
gyp ERR! build error 
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:10:17)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:57:18
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at step (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:54:21)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:71:22
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at subStep (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:69:33)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:80:22
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! System Linux 4.4.180+
gyp ERR! command "/volume1/@appstore/homebridge/app/bin/node" "/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--update-binary" "--module=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node" "--module_name=bluetooth_hci_socket" "--module_path=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93"
gyp ERR! cwd /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket
gyp ERR! node -v v16.20.0
gyp ERR! node-gyp -v v9.1.0
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/volume1/@appstore/homebridge/app/bin/node /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node --module_name=bluetooth_hci_socket --module_path=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1100:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
node-pre-gyp ERR! System Linux 4.4.180+
node-pre-gyp ERR! command "/volume1/@appstore/homebridge/app/bin/node" "/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary"
node-pre-gyp ERR! cwd /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket
node-pre-gyp ERR! node -v v16.20.0
node-pre-gyp ERR! node-pre-gyp -v v1.0.10
node-pre-gyp ERR! not ok 
Failed to execute '/volume1/@appstore/homebridge/app/bin/node /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node --module_name=bluetooth_hci_socket --module_path=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
npm ERR! code 1
npm ERR! path /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket
npm ERR! command failed
npm ERR! command sh -c -- node-pre-gyp install --fallback-to-build --update-binary

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/packages/homebridge/home/.npm/_logs/2023-04-10T07_18_20_098Z-debug-0.log
Failed to rebuild.
Restoring previous version...
Restore Complete. Installation failed.

Bundled install / update could not complete. Trying regular install / update using npm.

USER: homebridge
DIR: /volume1/homebridge
CMD: npm install --save @switchbot/homebridge-switchbot@2.5.3

[##################] / reify:@mapbox/node-pre-gyp: http fetch GET 200 https://registry
> @abandonware/bluetooth-hci-socket@0.5.3-10 install
> node-pre-gyp install --fallback-to-build --update-binary

node-pre-gyp ERR! install response status 404 Not Found on https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-10/bluetooth_hci_socket-0.5.3-10-node-v93-linux-x64.tar.gz 
gyp ERR! build error | reify:@mapbox/node-pre-gyp: http fetch GET 200 https://registry
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:10:17)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:57:18
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at step (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:54:21)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:71:22
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at subStep (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:69:33)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:80:22
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! System Linux 4.4.180+
gyp ERR! command "/volume1/@appstore/homebridge/app/bin/node" "/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--update-binary" "--module=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node" "--module_name=bluetooth_hci_socket" "--module_path=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93"
gyp ERR! cwd /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket
gyp ERR! node -v v16.20.0
gyp ERR! node-gyp -v v9.1.0
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/volume1/@appstore/homebridge/app/bin/node /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node --module_name=bluetooth_hci_socket --module_path=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1100:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
node-pre-gyp ERR! System Linux 4.4.180+
node-pre-gyp ERR! command "/volume1/@appstore/homebridge/app/bin/node" "/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary"
node-pre-gyp ERR! cwd /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket
node-pre-gyp ERR! node -v v16.20.0
node-pre-gyp ERR! node-pre-gyp -v v1.0.10
node-pre-gyp ERR! not ok 
Failed to execute '/volume1/@appstore/homebridge/app/bin/node /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node --module_name=bluetooth_hci_socket --module_path=/volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)

> @abandonware/noble@1.9.2-20 install
> node-gyp-build

gyp ERR! build error / reify:@mapbox/node-pre-gyp: http fetch GET 200 https://registry
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:10:17)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:57:18
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at step (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:54:21)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:71:22
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at subStep (/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:69:33)
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/which/which.js:80:22
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! System Linux 4.4.180+
gyp ERR! command "/volume1/@appstore/homebridge/app/bin/node" "/volume1/@appstore/homebridge/app/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble
gyp ERR! node -v v16.20.0
gyp ERR! node-gyp -v v9.1.0
gyp ERR! not ok 
npm ERR! code 1
npm ERR! path /volume1/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble
npm ERR! command failed
npm ERR! command sh -c -- node-gyp-build

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/packages/homebridge/home/.npm/_logs/2023-04-10T07_18_22_916Z-debug-0.log

Operation failed. Please review log for details.

Config for homebridge-switchbot

{
            "name": "SwitchBot",
            "credentials": {
                "token": "REDACTED",
                "secret": "REDACTED",
                "notice": "Keep your Token & Secret a secret!"
            },
            "options": {
                "devices": [
                    {
                        "deviceId": "REDACTED",
                        "configDeviceName": "Front door lock",
                        "configDeviceType": "Smart Lock",
                        "connectionType": "OpenAPI",
                        "lock": {
                            "hide_contactsensor": true
                        },
                        "logging": "standard"
                    },
                    {
                        "deviceId": "REDACTED",
                        "configDeviceName": "SwitchBot Meter Plus",
                        "configDeviceType": "MeterPlus",
                        "connectionType": "OpenAPI",
                        "history": true
                    }
                ]
            },
            "platform": "SwitchBot"
        },

Screenshots

No response

Device and Model

Not applicable

Node.js Version

v16.20.0

NPM Version

v8.19.4

Homebridge Version

v1.6.0

Homebridge Switchbot Plugin Version

2.5.2

Homebridge Config UI X Plugin Version

v4.50.2

Operating System

Synology DSM 7.1.1-42962 Update 4

donavanbecker commented 1 year ago

Definitely specific to your hardware/OS.

marvinjoa commented 1 year ago

@donavanbecker I've tried updating from 2.5.1 to 2.5.3 on my Raspberry Pi Zero W flashed with Homebridge's own image multiple times now. (Thanks god I have a backup image of the SD card). I have issues too and the switchbot plugin stopps working / detecting BLE connections after updating.

mkizzle2906 commented 1 year ago

I can't update to 2.5.3 neither.

(##################) ⠏ reify:googleapis: timing reifyNode:node_modules/@switchbot/home

@abandonware/bluetooth-hci-socket@0.5.3-10 install node-pre-gyp install --fallback-to-build --update-binary

node-pre-gyp ERR! install response status 404 Not Found on https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-10/bluetooth_hci_socket-0.5.3-10-node-v108-linux-arm.tar.gz make: Entering directory '/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/build' CXX(target) Release/obj.target/bluetooth_hci_socket/src/BluetoothHciSocket.o make: g++: No such file or directory make: *** [bluetooth_hci_socket.target.mk:111: Release/obj.target/bluetooth_hci_socket/src/BluetoothHciSocket.o] Error 127 make: Leaving directory '/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23) gyp ERR! stack at ChildProcess.emit (node:events:513:28) gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:291:12) gyp ERR! System Linux 5.10.103-v7l+ gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--update-binary" "--module=/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node" "--module_name=bluetooth_hci_socket" "--module_path=/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v108" gyp ERR! cwd /usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket gyp ERR! node -v v18.15.0 gyp ERR! node-gyp -v v9.3.1 gyp ERR! not ok node-pre-gyp ERR! build error node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node --module_name=bluetooth_hci_socket --module_path=/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1) node-pre-gyp ERR! stack at ChildProcess. (/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23) node-pre-gyp ERR! stack at ChildProcess.emit (node:events:513:28) node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1091:16) node-pre-gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:302:5) node-pre-gyp ERR! System Linux 5.10.103-v7l+ing reifyNode:node_modules/@switchbot/home node-pre-gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary" node-pre-gyp ERR! cwd /usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket node-pre-gyp ERR! node -v v18.15.0 node-pre-gyp ERR! node-pre-gyp -v v1.0.10 node-pre-gyp ERR! not ok Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --update-binary --module=/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/bluetooth_hci_socket.node --module_name=bluetooth_hci_socket --module_path=/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1)

@abandonware/noble@1.9.2-20 install node-gyp-build

make: Entering directory '/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/build' SOLINK_MODULE(target) Release/obj.target/noble.node make: g++: No such file or directory make: *** [noble.target.mk:20: Release/obj.target/noble.node] Error 127 make: Leaving directory '/usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble/build' gyp ERR! build error ⠏ reify:googleapis: timing reifyNode:node_modules/@switchbot/home gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23) gyp ERR! stack at ChildProcess.emit (node:events:513:28) gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:291:12) gyp ERR! System Linux 5.10.103-v7l+ gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble gyp ERR! node -v v18.15.0 gyp ERR! node-gyp -v v9.3.1 gyp ERR! not ok npm ERR! code 1 npm ERR! path /usr/local/lib/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble npm ERR! command failed npm ERR! command sh -c node-gyp-build

npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2023-04-11T16_30_26_651Z-debug-0.log

Operation failed. Please review log for details.

neegool commented 1 year ago

@pmcdowall A workaround I found is by Installing Bluetooth tools in DSM as referred to here.

pmcdowall commented 1 year ago

@pmcdowall A workaround I found is by Installing Bluetooth tools in DSM as referred to here.

This doesn't work for me. It still fails the same way.

pmcdowall commented 1 year ago

@marvinjoa Thanks! A modified version of your fix worked for me. SSH into my Synology NAS and then;

sudo hb-shell cd /volume1/homebridge/ npm i @abandonware/bluetooth-hci-socket npm i @abandonware/noble

Exit the shell, return to Homebridge UI and update Switchbot. Successfully completes update to 2.5.3.

donavanbecker commented 1 year ago

This should be raise as an issue on noble and Bluetooth-hci-socket.

marvinjoa commented 1 year ago

@marvinjoa Thanks! A modified version of your fix worked for me. SSH into my Synology NAS and then;

sudo hb-shell cd /volume1/homebridge/ npm i @abandonware/bluetooth-hci-socket npm i @abandonware/noble

Exit the shell, return to Homebridge UI and update Switchbot. Successfully completes update to 2.5.3.

@pmcdowall Happy it worked for you! I had the backup steps just to make sure I don't mess up, but it seems fine without it.

This should be raise as an issue on noble and Bluetooth-hci-socket.

@donavanbecker I am not 100% convinced that it is a problem with those dependencies. Especially it seems that it is not only a Raspberry Pi issue as you deemed it, but also a Synology issue, although here it is a noble install issue vs the hci socket issue on raspian. To be fair I cannot write code myself from scratch, but I understand it partially and have a basic understanding for this stuff.

What happens during the failed plugin update is that it asks for the compiled version on GitHub instead of building it itself. And the compiled version doesn't exist.

When manually npm installing both it will download and install both normally. During the plugin update the dependencies were build from scratch again. Maybe there is an issue with the installation script or the parameters set during the plugin update.

donavanbecker commented 1 year ago

I don't set any special scripts for it. Definitely dependencies.

fluffy-critter commented 1 year ago

In case anyone else is running into this issue and the fixes above didn't work for them, reinstalling Entware and the native BLE build dependencies did the trick for me.

It seems that sometime between my initial installation of the plugin and the most recent updates, something broke in my Entware environment that made the bluetooth-hci + noble builds fail.

donavanbecker commented 1 year ago

Thanks for all the hints @fluffy-critter, @pmcdowall, and @neegool!

I have added your tips to Bluetooth Issues Wiki: Bluetooth Issues