Async Python library for Mitsubishi minisplit control via Kumo Cloud and local API
Project description
mitsubishi-comfort
Async Python library for controlling Mitsubishi minisplit systems via the Kumo Cloud V3 API and local HTTP API.
Features
- Cloud discovery -- authenticate with Kumo Cloud to discover devices, retrieve credentials, and fetch device status
- Local control -- communicate directly with minisplit units over your LAN for low-latency operation
- Indoor units -- full control of mode, temperature setpoints, fan speed, and vane direction
- Kumo stations -- read outdoor temperature and signal strength from headless outdoor units
- Async native -- built on
aiohttpfor use in asyncio applications
Installation
pip install mitsubishi-comfort
Quick start
import asyncio
from mitsubishi_comfort import MitsubishiCloudAccount, IndoorUnit, Mode
async def main():
# Discover devices via cloud API
account = MitsubishiCloudAccount("user@example.com", "password")
await account.login()
devices = await account.discover_devices()
# Control a device locally
info = list(devices.values())[0]
unit = IndoorUnit(
name=info.label,
address=info.address,
password_b64=info.password,
crypto_serial_hex=info.crypto_serial,
serial=info.serial,
)
await unit.update_status()
print(f"Room temp: {unit.status.room_temperature}")
await unit.set_mode(Mode.COOL)
await unit.set_cool_setpoint(22.0)
asyncio.run(main())
API overview
Cloud account
MitsubishiCloudAccount(username, password) authenticates with the Kumo Cloud V3 API.
| Method | Description |
|---|---|
login() |
Authenticate and obtain JWT tokens |
refresh() |
Refresh an expired access token |
discover_devices() |
Return dict[serial, DeviceInfo] with full credentials |
get_sites() |
List installation sites |
get_zones(site_id) |
List zones within a site |
Indoor unit
IndoorUnit controls a minisplit indoor unit over the local HTTP API.
| Method | Returns | Description |
|---|---|---|
update_status() |
bool |
Poll device for current state |
set_mode(Mode) |
CommandResult |
Set operating mode |
set_cool_setpoint(temp) |
CommandResult |
Set cooling target temperature |
set_heat_setpoint(temp) |
CommandResult |
Set heating target temperature |
set_fan_speed(FanSpeed) |
CommandResult |
Set fan speed |
set_vane_direction(VaneDirection) |
CommandResult |
Set vane direction |
Kumo station
KumoStation reads data from headless outdoor units (no control commands).
| Method | Returns | Description |
|---|---|---|
update_status() |
bool |
Poll device for current state |
Enums
Mode-- OFF, COOL, HEAT, DRY, FAN, AUTOFanSpeed-- SUPER_QUIET, QUIET, LOW, POWERFUL, SUPER_POWERFUL, AUTOVaneDirection-- HORIZONTAL, MID_HORIZONTAL, MIDPOINT, MID_VERTICAL, VERTICAL, AUTO, SWING
Network discovery
probe_candidate_ips(devices, candidate_ips) matches device serials to LAN IP addresses by probing with device credentials.
License
MIT
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
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 mitsubishi_comfort-0.1.0.tar.gz.
File metadata
- Download URL: mitsubishi_comfort-0.1.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1344d1106bcb6f2e39fb883d9a3cac9c79aa3e289a8be574b390bf2374cdb24f
|
|
| MD5 |
8fe0f0a271b96e5a900a81c045843745
|
|
| BLAKE2b-256 |
12ae551bd653c331bebd5f9842c501d97c174ed5f236d59607fd3f13bcdcd983
|
Provenance
The following attestation bundles were made for mitsubishi_comfort-0.1.0.tar.gz:
Publisher:
publish.yml on nikolairahimi/mitsubishi-comfort
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mitsubishi_comfort-0.1.0.tar.gz -
Subject digest:
1344d1106bcb6f2e39fb883d9a3cac9c79aa3e289a8be574b390bf2374cdb24f - Sigstore transparency entry: 1237278696
- Sigstore integration time:
-
Permalink:
nikolairahimi/mitsubishi-comfort@e30f04e3f1be2c72c9bbb962186bfe64794501ca -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/nikolairahimi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e30f04e3f1be2c72c9bbb962186bfe64794501ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file mitsubishi_comfort-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mitsubishi_comfort-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
436e80b05616b5b9b173f89355c98c4d5b396df017182a838d952d7be2daf649
|
|
| MD5 |
cfcb9f3872ce73b7ddce44d81dbd8408
|
|
| BLAKE2b-256 |
bcf4b61fec64239b32fd257e4207b6d72e2809dd8f8480e12770727fce1abd63
|
Provenance
The following attestation bundles were made for mitsubishi_comfort-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on nikolairahimi/mitsubishi-comfort
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mitsubishi_comfort-0.1.0-py3-none-any.whl -
Subject digest:
436e80b05616b5b9b173f89355c98c4d5b396df017182a838d952d7be2daf649 - Sigstore transparency entry: 1237278704
- Sigstore integration time:
-
Permalink:
nikolairahimi/mitsubishi-comfort@e30f04e3f1be2c72c9bbb962186bfe64794501ca -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/nikolairahimi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e30f04e3f1be2c72c9bbb962186bfe64794501ca -
Trigger Event:
release
-
Statement type: