Skip to main content

Python client for Dimplex heating controllers (GDHV IoT)

Reason this release was yanked:

Initial replaced

Project description

Dimplex Controller Python Client

A Python asyncio client for controlling Dimplex heating systems (GDHV IoT).

Features

  • Authentication: Easy login flow and automatic token refresh (Azure B2C).
  • Discovery: List Hubs, Zones, and Appliances associated with your account.
  • Detailed Status: Fetch real-time data including room temperature, setpoints, comfort status, and active boost settings.
  • Control:
    • Set operation modes (Manual, Timer, Frost Protection).
    • Activate Boost and Away modes.
    • Toggle EcoStart and Open Window Detection.
    • Program heating schedules (Timer Periods).

Installation

This project is managed with Poetry.

git clone <repo-url>
cd dimplex-controller-py
poetry install

Getting Started

1. Initial Authentication

Due to the nature of the Azure B2C flow, you must perform the initial login manually to capture an authorization code.

Run the demo script to guide you through the process:

poetry run python demo.py

Follow the on-screen instructions. Once successful, a dimplex_tokens.json file will be created, allowing the library to authenticate automatically in the future.

2. Basic Usage

import asyncio
import aiohttp
from dimplex_controller import DimplexControl

async def main():
    async with aiohttp.ClientSession() as session:
        # Pass tokens from dimplex_tokens.json or just the refresh_token
        client = DimplexControl(session, refresh_token="YOUR_REFRESH_TOKEN")
        
        # Get Hubs
        hubs = await client.get_hubs()
        for hub in hubs:
            print(f"Hub: {hub.Name}")
            
            # Get Zones and Appliances
            zones = await client.get_hub_zones(hub.HubId)
            for zone in zones:
                print(f"  Zone: {zone.ZoneName}")

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

3. Advanced Operations

Get Real-time Status

# Fetch status for a list of appliance IDs
status_list = await client.get_appliance_overview(hub_id, ["appliance_id_1", "appliance_id_2"])

for status in status_list:
    print(f"Temp: {status.RoomTemperature}°C, Target: {status.ActiveSetPointTemperature}°C")
    print(f"EcoStart: {status.EcoStartEnabled}")

Control Features

from dimplex_controller.models import ApplianceModeSettings

# Enable EcoStart
await client.set_eco_start(hub_id, [appliance_id], True)

# Enable Open Window Detection
await client.set_open_window_detection(hub_id, [appliance_id], True)

# Activate Boost (Mode 16, Status 1 = On)
boost_settings = ApplianceModeSettings(ApplianceModes=16, Status=1, Temperature=25.0)
await client.set_appliance_mode(hub_id, [appliance_id], boost_settings)

Development & API Reference

  • openapi.yaml: This file contains the most complete technical specification of the API discovered so far. It includes all known endpoints, request bodies, and response schemas.
  • Traffic Logs: If you identify new features in the mobile app, capture the traffic and add the endpoints to openapi.yaml and the DimplexControl client.

Disclaimer

This is an unofficial library and is not affiliated with or endorsed by Glen Dimplex Heating & Ventilation (GDHV). Use it 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

dimplex_controller-1.0.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

dimplex_controller-1.0.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file dimplex_controller-1.0.0.tar.gz.

File metadata

  • Download URL: dimplex_controller-1.0.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.2 Linux/6.18.9-2-cachyos

File hashes

Hashes for dimplex_controller-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c62046979a04f125afc834ba3f43d81aa6ef9ef5584f4335b9a1263ebf89f55a
MD5 02421557996a86be1c4dbeaabb873432
BLAKE2b-256 3eb67c181d9ef53598ab456ce3c7a64ee34714c9b8b666c969fc3b1afd3c72ab

See more details on using hashes here.

File details

Details for the file dimplex_controller-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dimplex_controller-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.2 Linux/6.18.9-2-cachyos

File hashes

Hashes for dimplex_controller-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99f649241ad200c378001896959372211d04e1a61a1d7ff9ef2f955226e64036
MD5 20a8a7795fd5751130ed4740a3eca780
BLAKE2b-256 605c0f126e67e0c9947890c5d7fd16ecf08002f7f29bae6f7a2f275b094031ed

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