Skip to content

BLE connection drops during start_notify() (BluetoothGATTNotifyResponse) while direct BlueZ connection works #9

Description

@ghuser46

Hello,

I'm trying to use bt-proxy with Home Assistant to control a Melitta Barista T Smart coffee machine over BLE.
I have narrowed the problem down to what appears to be a failure during GATT notification setup.
I'm not sure whether this is a bug in bt-proxy or a limitation, so I'm providing the complete investigation.

Environment
Raspberry Pi 3B+
Debian Pi OS Lite 64-bit 13.6
BlueZ 5.82
Docker
ghcr.io/denvera/bt-proxy:latest
Home Assistant 2026.7.2
Home Assistant custom integration using bleak_esphome
Coffee machine: Melitta Barista TS Smart

At that point:

  • Raspberry Pi receives advertisements correctly
  • bt-proxy forwards them correctly
  • Home Assistant receives them correctly

So advertising works perfectly.

What was verified :

  1. Bluetooth advertisements

Using bluetoothctl:
advertisements are continuously received
Home Assistant Bluetooth Advertisement Monitor also receives them through bt-proxy.
Direct GATT connection

Connecting directly with BlueZ works:

bluetoothctl
connect FA:CD:C7...

The connection succeeds and full GATT service discovery completes successfully.

So:

Bluetooth adapter is working
BlueZ is working
the coffee machine accepts GATT connections

  1. bt-proxy :

Initially bt-proxy was running without BlueZ experimental mode.

I enabled:

bluetoothd --experimental

and restarted bt-proxy.
This removed the previous GATT discovery failures.

Current behaviour

Now bt-proxy logs show:

Connecting to FA:CD:C7:...
Connected to FA:CD:C7:... (MTU=23)
Disconnecting from FA:CD:C7:...

There is no longer any "failed to discover services" error.

  1. Home Assistant logs

Home Assistant successfully reaches the connection stage:

BLE connected to FA:CD:C7:... (pair=False)

Immediately afterwards, during notification setup:

BluetoothConnectionDroppedError:
Peripheral changed connection status while waiting for BluetoothGATTNotifyResponse

which becomes

BleakError:
Peripheral changed connection status while waiting for BluetoothGATTNotifyResponse

The connection is therefore established successfully but drops while start_notify() is executing.

  1. Pairing

After the first failure Home Assistant retries with pairing enabled.

At that point bt-proxy returns:

NotImplementedError:
Pairing is not available in this version ESPHome;
Upgrade the ESPHome version on the bt-proxy device.

I'm aware bt-proxy is not actual ESPHome firmware, but I thought this message might be useful.

Summary

The current situation is:

  • BLE advertisements work
  • bt-proxy receives Home Assistant requests
  • BLE connection succeeds
  • MTU negotiation succeeds
  • Direct BlueZ GATT access works perfectly on the same Raspberry Pi

But :

  • Connection drops during BluetoothGATTNotifyResponse
  • Pairing is reported as unsupported

Could you please tell me is this expected ?
Is there any known issue regarding start_notify() / GATT notifications with bt-proxy? Or could it be a bug in bt-proxy's GATT implementation?

I'm of course OK to provide additional logs if needed.

Thanks for help !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions