Skip to content

Clarify that BLE Indications behave like Notifications (no ACK support) #5362

@tilman

Description

@tilman

Feedback

The esp32_ble_server documentation currently lists both notify: true and indicate: true as options for characteristics.
However, it is not clear to users that:

  1. There is no separate indicate action – you must always use ble_server.characteristic.notify to send updates.
  2. Even if a characteristic is marked with indicate: true and a client subscribes to Indications, ESPHome does not currently wait for the client’s acknowledgment (ACK). Indications are effectively handled the same as Notification

Suggested change

Add a clarification note to the esp32_ble_server documentation, e.g.:

:::note
### Notifications vs. Indications

ESPHome supports both `notify: true` and `indicate: true` in characteristic configuration.  
However, at the moment there is **no separate action** to send an Indication – you must always use the
[`ble_server.characteristic.notify`](#ble_server-characteristic-notify-action) action (or the `.notify()` method in a lambda).

⚠️ **Important:** Even if a characteristic is marked with `indicate: true` and the client subscribes to Indications,
ESPHome does not yet wait for the client’s acknowledgment (ACK).  
Internally, Indications are currently handled the same way as Notifications. This means they work,
but without the guaranteed delivery semantics normally provided by Indications.
:::

Links:
https://api-docs.esphome.io/esp32__ble__server_2ble__characteristic_8cpp_source#:~:text=Remove%20this%20block%20when%20INDICATE%20acknowledgment%20is%20supported

https://api-docs.esphome.io/classesphome_1_1esp32__ble__server_1_1_b_l_e_characteristic.html#a6a4826a8efca2b67671865485856147f

https://esphome.io/components/esp32_ble_server/

### URL

https://esphome.io/components/esp32_ble_server/

### Additional information

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions