Bluetooth adapter priorities

I have three Bluetooth adapters:

  • Built-in Raspberry Pi 4 adapter – sometimes takes forever to connect and it seems to struggle with concurrent connection
  • Some USB adapter – probably better, but it seems to struggle with concurrent connection
  • ESPHome BT proxy (ESP-IDF, ESP32) – works well

Optimal behavior: Enable all the adapters. The BT proxy is preferred, but in case of unavailability (device is down, router is down, …), some other BT adapter is used.

Actual behavior: HA uses various BT adapters when all are allowed. Sometimes, restart of the proxy helps, but not always. When all other BT adapters are disabled, ESPHome proxy is used and everything is fast.

Can I somehow achieve the optimal behavior?

If 1 out of the 3 options work well, why not just stick to the working option? I don’t think I’ve had downtime on any of my proxies the last couple of years, should not be a big issue. If your router goes down surely other devices on your network goes down as well?

I just prefer robust solutions.

BT proxy (I have just one) usually doesn’t go down on its own (not sure if it has ever happened), but it is usually down when tuning the firmware. Or when I disconnect the sensor in order to take it with me. (The sensor also works without the home network.)

Router is pretty stable, but isn’t backed by UPS (unlike HA), and neither is the ESPHome-based sensor. HA is easier to connect to the UPS due to it’s physical location.

That said, I can live with it, but I’d still prefer it to be more robust.

Are you using one of the ‘known working high performance adapters’? Never had a problem with mine that’s on the list (but the built-in one on the Pis are known to be problematic).

And as far as a BT Proxy, any reason you can’t just buy a second one if you remove the existing one periodically?

If you want redundancy just deploy more proxies.

Yes, specifically, I use ORICO BTA-403. It was a better experience thsn just the Raspberry Pi BT, but IIRC it still struggled with just two concurrent connections, which are common scenario in my case. Just closing/opening of two curtains at once wasn’t a great experience.

Maybe I can keep just the ORICO and Esp home and see if it is better.

How many devices do you have that require an active connection? I assume you’re aware that the BT Proxies have a hard limit of 3 (but essentially unlimited for picking up passive advertisements). Not sure if the adapters do, as I mainly use proxies.

I am aware if the limit.

I have 3 Bluetooth devices total. Usual scenarios include concurrent manipulation with 2 of them.

BTW, while the might look like sending just 2 commands to 2 curtains, it isn’t that easy. First, the curtain continuously reports changes of its position. Second, when a change is reported, my automation is a bit dumb and sends the command again. I know I could solve this by some conditions, but it isn’t that easy, as I also need to consider speed.