@ikuwow/homebridge-mitsubishi-aircon
v2.0.0
Published
Homebridge plugin for Mitsubishi air conditioners (Kirigamine REMOTE / RacEstVis Web service, Japan)
Maintainers
Readme
@ikuwow/homebridge-mitsubishi-aircon
Homebridge plugin for Mitsubishi air conditioners that talk to the Japanese 霧ヶ峰 REMOTE (RacEstVis) Web service. Fork of japaniot/homebridge-mitsubishi-aircon.
Why this fork
The upstream plugin uses two Homebridge APIs that were removed in
Homebridge v2 (PlatformAccessory.reachable /
PlatformAccessory.updateReachability), so it fails to load on v2. There
is no actively maintained alternative for the Japan-only Kirigamine
REMOTE / RacEstVis backend, so this fork keeps the existing reverse
engineered protocol implementation and rebuilds the surrounding
packaging.
From 2.0.0 the plugin loads on both Homebridge ^1.8.0 and ^2.0.0.
The two removed-API calls were deleted; in v1.x they were already
documented no-ops (updateReachability's body is a single property
assignment with no HAP-layer effect), so v1.x behavior is unchanged.
Requirements
- Homebridge
^1.8.0 || ^2.0.0 - Node.js
^20 || ^22 || ^24
Installation
Homebridge UI:
- Open the Homebridge UI's Plugins tab.
- Search for
@ikuwow/homebridge-mitsubishi-aircon(paste the full scoped name; it may not appear in autocomplete). - Install and configure via the rendered form.
CLI:
npm install -g @ikuwow/homebridge-mitsubishi-airconConfiguration
{
"platforms": [
{
"platform": "MitsubishiAircon",
"name": "Mitsubishi Aircon",
"user": "USERNAME",
"pass": "PASSWORD",
"useDryForCool": false
}
]
}| Key | Type | Required | Description |
|---|---|---|---|
| platform | string | yes | Must be MitsubishiAircon. |
| name | string | yes | Display label for the platform instance in the Homebridge UI and logs. The plugin itself does not read this value. |
| user | string | yes | 霧ヶ峰 REMOTE / くらしID account username. |
| pass | string | yes | Password for the same account. |
| useDryForCool | boolean | no | When true, "Cool" in HomeKit drives the unit's dry (除湿) mode instead of standard cooling. Defaults to false. |
Notes
- The plugin talks to
https://wwwl12.mitsubishielectric.co.jp/RacEstVis/using a third-party reverse engineering of the Mitsubishi RAC command protocol (no public spec). Mitsubishi may change or retire this endpoint at any time. - The maintainer's account is migrated to MyMU / くらしID and the RacEstVis endpoint still responds for the legacy session flow as of the latest release. Other migrated accounts have not been tested; please open an issue if login fails.
References
- Upstream plugin: https://github.com/japaniot/homebridge-mitsubishi-aircon
- Homebridge plugin development: https://developers.homebridge.io/
- Updating to Homebridge v2.0: https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0
- HAP-NodeJS HeaterCooler service: https://developers.homebridge.io/#/service/HeaterCooler
- Plugin config schema spec: https://developers.homebridge.io/#/config-schema
Releasing
Releases are automated via release-please and gated through pull requests.
- Land changes on
masterusing Conventional Commits in the commit message (or, if you Squash & Merge, in the PR title):feat: ...for new features (minor bump)fix: ...for bug fixes (patch bump)feat!: ...or aBREAKING CHANGE:footer for breaking changes (major bump)chore:,docs:,refactor:,test:,ci:,build:do not trigger a release on their own — use these for workflow / CI / infrastructure / dev-tooling changes that should not open a Release PR by themselves.github/workflows/*edits should default toci:orchore:unless the change itself ships a user-facing fix
- release-please opens (or updates) a "Release PR" with the next version and a
CHANGELOG.mddiff. Review and merge it. - Merging the Release PR creates the GitHub Release + git tag and publishes the package to npm automatically.
To force a specific version, add a Release-As: footer to any commit on master.
If npm publish fails after the GitHub Release was already created (e.g. transient registry issue or a missing Trusted Publisher configuration), re-run only the failed jobs from the workflow run page (Actions tab → the failed run → "Re-run failed jobs"). The tag and Release are reused; only the publish job replays.
