Skip to main content

easyathome-ble

Python Version PyPI version

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)

Source distribution for easyathome-ble 0.2.4
File Size Uploaded
easyathome_ble-0.2.4.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for easyathome-ble 0.2.4
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page