Skip to main content

Easy@Home BLE Devices

Project description

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.

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

easyathome_ble-0.2.2.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

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

easyathome_ble-0.2.2-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file easyathome_ble-0.2.2.tar.gz.

File metadata

  • Download URL: easyathome_ble-0.2.2.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for easyathome_ble-0.2.2.tar.gz
Algorithm Hash digest
SHA256 0879d5665196242e8781fcd4c03a3f27045dd37bac00a814016640886f237844
MD5 30d2acd7bfb83017f50fcce80a44340a
BLAKE2b-256 5ab12161ade5a4c2ab9120228a3b84b7cac9ce625327bcf514556a56f6d33615

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyathome_ble-0.2.2.tar.gz:

Publisher: release.yml on chmielowiec/easyathome-ble

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easyathome_ble-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: easyathome_ble-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for easyathome_ble-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 78b2a9491a2a836446b7dd47bcfdf410c77ce906c9a55ae32df61e7ae519bb6b
MD5 a58b64e2936b81605b2d1f93d9b88537
BLAKE2b-256 6604a08313bcf41947969bbb3733ad669aba759ec9d251ecc3165aef540a3782

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyathome_ble-0.2.2-py3-none-any.whl:

Publisher: release.yml on chmielowiec/easyathome-ble

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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