npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-daikin-local-platform

v1.5.1

Published

Homebridge platform plugin providing HomeKit support for Daikin air conditioners with local control

Readme

Homebridge Daikin Local Platform

GitHub version npm version

homebridge-daikin-local-platform is a dynamic platform plugin for Homebridge that provides HomeKit support for Daikin climate devices to be controlled.

How it works

The plugin communicates with your AC units through the local api from devices. This means your units must be set up there and connect to lan before you can use this plugin.

What you get in HomeKit

Each configured unit appears as one accessory with:

  • Heater Cooler — power, operation mode (only the modes the unit actually supports; see also climateCoolingOnly), target temperature and the current room temperature.
  • Swing — the standard HomeKit swing toggle, on units with swing-capable vanes (on = every supported axis swings, off = vanes fixed). Separate per-axis switches are available as an option, see climateSwingSwitches.
  • Fan — speed steps 0–6: 0 = automatic, 1 = quiet, 2–6 = fan levels 1–5. Turning the fan off selects automatic speed.
  • Humidity sensor and outdoor temperature sensor, on units that report those readings.

Supported devices

The plugin auto-detects, per IP address, which of the two local protocols the unit speaks — no configuration needed:

  • Newer adapters (firmware 2.8.0+) using the JSON /dsiot/multireq API (e.g. BRP069C4x and recent built-in WiFi modules).
  • Legacy adapters using the query-string API (/common/basic_info, /aircon/get_control_info, ...) — the same devices supported by the Home Assistant Daikin integration via BRP069-style adapters (BRP069A/Bxx and built-in WiFi units of the same era). Set semantics follow pydaikin.
  • AirBase (BRP15B61) adapters, common on Australian ducted systems — same query-string API under a skyfi/ path prefix, with the AirBase mode and 3-speed fan numbering. Zone control is not exposed yet.
  • Secure BRP072C-style adapters (external adapters such as the US BRP072C42, paired with the Daikin Comfort Control app) — same query-string API, but served only over HTTPS after registering the 13-digit key printed on the adapter sticker. Add the key via climateKeys (see below); everything else is auto-detected.

You can verify which protocol your unit speaks: http://<ip>/common/basic_info answers ret=OK,... on a legacy unit, http://<ip>/skyfi/common/basic_info on an AirBase unit; newer units answer on /dsiot/multireq. A unit that answers /common/basic_info but returns page not found for /aircon/get_control_info is either a secure BRP072C-style adapter (HTTPS answers on port 443 — configure its key) or a cloud-only unit (port 443 closed — see below). SkyFi (password-based) adapters are not supported yet.

Cloud-only units (no local API)

Daikin's newest adapter generation cannot be controlled locally at all. This includes the European BRP069C4x/C8x adapters and the US FTXM-W "ATMOSPHERA" (FTXMxxWVJU9) built-in WiFi modules — the ones set up with the Daikin Comfort Control app. These units answer http://<ip>/common/basic_info (reporting adp_kind=4 and method=polling) but return page not found for every control endpoint, listen on no other port, and are driven exclusively through Daikin's cloud — the app stops working as soon as the unit's internet access is blocked, even from inside the same network. No LAN-based integration (this plugin, Home Assistant's, or any other) can control this hardware; see issue #17 for the full investigation. Realistic alternatives are an ESP32-Faikin board wired to the indoor unit's serial service port (it replaces the cloud module's role and provides full local control) or an IR blaster.

Homebridge setup

Configure the plugin through the settings UI or directly in the JSON editor.

In the settings UI, the device list scans your local network automatically (UDP broadcast) and shows the Daikin units it finds — one click adds a unit, and for secure BRP072C units (marked 🔒) the edit form opens right away so you can enter the 13-digit key. Note that the scan cannot cross subnets or leave a Docker bridge network (use host networking, or enter the IP manually — tick Secure adapter in the edit form if such a unit needs a key).

{
  "platforms": [
    {
        "platform": "Daikin Local Platform",
        "name": "Daikin Local Platform",
        "climateIPs": ["ipv4-here"],
        "climateKeys": [
            {"ipv4-here": "13-digit-key-here"}
        ],
        "climateCoolingOnly": ["ipv4-here"],
        "climateSwingSwitches": ["ipv4-here"],
        "language": "en",
        "debugMode": false,
    }
  ]
}

Required:

  • platform (string): Tells Homebridge which platform this config belongs to. Leave as is.

  • name (string): Will be displayed in the Homebridge log.

  • climateIPs (array): The IP addresses of the Daikin climate devices to be controlled.

Optional:

  • climateKeys (array): Only needed for secure BRP072C-style adapters (see Supported devices). One object per unit mapping its IP address (exactly as written in climateIPs) to the 13-digit key printed on the adapter/unit sticker. Units without a key entry are auto-detected as before. In the Homebridge UI the key is entered by editing the device in the plugin settings; the settings UI keeps this mapping in sync with the device list automatically.

  • climateCoolingOnly (array): Units to expose as cooling-only in HomeKit, by IP address exactly as written in climateIPs. Heating and Auto are hidden in the Home app — for cool-only models (common in South-East Asia) whose WLAN firmware still reports heating, which the plugin's mode auto-detection cannot see through. In the Homebridge UI this is the Cooling only switch in the device's edit form. The option only hides modes, it never adds one.

  • climateSwingSwitches (array): Units that get separate Vertical Swing and Horizontal Swing switches in HomeKit, by IP address exactly as written in climateIPs. Units with swing-capable vanes always get the standard HomeKit swing toggle on the AC tile (on = all supported axes swing, off = all fixed); these extra switches add independent per-axis control, since HomeKit itself has no four-way swing selector. In the Homebridge UI this is the Swing switches option in the device's edit form. Axes the unit does not support are never exposed.

  • language (string): Language for the default HomeKit names of the switches and sensors this plugin creates — e.g. Outdoor Temperature, Vertical Swing, Horizontal Swing — which HomeKit does not translate itself. The options are the same language codes as the Homebridge UI language setting (en, de, zh-TW, ja, ...), and the plugin settings UI defaults the dropdown to the language your Homebridge UI is displayed in. Defaults are only applied while a service still carries a plugin-default name: anything you renamed in the Home app is never touched, and changing the language later renames only the untouched services. Absent means English.

  • debugMode (boolean): If true, the plugin will print debugging information to the Homebridge log.

Troubleshooting

  • If you have any issues with this plugin, enable the debug mode in the settings (and restart the plugin). This will print additional information to the log. If this doesn't help you resolve the issue, feel free to create a GitHub issue and attach the available debugging information.

  • If the plugin affects the general responsiveness and reliability of your Homebridge setup, you can run it as an isolated child bridge.

Contributing

You can contribute to this project in the following ways:

  • Test/use the plugin and report issues and share feedback.

  • Review source code changes before and after they are published.

  • Contribute with your own bug fixes, code clean-ups, or additional features (pull requests are accepted).

Acknowledgements

  • Thanks to やまでん for protocol detail.
  • Thanks to the team behind Homebridge. Your efforts do not go unnoticed.

Disclaimer

All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.