PyDaikin
PyDaikin is a Python library for controlling Daikin air conditioners. It provides both a standalone command-line interface and a Python API for integrating Daikin AC control into your applications.
Supported Devices
The following Daikin WiFi modules are currently supported:
- BRP069Axx/BRP069Bxx/BRP069B4x/BRP072Axx - Standard WiFi adapters
- BRP15B61 (AirBase) - Uses a similar protocol to BRP069Axx
- BRP072B/Cxx - Requires HTTPS access and an authentication key
- BRP084 - Devices with firmware version 2.8.0 (uses a different API structure)
- SKYFi - Uses a different protocol and requires a password
Quick Start
Here's a simple example for connecting to a Daikin air conditioner:
import asyncio
import logging
import aiohttp
from pydaikin.daikin_base import Appliance
from pydaikin.factory import DaikinFactory
HOST = "10.1.1.21"
logging.basicConfig(level=logging.INFO)
_LOGGER = logging.getLogger(__name__)
async def main():
async with await DaikinFactory(HOST) as device:
await device.update_status()
device.show_sensors()
if __name__ == "__main__":
asyncio.run(main())
The DaikinFactory automatically detects your device type and firmware version, creating the appropriate device instance.
Firmware Version 2.8.0 Support
Firmware version 2.8.0 introduces a different API structure compared to earlier versions. PyDaikin automatically detects and handles this firmware version.
API structure
Unlike the older CGI-based adapters (BRP069 family), firmware 2.8.0 exposes a single JSON endpoint, POST /dsiot/multireq:
- Status reads are batch requests containing four
op: 2entries (indoor unit, outdoor unit, weekly energy and adapter info). - Writes are
op: 3entries that walk thedgc_statustree down to the parameter to change.
Full request/response examples are in docs/sample_requests/brp084/.
Power semantics
The behaviour of device.set(...) was validated against the unit's behaviour (see tests/test_daikin_brp084.py):
device.set({})turns the unit on (the Home Assistant toggle-switch path)device.set({'mode': 'off'})turns the unit offdevice.set({'mode': 'cool'})turns the unit on and switches modedevice.set({'stemp': 25.0})sets the temperature only; a powered-off unit stays off
Supported features
- Comfort airflow, Econo, Outdoor-quiet and Powerful toggles - Powerful and the trio (Comfort/Econo/Outdoor-quiet) are mutually exclusive, matching the remote's last-button-pressed-wins behaviour
- Discrete vertical vane control -
off,down(floor) andswing - Swing on the vertical and horizontal axes, per mode
- Sensors - indoor/outdoor temperature, humidity, compressor temperature, decoded indoor/outdoor model strings and adapter firmware/API version
- Energy data - daily runtime and weekly consumption
- Sub-zero outdoor temperatures - sensor values are decoded as little-endian signed hex, so negative readings are handled correctly
- Auto mode without a setpoint - some units (e.g. the Urusara X, model
W-SRTA322F) only expose cool/hot setpoints and report no auto setpoint (e_3001/p_1D); the target temperature then degrades to--instead of failinginit()(issue #72)
Confirmed working with:
- FTKM20YVMA
- FTXM46WVMA
- FTXV80WVMA
- FTXA25C2V1BW
- FTXA50C2V1BW
If you have a device with firmware 2.8.0 that is not working correctly, please open an issue with your device model and debug logs.
Unsupported Devices
The following device and firmware combinations are not currently supported:
- BRP069C4x with firmware version 2.0.0
About
PyDaikin was originally created by Yari Adan and is currently maintained by Fredrik Erlandsson.
Metadata
Release files for pydaikin 2.20.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydaikin-2.20.0.tar.gz | 84.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydaikin-2.20.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 137.8 kB
Release files / pydaikin-2.20.0.tar.gz
| Download URL | pydaikin-2.20.0.tar.gz |
|---|---|
| Size | 84.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a069e484b612a588a47a062bcfa2bc0bf8cc46314cf62c3a87f94c431f5ba9b
|
|
BLAKE2b-256 checksum How to use checksums |
837c821ddc1cf6c813e84ea49a61c644fe07ea6404e2bf230a848849d0963e66
|
| 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 Sep 18, 2026.
Transparency logRelease files / pydaikin-2.20.0-py3-none-any.whl
| Download URL | pydaikin-2.20.0-py3-none-any.whl |
|---|---|
| Size | 52.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08b07c2596d97bd8aabb6640f4fcd7e7a4a42c973ad3dce6ef03f3c2be1eb89b
|
|
BLAKE2b-256 checksum How to use checksums |
79beaa2edd24123774924835858ba1a5256760d9e52e85d81b39985c78f83f8a
|
| 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 Sep 18, 2026.
Transparency log