Skip to main content

A Python library for interacting with iConsole+ exercise equipment via Bluetooth Low Energy (BLE)

Project description

iconsole-plus

A Python library for interacting with iConsole+ exercise equipment (bikes, ellipticals) via Bluetooth Low Energy (BLE).

This library handles the specific iConsole+ protocol, including the required initialization handshake and heartbeat loop to keep the connection alive.

Installation

uv add iconsole-plus
# or
pip install iconsole-plus

Usage

The library provides an asynchronous client that manages the BLE connection and session state.

import asyncio
from iconsole_plus.client import IConsolePlusClient

async def main():
    # Can be a MAC address or a bleak BLEDevice object
    address = "XX:XX:XX:XX:XX:XX"
    client = IConsolePlusClient(address)

    # The session context manager handles connect, handshake, 
    # heartbeat, and cleanup (stop/disconnect)
    async with client.session() as bike:
        print(f"Connected to {bike.address}")
        
        # Set resistance level (1-32)
        await bike.set_resistance(10)

        # The client is an async iterator that yields TelemetryData
        async for data in bike:
            print(f"Time: {data.duration_seconds}s")
            print(f"Speed: {data.speed_kmh} km/h")
            print(f"Cadence: {data.cadence_rpm} RPM")
            print(f"Power: {data.power_watts} W")
            print(f"Heart Rate: {data.heart_rate_bpm} BPM")
            
            if not data.is_running:
                print("Workout stopped")
                break

if __name__ == "__main__":
    asyncio.run(main())

Features

  • Automatic Session Management: Uses an async context manager to handle connection, handshake, and heartbeat.
  • Telemetry Streaming: Real-time access to speed, power, distance, heart rate, cadence, and calories.
  • Resistance Control: Easily set resistance levels from 1 to 32.
  • Robust Connection: Built on bleak and bleak-retry-connector for reliable BLE communication.
  • Device Scanning: Supports connecting via MAC address or BLEDevice objects.

License

GNU General Public License v2.0

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

iconsole_plus-0.1.7.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

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

iconsole_plus-0.1.7-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file iconsole_plus-0.1.7.tar.gz.

File metadata

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

File hashes

Hashes for iconsole_plus-0.1.7.tar.gz
Algorithm Hash digest
SHA256 4cfe349f0d0312f2e4e4806052391eeb3ee9c65ccf253eb1b578ac9c97b7b42a
MD5 841f77b61dad7ee42da25e06b3df4981
BLAKE2b-256 1f2be4fa6764cebd2fcc3d38adad5910a1be1cc5bf6f321cdbaa7b7d279a748d

See more details on using hashes here.

Provenance

The following attestation bundles were made for iconsole_plus-0.1.7.tar.gz:

Publisher: publish.yml on christopher-david-smith/iconsole-plus

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

File details

Details for the file iconsole_plus-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: iconsole_plus-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iconsole_plus-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f44e54517ee4a1e7813068fca2d7ed655ecd9502582551c4a96b22865b8bdc18
MD5 da404ac85f97d2998449f7c80bd7cd88
BLAKE2b-256 5c53a8ae919cd4acfa87f6ca1f686a81a5948de5f4c9a83b7d6b9cf65dbcf55f

See more details on using hashes here.

Provenance

The following attestation bundles were made for iconsole_plus-0.1.7-py3-none-any.whl:

Publisher: publish.yml on christopher-david-smith/iconsole-plus

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