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.1.tar.gz (5.6 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.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: easyathome_ble-0.2.1.tar.gz
  • Upload date:
  • Size: 5.6 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.1.tar.gz
Algorithm Hash digest
SHA256 1d329a131c37dcacb55aa70bbc9c925e230b8d24ef6d929ba51ae82140afca6f
MD5 6a6f6cf27490294bd9ed1b13faa257f1
BLAKE2b-256 b3cb4bcd8e1f3fff2e75fb172174e9d5cb81eb7c36b16f4c1d9588de4c39f3ee

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: easyathome_ble-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 6.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d6b9b6f23dd5c42980b06f04179aeb377c430e510c1de41aea3a1e7359714d62
MD5 1c4857b8746f55fc60618bd0c7fc68dd
BLAKE2b-256 7e2a3774a5e66b2bf62bf6d2998d8dfd814af24ca224cfac7b1676ef68a90a60

See more details on using hashes here.

Provenance

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