Bluetooth Proxies in Home Assistant

Bluetooth Proxies in Home Assistant

Bluetooth has been a popular protocol and was invented back in the late 1990's. It exists in many products today, such as tablets, phones, media players, headsets, modems, watches, and many more.

In the smart home world, Bluetooth Low Energy is more useful and this comes in the form of low energy packet broadcasts of sensor data such as temperature, humidity, light levels, etc. It was introduced as part of the Bluetooth 4.0 standard around December of 2009. The focus of my video and this accompanying article are about extending the range of these BLE devices. More specifically, intercepting the packets sent out by BLE devices.

Many of us hide our home automation hub in a back closet or in the basement, far away from the devices we are trying to control or receive data from. In this example, the Home Assitant hub is in the basement and there are Bluetooth devices on the top level of the house (and in-between).

A typical "hidden hub" scenario in which the Smart Hub is far away from a BLE device. Image: (www.home-assistant.io)

It is very unlikely that the BLE signal on the top floor will reach the hub in the basement. How can that be solved? Enter the Bluetooth proxy. The team over at Home Assistant has developed the ability to use devices to proxy the BLE signal back into home Assistant. As of this writing, there are a few devices that can serve in this role.

BLE Proxy Capable Devices

Generic ESP32 devices, M5Stack, and Olimex devices can act as proxies for bluetooth. The ESP32 devices need to be plain devices. The ESP32-C3 and similar will not work. The devices that I use are listed on my gear page.

Again, as of this writing, the proxies only work in passive mode and not active mode. This means that they can only receive BLE packets "passively". They do not make connections to the devices to poll for more information. In coming releases, Home Assistant says they will add the ability to actively connect to devices.

Testing the new Bluetooth Proxies, I used an ESP32 Dev Board, as well as a Xiaomi Mii Thermometer, flashed using the Telink flasher. I actually used 3 of those with two strategically placed ESP boards for coverage in my house. What's nice about that setup is that the board that hears the BLE sensor the best will forward that packet on to Home Assistant.

BLE Thermometer
ESP32 Dev Board

Once you have added the proxy software to the ESP or other device and configured your thermometers, you will start to see data show up in Home Assistant.

Home Assistant data from BLE sensors picked up by the Bluetooth Proxies.

Bluetooth Proxies are an easy way to bring new life to those Bluetooth devices that were previously out of reach of your Home Assistant device. Dig into that junk box and pull out those devices that you weren't able to make work and put them to use!

Make sure to watch my video for hands-on demos. If you are a regular Youtube watcher and haven't subscribed to my channel, please take moment, jump over there, and hit that subscribe button. It helps the AI know that my content is important to people and will push the videos to more people to watch. Thanks!!