Skip to content

Bluetooth Control

Ben edited this page Jul 14, 2021 · 31 revisions

System Requirements

  • Your system running Homebridge/HOOBS must have an available bluetooth module

  • Prerequisites for noble bluetooth package:

    Homebridge RPi Image

    If the bluetooth does not initially work then you may need to run these commands in the Homebridge terminal:

    sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
    sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)

    macOS Systems

    Unfortunately the bluetooth control does not work on the latest versions of macOS (even if noble is correctly installed)

    Other Systems

    See the noble documentation for instructions specific to your system.

Plugin Setup

  • You need to enter your Govee username and password into the configuration
  • You need to add an entry for your device in the 'Light Devices' configuration section with at least the device id and the 'Enable Bluetooth Control' ticked

Limitations

  • Since bluetooth modules on a raspberry pi can only connect to one device at a time, the plugin has been designed to make as 'little' use of the module as possible. Each time a device is updated in HomeKit, the plugin will attempt to connect via bluetooth to the device, apply the update, and disconnect again. The plugin does not maintain a long term bluetooth connection with a device.
  • Bluetooth control can be temperamental, from general use I have noticed about an 80% success rate. Sometimes the connection can be ended before any update is applied.
    • For models that also support cloud control, there is a 2 second timeout for the bluetooth attempt, meaning that if a bluetooth command fails then after 2 seconds the command will be sent via the cloud.
    • For models that don’t support cloud control, there is a 9 second timeout, and unfortunately if the bluetooth command fails then a 'No Response' message will be shown in HomeKit.
  • Bluetooth control seems more likely to fail when multiple commands are sent in a short space of time.
    • For example, setting a HomeKit scene involving 2 devices means sending 6 commands in a short space of time (state/brightness/colour for both devices)
  • The plugin cannot determine the current state of your device via the bluetooth connection
    • If your model also allows for cloud control then the state of the device will be refreshed this way
    • If your model only allows for bluetooth control then any changes to the state made outside of HomeKit will not be reflected in HomeKit
  • The plugin will be unable to control your device via bluetooth whilst you have the device connected to a phone via bluetooth (i.e. using the Govee app)