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.4.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.4-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for easyathome_ble-0.2.4.tar.gz
Algorithm Hash digest
SHA256 e02fea36fa9df47cd6fbf9a1f34916847e818c948e068f75a20cbad0f1f7f76c
MD5 c62f0856019170a34a2f5a87f79459e7
BLAKE2b-256 70b3a93e4f10779ea626c63b6725132d64555ab3bc9fbe971c35d6b04691eb1d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: easyathome_ble-0.2.4-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.12

File hashes

Hashes for easyathome_ble-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 15aca5f406d39df946699eef6fd027e369d92bce6e189026a2cf56b9e77fa2e7
MD5 e3c06abfaa1f5621030ecede76dc6ba4
BLAKE2b-256 ad34f5ca480e6017130764938883570390dafb97d2e958de92c09b14ae99e05f

See more details on using hashes here.

Provenance

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