# bleak.backends.corebluetooth package

## Submodules

## bleak.backends.corebluetooth.CentralManagerDelegate module

## bleak.backends.corebluetooth.PeripheralDelegate module

## bleak.backends.corebluetooth.client module

BLE Client for CoreBluetooth on macOS

class bleak.backends.corebluetooth.client.BleakClientCoreBluetooth(address_or_ble_device: BLEDevice | str, services: set[str] | None = None, **kwargs: Any)

  Bases: `BaseBleakClient`

  CoreBluetooth class interface for BleakClient

  Parameters:

    - address_or_ble_device (BLEDevice or str) – The Bluetooth address of the BLE peripheral to connect to or the BLEDevice object representing it.

    - services – Optional set of service UUIDs that will be used.

  async connect(pair: bool, **kwargs: Any) → None

    Connect to a specified Peripheral

    Keyword Arguments:

      timeout (float) – Timeout for required `BleakScanner.find_device_by_address` call.

  async disconnect() → None

    Disconnect from the peripheral device

  async get_rssi() → int

    To get RSSI value in dBm of the connected Peripheral

  property is_connected: bool

    Checks for current active connection

  property mtu_size: int

    Get ATT MTU size for active connection

  property name: str

    Get the name of the connected peripheral

  async pair(*args: Any, **kwargs: Any) → None

    Attempt to pair with a peripheral.

    Raises:

      NotImplementedError – This is not available on macOS since there is not explicit API to do a pairing. Instead, the docs state that it “auto-pairs”, when trying to read a characteristic that requires encryption.

    Reference:

    > - Apple Docs

    > - Stack Overflow post #1

    > - Stack Overflow post #2

  async read_gatt_char(characteristic: BleakGATTCharacteristic, *, use_cached: bool = False, **kwargs: Any) → bytearray

    Perform read operation on the specified GATT characteristic.

    Parameters:

      characteristic (BleakGATTCharacteristic) – The characteristic to read from.

    Returns:

      (bytearray) The read data.

  async read_gatt_descriptor(descriptor: BleakGATTDescriptor, *, use_cached: bool = False, **kwargs: Any) → bytearray

    Perform read operation on the specified GATT descriptor.

    Parameters:

      - handle (int) – The handle of the descriptor to read from.

      - use_cached (bool) – False forces Windows to read the value from the device again and not use its own cached value. Defaults to False.

    Returns:

      (bytearray) The read data.

  async start_notify(characteristic: BleakGATTCharacteristic, callback: Callable[[bytearray], None], **kwargs: Any) → None

    Activate notifications/indications on a characteristic.

  async stop_notify(characteristic: BleakGATTCharacteristic) → None

    Deactivate notification/indication on a specified characteristic.

    Parameters:

      (BleakGATTCharacteristic (characteristic) – The characteristic to deactivate notification/indication on.

  async unpair() → None

    Remove pairing information for a peripheral.

    Raises:

      NotImplementedError – This is not available on macOS since there is not explicit API to do a pairing.

  async write_gatt_char(characteristic: BleakGATTCharacteristic, data: SizedBuffer, response: bool) → None

    Perform a write operation on the specified GATT characteristic.

    Parameters:

      - characteristic – The characteristic to write to.

      - data – The data to send.

      - response – If write-with-response operation should be done.

  async write_gatt_descriptor(descriptor: BleakGATTDescriptor, data: SizedBuffer) → None

    Perform a write operation on the specified GATT descriptor.

    Parameters:

      - descriptor – The descriptor to read from.

      - data – The data to send (any bytes-like object).

## bleak.backends.corebluetooth.scanner module

class bleak.backends.corebluetooth.scanner.BleakScannerCoreBluetooth(detection_callback: Callable[[BLEDevice, AdvertisementData], Coroutine[Any, Any, None] | None] | None, service_uuids: list[str] | None, scanning_mode: Literal['active', 'passive'], *, cb: CBScannerArgs, **kwargs: Any)

  Bases: `BaseBleakScanner`

  The native macOS Bleak BLE Scanner.

  Documentation: https://developer.apple.com/documentation/corebluetooth/cbcentralmanager

  CoreBluetooth doesn’t explicitly use Bluetooth addresses to identify peripheral devices because private devices may obscure their Bluetooth addresses. To cope with this, CoreBluetooth utilizes UUIDs for each peripheral. Bleak uses this for the BLEDevice address on macOS.

  Parameters:

    - detection_callback – Optional function that will be called each time a device is discovered or advertising data has changed.

    - service_uuids – Optional list of service UUIDs to filter on. Only advertisements containing this advertising data will be received. Required on macOS >= 12.0, < 12.3 (unless you create an app with `py2app`).

    - scanning_mode – Set to `"passive"` to avoid the `"active"` scanning mode. Not supported on macOS! Will raise `BleakError` if set to `"passive"`

    - **timeout (float) – The scanning timeout to be used, in case of missing `stopScan_` method.

  async start() → None

    Start scanning for devices

  async stop() → None

    Stop scanning for devices

## bleak.backends.corebluetooth.utils module

## Module contents

__init__.py