# Buggy code
async def start_notify(
    self, _uuid: str, callback: Callable[[str, Any], Any], **kwargs
) -> None:
    """Starts a notification session from a characteristic.

    Args:
        _uuid (str or uuid.UUID): The UUID of the GATT
        characteristic to start subscribing to notifications from.
        callback (Callable): A function that will be called on notification.

    Keyword Args:
        notification_wrapper (bool): Set to `False` to avoid parsing of
        notification to bytearray.

    """
    _wrap = kwargs.get("notification_wrapper", True)
    char_props = self.characteristics.get(_uuid)
    await self._bus.callRemote(
        char_props.get("Path"),
        "StartNotify",
        interface=defs.GATT_CHARACTERISTIC_INTERFACE,
        destination=defs.BLUEZ_SERVICE,
        signature="",
        body=[],
        returnSignature="",
    ).asFuture(self.loop)

    if _wrap:
        self._notification_callbacks[char_props.get("Path")] = (
            _data_notification_wrapper(callback, self._char_path_to_uuid)
        )  # noqa | E123 error in flake8...
    else:
        self._notification_callbacks[char_props.get("Path")] = (
            _regular_notification_wrapper(callback, self._char_path_to_uuid)
        )  # noqa | E123 error in flake8...


# Traceback (bleak.exc.BleakError)
Traceback (most recent call last):
File "/home/jonas/Schreibtisch/TMRTFlib.py", line 572, in <module>
loop.run_until_complete(connect_device_bleak(address, loop))
File "/usr/lib/python3.6/asyncio/base_events.py", line 473, in run_until_complete
return future.result()
File "/home/jonas/Schreibtisch/TMRTFlib.py", line 552, in connect_device_bleak
async with BleakClient(address, loop=loop) as client:
File "/home/jonas/.local/lib/python3.6/site-packages/bleak/backends/client.py", line 35, in __aenter__
await self.connect()
File "/home/jonas/.local/lib/python3.6/site-packages/bleak/backends/bluezdbus/client.py", line 76, in connect
raise BleakError(str(e))
bleak.exc.BleakError: org.freedesktop.DBus.Error.UnknownObject: Method "Connect" with signature "" on interface "org.bluez.Device1" doesn't exist

# Fixed code
async def start_notify(
    self, _uuid: str, callback: Callable[[str, Any], Any], **kwargs
) -> None:
    """Starts a notification session from a characteristic.

    Args:
        _uuid (str or uuid.UUID): The UUID of the GATT
        characteristic to start subscribing to notifications from.
        callback (Callable): A function that will be called on notification.

    Keyword Args:
        notification_wrapper (bool): Set to `False` to avoid parsing of
            notification to bytearray.

    """
    _wrap = kwargs.get("notification_wrapper", True)
    characteristic = self.services.get_characteristic(str(_uuid))
    await self._bus.callRemote(
        characteristic.path,
        "StartNotify",
        interface=defs.GATT_CHARACTERISTIC_INTERFACE,
        destination=defs.BLUEZ_SERVICE,
        signature="",
        body=[],
        returnSignature="",
    ).asFuture(self.loop)

    if _wrap:
        self._notification_callbacks[characteristic.path] = _data_notification_wrapper(
            callback, self._char_path_to_uuid
        )  # noqa | E123 error in flake8...
    else:
        self._notification_callbacks[characteristic.path] = (
            _regular_notification_wrapper(callback, self._char_path_to_uuid)
        )  # noqa | E123 error in flake8...