Bug: Installation on Raspberry Pi Zero fails
### Describe the Bug

I'm trying to (re)install homebridge-switchbot on a Raspberry Pi Zero via Web UI, installation fails when compiling native `usb` module for node (see log output). Build essentials are installed and up to date.

### To Reproduce

(Re)Install latest version of homebridge-switchbot.

### Expected Behavior

Installation should work without compilation errors.

### Relevant Log Output

```shell
USER: homebridge
DIR: /var/lib/homebridge
CMD: npm install --save @switchbot/homebridge-switchbot@2.12.1

(##################) ⠏ reify:googleapis: timing reifyNode:node_modules/@switchbot/home
> usb@1.9.2 install
> node-gyp-build

(##################) ⠸ reify:googleapis: timing reifyNode:node_modules/@switchbot/home
make: Entering directory '/var/lib/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/usb/build'
  CC(target) Release/obj.target/libusb/libusb/libusb/core.oode_modules/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/descriptor.odules/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/hotplug.o_modules/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/io.o:node_modules/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/strerror.omodules/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/sync.oode_modules/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/os/poll_posix.oes/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/os/threads_posix.o@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_usbfs.os/@switchbot/home
  CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_udev.oes/@switchbot/home
rm -f Release/obj.target/usb.a Release/obj.target/usb.a.ar-file-list; mkdir -p `dirname Release/obj.target/usb.a`
ar crs Release/obj.target/usb.a @Release/obj.target/usb.a.ar-file-list/@switchbot/home
  COPY Release/usb.a ⠸ reify:googleapis: timing reifyNode:node_modules/@switchbot/home
  CXX(target) Release/obj.target/usb_bindings/src/node_usb.ode_modules/@switchbot/home
In file included from /home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-object.h:9,
                 from /home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-array-buffer.h:13,
                 from /home/homebridge/.cache/node-gyp/20.10.0/include/node/v8.h:24,
                 from /home/homebridge/.cache/node-gyp/20.10.0/include/node/node.h:73,
                 from /home/homebridge/.cache/node-gyp/20.10.0/include/node/node_buffer.h:25,
                 from ../src/node_usb.h:14,
                 from ../src/node_usb.cc:1:
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:106:45: error: ‘is_lvalue_reference_v’ is not a member of ‘std’; did you mean ‘is_lvalue_reference’?
  106 |   template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
      |                                             ^~~~~~~~~~~~~~~~~~~~~
      |                                             is_lvalue_reference
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:106:66: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
  106 |   template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
      |                                                                  ^
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:106:67: error: template argument 1 is invalid
  106 |   template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
      |                                                                   ^
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:106:71: error: expected unqualified-id before ‘>’ token
  106 |   template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
      |                                                                       ^
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:123:43: error: ‘is_lvalue_reference_v’ is not a member of ‘std’; did you mean ‘is_lvalue_reference’?
  123 | template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
      |                                           ^~~~~~~~~~~~~~~~~~~~~
      |                                           is_lvalue_reference
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:123:64: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
  123 | template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
      |                                                                ^
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:123:65: error: template argument 1 is invalid
  123 | template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
      |                                                                 ^
/home/homebridge/.cache/node-gyp/20.10.0/include/node/v8-maybe.h:123:70: error: expected unqualified-id before ‘=’ token
  123 | emplate <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
      |                                                                     ^

In file included from /home/homebridge/.cache/node-gyp/20.10.0/include/node/node_buffer.h:25,
                 from ../src/node_usb.h:14,
                 from ../src/node_usb.cc:1:
/home/homebridge/.cache/node-gyp/20.10.0/include/node/node.h:711:28: error: ‘std::string_view’ has not been declared
  711 |     Environment* env, std::string_view main_script_source_utf8);
      |                            ^~~~~~~~~~~
../src/node_usb.cc: In function ‘Napi::Value SetDebugLevel(const Napi::CallbackInfo&)’:
../src/node_usb.cc:118:71: warning: ‘void libusb_set_debug(libusb_context*, int)’ is deprecated: Use libusb_set_option instead [-Wdeprecated-declarations]
  118 |  libusb_set_debug(usb_context, info[0].As<Napi::Number>().Int32Value());
      |                                                                       ^
In file included from ../src/node_usb.h:11,
                 from ../src/node_usb.cc:1:
../libusb/libusb/libusb.h:1325:18: note: declared here
 1325 | void LIBUSB_CALL libusb_set_debug(libusb_context *ctx, int level);
      |                  ^~~~~~~~~~~~~~~~
make: *** [usb_bindings.target.mk:122: Release/obj.target/usb_bindings/src/node_usb.o] Error 1
make: Leaving directory '/var/lib/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/usb/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.<anonymous> (/opt/homebridge/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:209:23)
gyp ERR! System Linux 6.1.21+
gyp ERR! command "/opt/homebridge/bin/node" "/opt/homebridge/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/lib/homebridge/node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/bluetooth-hci-socket/node_modules/usb
gyp ERR! node -v v20.10.0
gyp ERR! node-gyp -v v10.0.1
gyp ERR! not ok 
npm ERR! process terminated
npm ERR! signal SIGTERM

npm ERR! A complete log of this run can be found in: /home/homebridge/.npm/_logs/2023-11-29T18_58_06_357Z-debug-0.log

Operation failed. Please review log for details.
```


### Config for homebridge-switchbot

```shell
{
            "name": "SwitchBot",
            "credentials": {
                "token": "*****",
                "secret": "*****",
                "notice": "Keep your Token & Secret a secret!"
            },
            "platform": "SwitchBot"
        }
```


### Screenshots

_No response_

### Device and Model

Any

### Node.js Version

v20.10.0

### NPM Version

v10.2.3

### Homebridge Version

1.7.0

### Homebridge Switchbot Plugin Version

v2.12.1

### Homebridge Config UI X Plugin Version

_No response_

### Operating System

Raspbian Lite