easyathome-ble
Python library for Easy@Home Bluetooth Low Energy (BLE) devices.
Supported Devices
- EBT-300: Basal body temperature thermometer for fertility tracking
Features
- Active BLE connection management
- Automatic time synchronization
- Temperature unit configuration (Celsius/Fahrenheit)
- Real-time temperature notifications
- Historical data support
- Timestamped measurements
Installation
pip install easyathome-ble
Quick Start
from datetime import datetime
from easyathome_ble import EasyHomeDevice, TemperatureMeasurement
def handle_measurement(measurement: TemperatureMeasurement):
print(f"Temperature: {measurement.temperature}°C")
print(f"Time: {measurement.timestamp}")
print(f"Live: {measurement.is_live}")
# Create device
device = EasyHomeDevice(
address="AA:BB:CC:DD:EE:FF",
notify_callback=handle_measurement
)
# Connect and start receiving measurements
await device.connect()
# Set datetime
await device.set_datetime(datetime.now().astimezone())
# Set unit to Celsius
await device.set_unit(celsius=True)
# Disconnect when done
await device.disconnect()
Protocol Details
The EBT-300 uses the following BLE characteristics:
- Service UUID:
0000ffe0-0000-1000-8000-00805f9b34fb - Write Characteristic:
0000ffe1-0000-1000-8000-00805f9b34fb(commands) - Notify Characteristic:
0000ffe2-0000-1000-8000-00805f9b34fb(temperature data)
Commands
Time Sync: [90, 3, 6, year-1970, month, day, hour, minute, second]
Unit Sync: [90, 6, 6, 1 or 2, 255, 255, 255, 255, 250] (1=Celsius, 2=Fahrenheit)
Notifications
Temperature readings are sent as 15-byte notifications:
- Bytes 4-5: Temperature (little-endian, divide by 100)
- Bytes 8-14: Timestamp (year, month, day, hour, minute, second)
- Byte 1: Message type (1=live, 17=historical)
Development
# Clone repository
git clone https://github.com/chmielowiec/easyathome-ble.git
cd easyathome-ble
# Install dependencies
poetry install
# Run tests
pytest
# Run linting
ruff check src tests
mypy src
License
MIT License - see LICENSE file for details.
Credits
Developed by Robert Chmielowiec
Inspired by the thermopro-ble library structure.
Metadata
Release files for easyathome-ble 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easyathome_ble-0.2.4.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easyathome_ble-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.5 kB
Release files / easyathome_ble-0.2.4.tar.gz
| Download URL | easyathome_ble-0.2.4.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e02fea36fa9df47cd6fbf9a1f34916847e818c948e068f75a20cbad0f1f7f76c
|
|
BLAKE2b-256 checksum How to use checksums |
70b3a93e4f10779ea626c63b6725132d64555ab3bc9fbe971c35d6b04691eb1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 4, 2026.
Transparency logRelease files / easyathome_ble-0.2.4-py3-none-any.whl
| Download URL | easyathome_ble-0.2.4-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15aca5f406d39df946699eef6fd027e369d92bce6e189026a2cf56b9e77fa2e7
|
|
BLAKE2b-256 checksum How to use checksums |
ad34f5ca480e6017130764938883570390dafb97d2e958de92c09b14ae99e05f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 4, 2026.
Transparency log