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.0.tar.gz (82.8 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.0-py3-none-any.whl (51.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydaikin-2.19.0.tar.gz
  • Upload date:
  • Size: 82.8 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.0.tar.gz
Algorithm Hash digest
SHA256 c0b04dc0d8598f89325ac60be7c908df29d2e38d686a3369fe6ec17d1504b385
MD5 443cc84b16a02d9b41f752db57fc838e
BLAKE2b-256 f05284551257a9929c1be6142dc8b479bd94701c6feee0f4a38e68ba2f0db567

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydaikin-2.19.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: pydaikin-2.19.0-py3-none-any.whl
  • Upload date:
  • Size: 51.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ab42d5a5140efd594d9cbaa7ba4f23aab1defbb54fd0b70e9a72e33ef7ef1e8
MD5 be2a831a0aeeeb8b1f86bec9f4815433
BLAKE2b-256 35c0e363638130dec7f630838b01ab8a3b1264292e209d37ecfc2bd3970499d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydaikin-2.19.0-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

2.19.1

2 files

This release

2.19.0 This release

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