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.0.tar.gz (5.7 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.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: easyathome_ble-0.2.0.tar.gz
  • Upload date:
  • Size: 5.7 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.0.tar.gz
Algorithm Hash digest
SHA256 df9ff2236d9f52f8cbd64b2a06302634e0ffc71dd214b468551ae44561c50d57
MD5 15da752a80221552b3a54851af63562a
BLAKE2b-256 167a6dc71126364572723d03903107653a908ee7820332a2bf6a686f602a60b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyathome_ble-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: easyathome_ble-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ac9b45a8d3c8edc184f79f9c08e295d237cca92b35f1c64ab336f623ec5cfb1
MD5 eb171ff483e3563b24dbc820e5525ba1
BLAKE2b-256 e73d5d0be5b098e1d8e3bdfaee34e86bfe7481da2ea0cbbbe93f7cee19685258

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyathome_ble-0.2.0-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