Skip to main content

Async Python library for controlling Stone Connect WiFi electric heaters

Project description

Stone Connect Heater Python Library

Python 3.8+ License: MIT Code style: black

An async Python library for controlling Stone Connect WiFi electric heaters via their local HTTPS API.

Features

  • Async/await support - Built with modern Python async patterns
  • Local API communication - Direct connection to your heater without cloud dependency
  • Comprehensive control - Temperature, operation modes, schedules, and more
  • Type safety - Full type hints and data validation
  • Easy integration - Simple context manager interface
  • Robust error handling - Detailed exception hierarchy
  • Well tested - Comprehensive test suite with high coverage

Supported Operations

  • 🌡️ Temperature Control - Set target temperature and read current values
  • 🔥 Operation Modes - Manual, Comfort, Eco, Antifreeze, Schedule, Boost, and power modes
  • 📅 Schedule Information - Read weekly heating schedules
  • 📊 Status Monitoring - Heater status and sensor readings
  • ℹ️ Device Information - Hardware details, firmware version, network info

Installation

pip install stone-connect

Development Installation

git clone https://github.com/tomasbedrich/stone-connect.git
cd stone-connect
pip install -e ".[dev]"

Quick Start

import asyncio
from stone_connect import StoneConnectHeater, OperationMode

async def main():
    # Connect to your heater (replace with your heater's IP)
    async with StoneConnectHeater("192.168.1.100") as heater:
        # Get device information
        info = await heater.get_info()
        print(f"Connected to: {info.appliance_name}")
        
        # Get current status
        status = await heater.get_status()
        print(f"Current temperature: {status.current_temperature}°C")
        print(f"Target temperature: {status.set_point}°C")
        
        # Set temperature to 22°C in manual mode
        await heater.set_temperature(22.0, OperationMode.MANUAL)
        
        # Switch to comfort mode
        await heater.set_operation_mode(OperationMode.COMFORT)

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

Disclaimer

This library is not officially associated with Stone Connect or any heater manufacturer. It is developed through reverse engineering of the public API for personal and educational use. Use at your own risk.

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

stone_connect-0.1.0.tar.gz (169.7 kB view details)

Uploaded Source

Built Distribution

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

stone_connect-0.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stone_connect-0.1.0.tar.gz
  • Upload date:
  • Size: 169.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for stone_connect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc8bc7fc255b92c3964d1d0def43da6f4073585ff89ebd8d4582bf9a4785f7b1
MD5 ab980624ac3f901d46f7135a35747810
BLAKE2b-256 74ae9411af57bae9096e139f20a200a728cdd30c27c86c5a712f51ea364f6420

See more details on using hashes here.

File details

Details for the file stone_connect-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for stone_connect-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 520e2d0add03a52e412c156c2dae1b51aec9ab09368a4592c07197ff6d35fb2e
MD5 69771973562ab103f7bb9d1f33dd7522
BLAKE2b-256 ca84fd3f35d22222acbcf1a721187c66fe802b2b5afba4eeb279224f8ef7405f

See more details on using hashes here.

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