Asynchronous Python client for the Melcloud Home API
Project description
aiomelcloudhome
Asynchronous Python client for MELCloud Home.
About
aiomelcloudhome is an async client for the MELCloud Home API, focused on:
- Fetching account context (buildings and devices)
- Controlling Air-to-Air units
- Controlling Air-to-Water units
- Reading telemetry (energy and actual measurements)
The library is under active development and endpoint coverage will keep expanding.
Installation
pip install aiomelcloudhome
Usage
Authenticate with username and password
import asyncio
from aiohttp import ClientSession
from aiomelcloudhome import MELCloudHome
async def main() -> None:
async with ClientSession() as session:
async with MELCloudHome(
username="your@email.com",
password="your_password",
session=session,
) as client:
context = await client.get_context()
for building in context.buildings:
print(f"Building: {building.name}")
for unit in building.air_to_air_units:
print(f"ATA: {unit.name} (room: {unit.room_temperature} C)")
for unit in building.air_to_water_units:
print(f"ATW: {unit.name} (tank: {unit.tank_water_temperature} C)")
if __name__ == "__main__":
asyncio.run(main())
Authenticate with an existing access token
from aiomelcloudhome import MELCloudHome
client = MELCloudHome(access_token="YOUR_ACCESS_TOKEN")
Control an Air-to-Air unit
from aiomelcloudhome import ATAFanSpeed, ATAOperationMode, MELCloudHome
await client.control_ata_unit(
"ata-unit-id",
power=True,
operation_mode=ATAOperationMode.HEAT,
set_temperature=21.0,
set_fan_speed=ATAFanSpeed.AUTO,
)
Control an Air-to-Water unit
from aiomelcloudhome import ATWZoneMode
await client.control_atw_unit(
"atw-unit-id",
power=True,
operation_mode_zone1=ATWZoneMode.HEAT_ROOM_TEMPERATURE,
set_temperature_zone1=21.0,
set_tank_water_temperature=50.0,
)
Fetch telemetry
from datetime import UTC, datetime, timedelta
energy = await client.get_energy_telemetry(
"unit-id",
from_dt=datetime.now(UTC) - timedelta(days=1),
to_dt=datetime.now(UTC),
)
outdoor = await client.get_outdoor_temperature("ata-unit-id")
More examples can be found in the examples directory.
Documentation
Project documentation and API reference: https://github.com/erwindouna/aiomelcloudhome
Contributing
Contributions are welcome. Please open an issue or pull request.
For local development:
uv sync --all-groups && uv run pre-commit install
Run checks:
uv run pre-commit run --all-files
Run tests:
uv run pytest
Update snapshot tests:
uv run pytest --snapshot-update
License
MIT License
Copyright (c) 2026 Erwin Douna
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiomelcloudhome-0.1.9.tar.gz.
File metadata
- Download URL: aiomelcloudhome-0.1.9.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81e4901aee2c4549b611c311c356d85953fe350c4bb7b1616d67aa2f510914b0
|
|
| MD5 |
d207fa2c2e35822d0991570e7510a13b
|
|
| BLAKE2b-256 |
cae663a716dbabe2511bc49a705987d8865951b2c0dfc73454cc6a31b78c88da
|
Provenance
The following attestation bundles were made for aiomelcloudhome-0.1.9.tar.gz:
Publisher:
release.yaml on erwindouna/aiomelcloudhome
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aiomelcloudhome-0.1.9.tar.gz -
Subject digest:
81e4901aee2c4549b611c311c356d85953fe350c4bb7b1616d67aa2f510914b0 - Sigstore transparency entry: 1901749851
- Sigstore integration time:
-
Permalink:
erwindouna/aiomelcloudhome@8b7ab159a100e1298028b81fdf3f0bfe7581eeae -
Branch / Tag:
- Owner: https://github.com/erwindouna
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@8b7ab159a100e1298028b81fdf3f0bfe7581eeae -
Trigger Event:
release
-
Statement type:
File details
Details for the file aiomelcloudhome-0.1.9-py3-none-any.whl.
File metadata
- Download URL: aiomelcloudhome-0.1.9-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89557e60d6ae29ea5863423599e44fd5e9314970ccc84eccb4a770e2308c5461
|
|
| MD5 |
4b29dffc61c2ade3451ae4f411b135f1
|
|
| BLAKE2b-256 |
e3a7725c0b8368e8d4583a96cb2c2a31c7f3f844e3d7ae8927108826f9f3ccbb
|
Provenance
The following attestation bundles were made for aiomelcloudhome-0.1.9-py3-none-any.whl:
Publisher:
release.yaml on erwindouna/aiomelcloudhome
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aiomelcloudhome-0.1.9-py3-none-any.whl -
Subject digest:
89557e60d6ae29ea5863423599e44fd5e9314970ccc84eccb4a770e2308c5461 - Sigstore transparency entry: 1901749950
- Sigstore integration time:
-
Permalink:
erwindouna/aiomelcloudhome@8b7ab159a100e1298028b81fdf3f0bfe7581eeae -
Branch / Tag:
- Owner: https://github.com/erwindouna
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@8b7ab159a100e1298028b81fdf3f0bfe7581eeae -
Trigger Event:
release
-
Statement type: