ESPHome - Multiple Bluetooth proxies

Hi All,

I’ve looked everywhere, but cannot find the answer. Does Home Assistant support more than 1 Bluetooth proxies? And if yes, how can I get it to work?

I have 2x an m5stack atom lite compiled as Bluetooth Proxy. It looks like that HASS only listens to the first m5stack that comes online, and this one receives the Bluetooth broadcasts. They both work separately from each other. When both are connected, only one is used by HASS.

I need multiple receivers because I cannot cover the whole premises with only one receiving proxy.

Yes
And you have separate names and IP?
Please provide your yaml for them.

I use several atom lites and generic esp32s (five in total) to get data from my plant sensors spread out over 3 stories, works great.

Names are different and IPs are DHCP.

Thanks for confirming!

I’ll run some additional tests, maybe I need to change position of the m5stack.

Same here, I use plenty with no problems.

I have the same problem.
My YAMLs: First Bluetooth Proxy:

esphome:
  name: esp32-bluetooth-proxy
  friendly_name: ESP32 Bluetooth Proxy

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "########"

ota:
  password: "########"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Optional manual IP
  manual_ip:
    static_ip: 192.168.1.166
    gateway: 192.168.1.253
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Bluetooth-Proxy"
    password: "#########"

captive_portal:
    
esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true

Second Bluetooth proxy:

esphome:
  name: esp32-bluetooth-proxy-garage
  friendly_name: ESP32 Bluetooth Proxy Garage

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "##########"

ota:
  password: "########"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Optional manual IP
#  manual_ip:
#    static_ip: 192.168.1.172
#    gateway: 192.168.1.253
#    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Bluetooth-Proxy-Garage"
    password: "######"

captive_portal:

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true

When I set the manual ip of 192.168.1.172 to active, the device won’t connect to the WLAN. Because of that, I’ve set the manual IP to disable. In that situation the device gets the dynamic address 192.168.1.22 from the DHCP server. It gets discovered from HASS, but when I want to add it, HASS says it’s not able to connect to the device and I have to enter the IP address and the Port. When I enter 192.168.1.22 and port 6053, it says unable to connect.


he individual device integrations in Home Assistant (such as BTHome) will receive the data from the Bluetooth Integration in Home Assistant which automatically aggregates all ESPHome Bluetooth proxies with any USB Bluetooth Adapters you might have.

That’s from the first paragraph of the esphome BT Proxy Docs… “Proxies” is plural, it means more than 1.

Probably not the root issue, but you’re not using the recommended framework per the BT Proxy docs.

These also shouldn’t be defined unless you are using an Ethernet board (or have good reason), also per the docs.

And to echo others, you can definitely have numerous proxies. I have over half a dozen all working flawlessly.

I have 2 Atom M5 Stack devices as Bluetooth proxies and an ESP Presence as a bluetooth proxy too.

They all worked great for 2023, until a recent ESP Home update, and now there is definitely an issue I have many sensors that worked flawlessly that are now very intermittent, despite the placement of the sensors not changing.

I think you can spot when the ESP Home update was done…

That would require someone to read the docs/instructions… It’s just so much easier to copy some random config you find online though!