Skip to main content

gkphomepython

License: MIT

A Python API wrapper for GKP Wi-Fi radiators, providing easy Home Assistant integration with the GKP cloud.

Features

  • OAuth2 authentication - Secure token-based authentication with automatic refresh
  • Installation discovery - Discovery of the installations where the user is the main administrator
  • Thermostat control - Set temperature and modes, and read the current status
  • Device wake up - Ask the radiators to report their current state
  • Rate limiting - Expose the delay requested by the API when it rate limits the user

Installation

From source

pip install .

Usage

from gkphomepython import GkpAuth, GkpClient, GkpMode

auth = GkpAuth(oauth_session)  # object exposing `token` and `async_ensure_token_valid()`
client = GkpClient(auth, aiohttp_session)

installations = await client.get_installations()
for installation in installations:
    await client.notify_user_connected(installation.installation_id)

result = await client.get_thermostats(installations)
# result.thermostats: Thermostat by device ID, result.errors: GkpError by device ID

await client.set_mode(device_id, GkpMode.COMFORT)
await client.set_temperature(device_id, GkpMode.COMFORT, 21.5)

Supported Device Types

Thermostat

Control and monitor GKP Wi-Fi radiators.

Available thermostat modes:

  • OFF - Turn off heating
  • ECO - Energy saving mode
  • AUTO - Follow programmed schedule
  • COMFORT - Comfort mode
  • DEFROST - Frost protection mode
  • BOOST - Boost mode for a limited duration

Temperatures are exposed in °C; the firmware unit (1/10 °F) is converted by the library. Setting a temperature in AUTO mode starts a boost.

Requirements

  • Python 3.12+
  • aiohttp >= 3.8.0

Development

uv venv .venv && uv pip install --python .venv/bin/python -e ".[dev]"
.venv/bin/python -m pytest --cov=gkphomepython
.venv/bin/python -m mypy gkphomepython
.venv/bin/python -m build

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

0.3.0 (2026-10-15)

  • get_thermostats returns a ThermostatsResult, with the thermostats and the device errors apart
  • get_thermostats raises GkpAuthError and GkpRateLimitError, which affect the whole account
  • Add GkpMode.setpoint_adjustable
  • Export BOOST_DURATION_MIN and BOOST_DURATION_MAX

0.2.0 (2026-10-01)

  • Add get_thermostats to read every thermostat of the installations
  • Move the online detection and the firmware timings to the library
  • Always provide a delay when the API rate limits the user
  • Add GkpRateLimitError
  • Raise GkpRateLimitError instead of GkpAuthError when the APIM quota is exceeded (403 with Retry-After)
  • Use the Home Assistant APIM subscription key

0.1.0 (2026-09-30)

  • Initial release
  • OAuth2 authentication support
  • Installation discovery and thermostat control

Metadata

Release files for gkphomepython 0.3.0

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

Source distribution (sdist)

Source distribution for gkphomepython 0.3.0
File Size Uploaded
gkphomepython-0.3.0.tar.gz 16.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gkphomepython 0.3.0
File Interpreter ABI Platform
gkphomepython-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.6 kB

Release files / gkphomepython-0.3.0.tar.gz

Download URL gkphomepython-0.3.0.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1949a0a514ccc96ead1cf0e1f3cb3905b1a9e8c7500a738a887ccf010c53f31c
BLAKE2b-256 checksum
How to use checksums
197a7e765387064c2340b57f59f610b0c37b860608bfcd38aa7f1e56c24b7c13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / gkphomepython-0.3.0-py3-none-any.whl

Download URL gkphomepython-0.3.0-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d57435878229cf321d9890a7c3435eca33f154608e993e2dc94153424bb841e
BLAKE2b-256 checksum
How to use checksums
0ba3cb5680a0693f14a968184e3b387be6258966d6684ff330f38aa9b677f4ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.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