Skip to main content

Python hardware API for Nissan Leaf OBD BLE dongles (BLE + ELM327 over CAN), extracted from the Home Assistant integration.

Project description

py-nissan-leaf-obd-ble

Python hardware API for Nissan Leaf OBD-II over BLE dongles.

This library encapsulates the low-level BLE, ELM327 and CAN protocol handling used by the Home Assistant nissan_leaf_obd_ble integration, and exposes a simple async API for querying vehicle data from a BLEDevice.

It has no Home Assistant dependency and can be used in other Python applications that talk to the same BLE OBD dongle.

Installation

Once published on PyPI:

pip install py-nissan-leaf-obd-ble

Quickstart

import asyncio
from bleak import BleakScanner

from py_nissan_leaf_obd_ble import NissanLeafObdBleApiClient


async def main() -> None:
    # Discover your OBDBLE device with bleak, or obtain a BLEDevice from elsewhere
    device = await BleakScanner.find_device_by_address("AA:BB:CC:DD:EE:FF", timeout=10.0)
    if device is None:
        raise RuntimeError("Could not find OBDBLE device")

    client = NissanLeafObdBleApiClient(device)
    data = await client.async_get_data()
    print(data)


if __name__ == "__main__":
    asyncio.run(main())

Configurable BLE UUIDs

The default GATT service and characteristic UUIDs match the LeLink OBD BLE dongle. When used with the Home Assistant integration, the service and read/write characteristic UUIDs are configurable per device in the UI. For custom use, async_get_data(options=None) accepts an optional options dict with keys service_uuid, characteristic_uuid_read, and characteristic_uuid_write; omit keys to use the library defaults.

License

This package includes code derived from python-OBD (a derivative of pyOBD), licensed under the GNU General Public License, version 2 or later.

See LICENSE for full terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_nissan_leaf_obd_ble-0.1.1.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_nissan_leaf_obd_ble-0.1.1-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file py_nissan_leaf_obd_ble-0.1.1.tar.gz.

File metadata

  • Download URL: py_nissan_leaf_obd_ble-0.1.1.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for py_nissan_leaf_obd_ble-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2729e01c969b54f581db0b58148c9623cbad56a2c07433caef411fcbbe6a28f1
MD5 4b13629855c3ceac99cb9d853101fcdc
BLAKE2b-256 9670543cc56419631563e2ace1ae444163127ff87e88f86b38977feabe928429

See more details on using hashes here.

File details

Details for the file py_nissan_leaf_obd_ble-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for py_nissan_leaf_obd_ble-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ebc6ec59ebcc4923fd790d8f347a3bbdd83593d30effb2ef7847f46bb06fa4df
MD5 add4695b985a534b80da58b93bed2449
BLAKE2b-256 0633eac7760702738980da25964be3bacc02af263bbd99799121d145b2f058b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page