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.1.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.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: easyathome_ble-0.1.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.1.0.tar.gz
Algorithm Hash digest
SHA256 6ce7eabee7c4e72447c06213fbd0e42f1a837e60b9c1b935f2c7e05afc29fe2d
MD5 0a5d9ad4a97f6db10044fb8c81c44a36
BLAKE2b-256 c30cc022465f458a40029744500682c72dd2970f011c4d98c5526f42140b343b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: easyathome_ble-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 882af867e10f132201d91c29bcdc1604bfd5252ec8de034c9f712c8431475989
MD5 f0437a6a08cd4baa90ed60f786e25bcd
BLAKE2b-256 743f3179c5be5a8bb9f02daa6b01b72dc6fa85e4f0ae3ff81f49f1d04737fca3

See more details on using hashes here.

Provenance

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