Skip to main content

PyPI - License PyPI - Downloads PyPI - Version

Test Python package Pylint codecov GitHub Pull Requests GitHub Issues

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: 2 entries (indoor unit, outdoor unit, weekly energy and adapter info).
  • Writes are op: 3 entries that walk the dgc_status tree 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 off
  • device.set({'mode': 'cool'}) turns the unit on and switches mode
  • device.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) and swing
  • 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 failing init() (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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydaikin-2.19.1.tar.gz (83.4 kB view details)

Uploaded Source

Built Distribution

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

pydaikin-2.19.1-py3-none-any.whl (52.2 kB view details)

Uploaded Python 3

File details

Details for the file pydaikin-2.19.1.tar.gz.

File metadata

  • Download URL: pydaikin-2.19.1.tar.gz
  • Upload date:
  • Size: 83.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pydaikin-2.19.1.tar.gz
Algorithm Hash digest
SHA256 8539fd5c7cd6c1d7b0c9e657b708b81044a33f7f71be52d2580052cfc3a3bbbc
MD5 92b2de4055bc2393306179ab70921058
BLAKE2b-256 2a64f16574ad95d639f8c6784fb4cd6e9b28133b38b9399eb5c5ac9531ec6312

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydaikin-2.19.1.tar.gz:

Publisher: release.yml on fredrike/pydaikin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydaikin-2.19.1-py3-none-any.whl.

File metadata

  • Download URL: pydaikin-2.19.1-py3-none-any.whl
  • Upload date:
  • Size: 52.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pydaikin-2.19.1-py3-none-any.whl
Algorithm Hash digest
SHA256 878246fc53b5bb98326e2e84ffee5bfd2d81ef78afa7b3e0e8ce2cc95544d765
MD5 7664f9cee38cc78a2ba529726ab757fc
BLAKE2b-256 7dc567c0e073048989cb040980e78a43ca10b8eb84f1abe9ee17cfd9785b2669

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydaikin-2.19.1-py3-none-any.whl:

Publisher: release.yml on fredrike/pydaikin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.19.1 This release

2 files

2.19.0

2 files

2.18.5

2 files

2.18.4

2 files

2.18.3

2 files

2.18.2

2 files

2.18.1

2 files

2.18.0

2 files

2.17.2

2 files

2.17.1

2 files

2.17.0

2 files

2.16.1

2 files

2.16.0

2 files

2.15.0

2 files

2.14.1

2 files

2.14.0

2 files

2.13.8

2 files

2.13.7

2 files

2.13.6

2 files

2.13.5

1 file

2.13.4

2 files

2.13.3

1 file

2.13.2

1 file

2.13.1

1 file

2.13.0

1 file

2.12.0

1 file

2.11.1

1 file

2.11.0

1 file

2.10.6

1 file

2.10.5

1 file

2.10.4

1 file

2.10.3

1 file

2.10.2

1 file

2.10.1

1 file

2.10.0

1 file

2.9.1

1 file

2.9.0

1 file

2.8.0

1 file

2.7.2

1 file

2.7.1

1 file

2.7.0

1 file

2.6.2

1 file

2.6.1

1 file

2.6.0

1 file

2.5.0

1 file

2.4.4

1 file

2.4.3

1 file

2.4.2

1 file

2.4.1

1 file

2.4.0

1 file

2.3.1

1 file

2.3.0

1 file

2.2.0

1 file

2.1.4

1 file

2.1.3

1 file

2.1.2

1 file

2.1.1

1 file

2.1.0

1 file

2.0.5

1 file

2.0.4

1 file

2.0.3

1 file

2.0.2

1 file

2.0.1

1 file

2.0.0

1 file

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.1

2 files

1.5.0

2 files

1.4.6

1 file

1.4.5

1 file

1.4.4

1 file

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.9.1

2 files

0.9

2 files

0.8

2 files

0.7

2 files

0.6

2 files

0.5

1 file

0.4

1 file

0.3

1 file

0.1

1 file

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