How to extend bluetooth range

I found an article in Italian which explain how to use a Raspberry Pi zero as bridge between BLE and MQTT via WiFi. It could be interesting as long as you can feed power to the Pi Zero…

I used this, works perfectly!

I fund other docs…

It looks that it is pretty useless try to increase BT range using more powerful BT device at one side only. BT devices mainly belong to three class where the first has its maximum operating range at 100 meters but this is true only if you have class 1 BT devices at both ends.
Because it is not possible to change BT in MI Flora we can only follow the way to convert BT to MQTT over WiFi.


I use this for far away bt-ble thermostats on a pi zero, works perfectly.

1 Like

After some weeks of test I’bound to say that using other Zigbee powered devices such as smart plug/switches solved 90% of my range issues.
Despite this I still have a last problem only: I placed a water sensor in a little well where I have a tank with a submerged pump. If the pump stops to works the water overflow flooding the surface where there is the sensor. Unfortunately the well has concrete wall so the radio signal struggles passing through. So, from time to time I lost the water sensor signal which become “unavailable”.
In that room, where there is the well, I put two star plugs but the signal is not as strong as required.
Is there any other devices that could help me in this particular room/case compatible with deCONZ?

Thank You for your suggestions



Hi Martin
Let me get this right are you saying that the pi zero is working as the bridge to extend the BLE range.
Thanks for your post

I use an esp32 running esphome which talks to the mifloras. It’s outside in a weather proof box. It pushes the data back to HA via mqtt or via the esphome integration.

Great Thanks Dan

Hello @sh00t2kill I’m interested in esp32 platform.
I read the esp32 home site but I didn’t catch how to install a firmware for the first time.
Could you tell me where I can find some info about this?

Thank You

Getting started guides are here:

They explain the process better than I could. I use the command line method rather than hassio

1 Like

Looking to extend the bluetooth range on a rpi 3 as well. Anyone else was successful in setting the bt-mqtt-gateway up?

You can try using long range dongles with external antennas

This being said, Mi Floras have such a short range that i gave up shortly after purchasing few of them.

Hmm. I just installed a Switchbox Meter suggested by this post using this github sbm2mqtt only to find out that the temperature gauge is out of range from where I would like to place it.

How much added range did it provide after installing the dongle for you? I am thinking of moving the rpi closer, but it does require a bit of work since I have to detach the rpi from it’s cluster.

Hi. Im not sure how much added range it provided, as i originally had LM1010 for my RPi so never used a different dongle.
This being said, you cannot just look at dongle max signal distance - BT is two way communication so it relies on both transcievers in same degree - in reality a good dongle with a good external antenna may extend your range by more like 10-25% than 10 times (unless you’re using good dongles with external antennas on both sides of transmission)

Someone tries this? Maybe it’s enough :thinking:

maybe this guide

hello, I am struggling to get the bt-mqtt-gateway working for me :frowning:

I keep getting a “bluepy” error as per picture below…

my I ask which OS version you have?

You activate your virtual Python environment for yourself only. Superuser still has a default Python environment and you start your script as a superuser. Your script checks for bluepy in the default environment, cannot find it and complains. You then check bluepy presence against your virtual environment again.

Thank you for this… unfortunately I am not a great linix user :frowning: but what you said it make sense con concept point of view…

let me get to the details, please… everything should be under SUDO or not?

how woudl you suggest to fix the problem? reinstall python 3 under SUDO?

thank you

I am not a great Linux expert either :slight_smile: Probably the easiest thing for you is to just install bluepy to your system Python. It will be available by default for everyone. This is the easiest if the package does not interfere with other Python scripts you might want to run.

If your pi-zero is intended to be used for ble-mqtt gateway only, then using system Python will definitely be ok.

So just run pip under sudo to install bluepy.