Note on this fork: This fork changes default communication to plain HTTP instead of HTTPS for WF-RAC Wi-Fi modules operating on port 51443. This resolves
EPROTO wrong version number/ SSL handshake errors when discovering or controlling units.
Control and automate Mitsubishi Heavy Industries air conditioners directly on your LAN — without a cloud account, subscription or external automation platform.
AircoBridge connects to Smart M-Air / WF-RAC Wi-Fi modules and gives you a polished web dashboard, visual climate automations, live energy insight and a documented REST API. Everything runs locally, including your automations.
| Local by design | Useful automations | More insight |
|---|---|---|
| Talks directly to the air conditioner. No manufacturer cloud or internet connection required. | Build flows visually from temperature, power, mode and time conditions. They keep running when the browser is closed. | See temperatures, energy history and estimated live outdoor-unit power, plus compressor and coil telemetry. |
- Control power, temperature, mode, fan speed, vanes, 3D auto and vacant mode.
- Save named presets and apply a complete configuration with one click.
- Start with a ready-made temperature-control template or create a flow from scratch.
- Combine conditions with AND/OR blocks and connect them to preset or power actions.
- Require a power state to have lasted for a minimum time before an action may run.
- Finish cooling with a managed Clean 30 min → Off cycle.
- Keep manual control in charge until the unit is switched off or automations are resumed.
- Review a local activity log explaining triggers, skipped actions and errors.
- Discover compatible units through mDNS and follow later IP-address changes.
- Integrate other local systems through the JSON REST API and
_aircobridge._tcp.local.
You need Docker with the Compose plugin and an air conditioner already connected to Wi-Fi through the Smart M-Air app. The published image supports AMD64 and ARM64 Linux.
git clone https://github.com/CrazyHenk44/AircoBridge.git
cd AircoBridge
make setup
docker compose up -dOpen http://localhost:3000, click Add air conditioner and follow the setup wizard. It can discover a unit automatically, register the bridge on the Wi-Fi module, test the connection and save the configuration.
To install a newer release later:
make updateConfiguration and runtime data live in the mounted config/ and data/ directories,
so recreating or updating the container keeps your units, presets, history and flows.
Open Automations to create a blank flow or choose + → Templates → Temperature control. The template creates guarded start and stop branches that you can edit like any other flow.
By default, it:
- Starts a selected preset when the temperature conditions match and the unit is off.
- Prevents the stop branch from running until the air conditioner has been on for at least 30 minutes.
- Runs a 30-minute low-fan Clean cycle before switching the unit off.
Flows and their latest 500 meaningful activity events are stored locally. Manual changes made through the dashboard or physical remote pause automation actions for that unit; switching it off or selecting Resume automations hands control back.
AircoBridge targets Mitsubishi Heavy Industries units fitted with a WF-RAC or
WF-RAC-HTTPS module — the modules used by the Smart M-Air mobile app. It connects to
the local Beaver API on port 51443.
Currently verified hardware:
| Indoor unit | Wi-Fi module | Wireless firmware | MCU firmware |
|---|---|---|---|
| SRK50ZS-WF | WF-RAC-HTTPS | 025 | 200 |
Other WF-RAC models are likely compatible because they share the protocol. Reports for other combinations are welcome; please include the model and firmware versions but no device identifiers or credentials.
Everything in the dashboard uses the same JSON API that is available to your own local integrations:
curl -X POST http://localhost:3000/api/aircos/living-room/power \
-H 'content-type: application/json' \
-d '{"power":"on"}'See docs/api.md for air-conditioner controls, presets, automations, activity logs and feature detection.
A unit normally appears online within one polling interval (30 seconds by default). Start with:
docker compose ps
docker compose logs -f airco
curl -s http://localhost:3000/api/aircosConnection problems are usually caused by VLAN isolation, blocked mDNS traffic, an incorrect address or unavailable operator slot. Manual configuration, network-interface selection, registration and Docker Desktop notes are covered in docs/advanced.md.
- API reference — controls, presets, automations and integration details.
- Advanced setup — configuration, networking, CLI and debugging.
- Architecture — service components and persistent state.
- WF-RAC protocol notes — Beaver messages and operation data.
AircoBridge has no built-in user authentication and communicates with the module over
its self-signed TLS connection. Run it only on a trusted LAN and never expose port
3000 directly to the internet. See SECURITY.md for the threat model and
reporting process.
Compatibility reports, bug reports and pull requests are welcome. See CONTRIBUTING.md for the contribution workflow and required checks.
Protocol knowledge builds on the reverse-engineering work of jeatheak/Mitsubishi-WF-RAC-Integration, JobDoesburg/homebridge-mhi-wfrac and mcheijink/WF-RAC.

