bthome-ble
BThome BLE support
What it is and what it does
bthome-ble is a parser library for Bluetooth Low Energy sensors that advertise data using the BTHome format standard. It decodes BLE advertisement payloads into structured sensor readings, supporting both BTHome V1 and V2 protocol versions. The package wraps lower-level BLE handling via habluetooth and uses cryptography for any encrypted sensor data, making it suitable for home automation and IoT applications that need to ingest standardized BLE sensor broadcasts.
The library is in pre-alpha development but actively maintained, with recent releases and a small but engaged user base. It targets Python 3.11+ and integrates with the broader Bluetooth device ecosystem through its dependency chain, particularly sensor-state-data and bluetooth-sensor-state-data for normalized sensor representation.
Use it for:
- Decode temperature, humidity, and other sensor readings from BTHome-compatible BLE devices in home automation systems.
- Build a BLE gateway or hub that collects and normalizes sensor data from multiple BTHome devices.
- Integrate BTHome sensor streams into Home Assistant or similar IoT platforms that support BLE discovery.
- Parse raw BLE advertisement packets to extract structured metrics for monitoring or logging.
- Prototype IoT applications that consume standardized BTHome sensor broadcasts without writing low-level BLE parsing code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses and decodes BLE sensor data in the BTHome format (V1 and V2), extracting structured sensor readings from Bluetooth Low Energy advertisements.
Yes, if you are building BLE sensor integrations or home automation systems that work with BTHome-compatible devices. The low install friction, active maintenance, and MIT license make it a straightforward choice. The pre-alpha status means the API may shift, but recent activity and 140 repository stars suggest reasonable stability for current use. Not necessary if you are not working with BTHome format sensors.
Install
bthome-ble on PyPI
pip
pip install bthome-bleuv
uv add bthome-blepoetry
poetry add bthome-bleInstalling bthome-ble
Before you install
Low install friction with a pure-Python wheel. Active maintenance with a release 24 days ago and recent commits. Requires Python 3.11 or later and depends on five runtime packages including cryptography and habluetooth for BLE connectivity.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install bthome-ble
from bthome_ble import BTHomeBluetoothDeviceData
# Parse BLE advertisement data
device_data = BTHomeBluetoothDeviceData()
Requires Python 3.11 or later; BLE connectivity depends on the habluetooth library and underlying system Bluetooth support.
Verify before relying
- Specific sensor types and measurement units supported by V1 and V2 format
- Whether the package handles malformed or partial BTHome advertisements gracefully
- Performance characteristics with high-frequency sensor updates
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — bluetooth-data-tools, bluetooth-sensor-state-data, cryptography, habluetooth, sensor-state-data |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 79,735/month — #14,335 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bthome_ble-3.24.0-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
home-assistant-bluetoothProvides standardized data models and helpers…
permissive · top 15,000 on PyPI
ibeacon-bleParses and decodes iBeacon BLE (Bluetooth Low…
permissive · top 15,000 on PyPI
inkbird-bleParses BLE advertisements from INKBIRD…
permissive · top 15,000 on PyPI
oralb-blePassive parser for Oral-B toothbrush Bluetooth…
permissive · top 15,000 on PyPI
bluetooth-sensor-state-dataProvides data models for parsing, storing, and…
permissive · top 15,000 on PyPI
bluetooth-data-toolsParses and manipulates Bluetooth Low Energy…
permissive · top 5,000 on PyPI
sensor-state-dataProvides data models for storing and converting…
permissive · top 15,000 on PyPI
govee-bleProvides Python bindings to discover, connect…
permissive · top 15,000 on PyPI
airthings-bleLibrary to communicate with Airthings…
permissive · top 15,000 on PyPI
aioblescanaioblescan listens for and parses Bluetooth Low…
permissive · top 15,000 on PyPI