This is fantastic work - thank you!
I've been having some issues pairing using a BLE proxy. Some details follow:
Proxy-mode pairing fails: async_pair_device enters local-BlueZ _pair_and_trust instead of skipping D-Bus pairing
Setup: Melitta Barista TS Smart, ESPHome BLE proxy only (Seeed XIAO ESP32-C6, esp-idf framework, active connections enabled). No local Bluetooth adapter in use.
Discovery works perfectly — the machine is identified ("Melitta Barista TS Smart"), advertisement 850102U211022440502-, MAC C4:0E:38:AD:2D:4B, RSSI ~−55 dB via the proxy. The "Pair with Melitta Barista TS Smart" config flow appears correctly.
On Submit, pairing fails immediately with:
File "custom_components/melitta_barista/ble_agent.py", line 258, in async_pair_device
return await _pair_and_trust(bus, device_path, address, timeout)
File "custom_components/melitta_barista/ble_agent.py", line 139, in _pair_and_trust
device_iface = proxy.get_interface("org.bluez.Device1")
dbus_fast.errors.InterfaceNotFoundError: interface not found on this object: org.bluez.Device1
Per the BLE architecture docs, in proxy mode ble_agent.py should detect the absent Adapter1 and skip D-Bus pairing (delegating pair=True to the ESP32). That isn't happening — it always enters the local-BlueZ _pair_and_trust path.
Confirmed it is not local-adapter state: the error is identical after (a) deleting the HA Bluetooth integration entry, (b) a full HA restart, and (c) bluetoothctl power off on the host's hci0 adapter. The BlueZ D-Bus service remains present on HA OS regardless, so the proxy-mode detection appears to be keying off bus presence rather than a usable adapter/device object.
I'm probably doing something dumb here, but this is far as I can get with troubleshooting.
Any ideas? Thank you!
Environment: HA 2026.6.2, Python 3.14, integration v0.23.3, HA OS on Raspberry Pi 4.