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-airconditioner-mitsubishi-au-nz-v2

v1.3.23

Published

Control your Mitsubishi Aircon units with Homebridge and Apple HomeKit

Readme

Homebridge Melview AU/NZ Airconditioners

Based on the excellent work of aurc (https://github.com/aurc) who unfortunately has not been active in quite some time hence the partial rewrite for Homebridge 2.0.

Control your Mitsubishi Electric air conditioner through Apple HomeKit using Homebridge and your existing Mitsubishi Wi-Fi Control account.

Features

All units (standard):

  • Power — ON / OFF
  • Mode — Auto / Heat / Cool
  • Target temperature — Set independently for heating and cooling modes
  • Current temperature — Live room temperature readings
  • Issue status — Integrated on the main tile via StatusFault (fault or offline)
  • Outdoor temperature — Live outdoor unit temperature, exposed as a separate Temperature Sensor tile (optional, enable with outdoorTemp: true)
  • Vertical airflow swing — Enabled automatically on supported models (swing vs. fixed position)

Optional / model-dependent:

  • Fan speed — Auto, Low, Medium-low, Medium, Medium-high, High (6 discrete stages mapped to 0–100%)
  • Dry (dehumidifier) mode — Exposed as a separate Dehumidifier accessory, with independent fan speed control
  • Fan-only mode — Exposed as a separate Fan accessory; circulates air without heating or cooling
  • Horizontal airflow swing — Exposed as a Switch accessory on models with a horizontal louvre motor

Dual-path command delivery

Commands are sent via the Melview cloud API and, where a LAN IP is available, also sent simultaneously to the unit's local Wi-Fi interface. This means the unit responds faster than cloud-only integrations (no visible lag in the Home app) while still working correctly when you're away from home.

Compatibility

Any Mitsubishi Electric unit that works with the Mitsubishi Wi-Fi Control app is supported. Tested against:

| Model | Wi-Fi Module | |---|---| | MSZ-GL71VGD | MAC-568IF-E | | MSZ-GL35VGD | MAC-568IF-E | | MSZ-AP25VGD | MAC-568IF-E |

Requirements

  • Homebridge v1.6.0 or later (v2.0.0 supported)
  • Node.js ^18.20.4 or ^20.15.1 or ^22 or ^24
  • An active Mitsubishi Wi-Fi Control account

Installation

Homebridge UI (recommended)

Search for homebridge-airconditioner-mitsubishi-au-nz-v2 in the Homebridge plugin search, install it, then fill in your credentials in the plugin settings screen.

CLI

npm install -g homebridge-airconditioner-mitsubishi-au-nz-v2

Configuration

All configuration is done via the Homebridge UI settings panel or by editing config.json directly.

| Field | Type | Required | Default | Description | |---|---|---|---|---| | user | string | yes | — | Your Mitsubishi Wi-Fi Control email address | | password | string | yes | — | Your Mitsubishi Wi-Fi Control password | | dry | boolean | no | false | Enable Dehumidifier accessory for dry mode | | fanMode | boolean | no | false | Enable Fan accessory for fan-only mode | | swingMode | boolean | no | false | Enable vertical airflow swing on the main AC tile. Enable only if needed; some units reject swing commands during power transitions. | | airflowH | boolean | no | false | Enable horizontal airflow swing. Horizontal swing is not supported by many units. | | fanSpeed | boolean | no | false | (experimental) Enable fan speed slider on a separate Fan accessory (auto-added) | | fanSpeedOnMainTile | boolean | no | false | (advanced) Also show fan speed slider on the main AC tile (requires fanSpeed: true) | | outdoorTemp | boolean | no | false | Enable outdoor temperature sensor (when reported by the unit) | | pollIntervalSeconds | integer | no | 30 | State polling interval in seconds (range 5 to 300) | | perUnitOverrides | array | no | — | Optional per-unit override objects keyed by unitId |

Example config.json

{
  "platforms": [
    {
      "platform": "MitsubishiAUNZ",
      "user": "[email protected]",
      "password": "yourpassword",
      "dry": true,
      "fanMode": true,
      "swingMode": false,
      "airflowH": false,
      "fanSpeed": false,
      "fanSpeedOnMainTile": false,
      "outdoorTemp": false,
      "pollIntervalSeconds": 30,
      "perUnitOverrides": [
        {
          "unitId": "1234567890",
          "fanSpeed": true,
          "fanSpeedOnMainTile": true,
          "pollIntervalSeconds": 15
        }
      ]
    }
  ]
}

HomeKit Services

Each AC unit is registered as an Air Conditioner accessory and can expose up to four HomeKit services depending on the unit's capabilities and your configuration.

Heater / Cooler (always present)

The main service. Provides:

  • Active (power)
  • Current state (idle / heating / cooling)
  • Target state (auto / heat / cool)
  • Current temperature
  • Heating threshold temperature
  • Cooling threshold temperature
  • Status fault (StatusFault) — shows an issue when the unit reports an error or is offline
  • Swing mode (vertical) — shown automatically on supported models

Fan speed mapping

Mitsubishi units have up to five physical fan stages plus an auto mode. These are mapped to HomeKit's 0–100% rotation speed slider in steps of 20%:

| HomeKit % | Melview fan stage | Label | |---|---|---| | 0 % | 0 | Auto | | 20 % | 1 | Low | | 40 % | 2 | Medium-low | | 60 % | 3 | Medium | | 80 % | 5 | Medium-high | | 100 % | 6 | High (Turbo) |

The slider is constrained to these values — dragging to any other position snaps to the nearest valid stage.

Vertical airflow swing (swingMode: true)

On units where hasswing or hasairdir is reported by the API, a Swing Mode toggle can be added to the Heater/Cooler service by setting swingMode: true (disabled by default):

  • Swing enabled → continuous up/down sweep
  • Swing disabled → fixed at top position

Note: Swing mode control is disabled by default because some units reject swing commands during power state transitions, which can interfere with tile toggle reliability. If you don't enable swingMode in the config, simply set your unit to Auto swing mode using your physical remote or the Mitsubishi app, and it will automatically manage vertical airflow without HomeKit involvement.

Outdoor Temperature Sensor (outdoorTemp: true)

When enabled, a read-only Temperature Sensor tile is added alongside the main Heater/Cooler accessory showing the live outdoor unit temperature. The sensor is only registered when the Melview API returns a numeric value for that unit — if your unit does not report outdoor temperature it is silently skipped even when the option is on.

Health/offline state is integrated into the main Air Conditioner tile via StatusFault instead of a separate health accessory tile.

Dehumidifier / Dry mode (dry: true)

When enabled, a Humidifier / Dehumidifier accessory is added for units that report hasdrymode in their capabilities. It provides:

  • Active (power, forces DRY mode on activation)
  • Fan speed (shares the same fan speed slider)

This mode dehumidifies the room without the full heating/cooling cycle.

Fan-only mode (fanMode: true)

When enabled, a Fan accessory is added. Activating it powers the unit in fan-only mode (circulates air, no temperature conditioning).

Fan speed control (fanSpeed: true, experimental)

Disabled by default. When enabled, a fan speed slider (Auto / Low / Medium / High) appears on a separate Fan service, which is added automatically even if fanMode is left disabled.

To also show fan speed on the main Air Conditioner tile, set:

  • fanSpeed: true
  • fanSpeedOnMainTile: true

Note: Due to the way HomeKit caches characteristic values, enabling fan speed can cause the unit to briefly jump to a high fan stage on startup. The plugin includes a 5-second startup guard that ignores incoming set commands during bridge reconnect, which mitigates but may not fully eliminate this behaviour on all controllers.

Horizontal airflow swing (airflowH: true)

When enabled and the unit reports hasairdirh, a Switch accessory is added:

  • ON → horizontal louvre sweeps continuously left–right
  • OFF → louvre returns to centre fixed position

Horizontal airflow swing is not supported by many Mitsubishi units, so this option may not appear even when enabled.

State polling

The plugin polls each unit's status every 30 seconds by default (configurable via pollIntervalSeconds, from 5 to 300) to keep readings and mode indicators current in the Home app without needing manual refresh.

Per-unit overrides (perUnitOverrides)

Use perUnitOverrides to apply different options per unit ID (for example, enabling fan speed only in one room, or polling one critical unit more frequently).

Each override object supports these optional keys:

  • dry
  • fanMode
  • airflowH
  • fanSpeed
  • fanSpeedOnMainTile
  • outdoorTemp
  • pollIntervalSeconds

Known Issues

  • LAN fallback — The plugin always authenticates via the Melview cloud. The local LAN command is sent as a fast-follower after the cloud acknowledgement but cannot function standalone without internet.
  • Dry mode fan speed — Fan speed changes during dry mode are sent to the unit but most models don't visibly acknowledge the stage change while dehumidifying.
  • Node ≥ 18.15 required — This plugin uses the native fetch API introduced in Node 18. Earlier versions are not supported.

Credits