Skip to main content

Stone Connect Heater Python Library

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.

Metadata

Release files for stone-connect 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stone-connect 0.1.1
File Size Uploaded
stone_connect-0.1.1.tar.gz 169.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stone-connect 0.1.1
File Interpreter ABI Platform
stone_connect-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 180.9 kB

Release files / stone_connect-0.1.1.tar.gz

Download URL stone_connect-0.1.1.tar.gz
Size 169.6 kB
Tags Source
SHA-256 checksum
How to use checksums
76914a751619d8b5e292472402089abee77141aca76d0f7ba7c4258be5061209
BLAKE2b-256 checksum
How to use checksums
25bcc7ac877a21b85eea89e22e75cbc4281461dba823ea62e2cb282b351fc82f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.5

Release files / stone_connect-0.1.1-py3-none-any.whl

Download URL stone_connect-0.1.1-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1f477c7be10096cde7950d4156780934d4e2ad1f7ef6844b9fb648f34543d5c
BLAKE2b-256 checksum
How to use checksums
682c433647d558f694e49f3f34eb487acbe2a3fa4d4a4fb93b9eb3a0b0afa669
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.5

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page