Home Assistant custom integration for Mitsubishi Heavy Industries ACs with the WF-RAC-HTTPS Wi-Fi adapter. Controls the AC entirely over local Wi-Fi without cloud or account. Proper HomeAssistant integration.
| Entity | Type | Description |
|---|---|---|
climate.<name> |
Climate | On/off, modes (auto/cool/heat/fan/dry), temp 16–31 °C (0.5° steps), fan auto/1–4, vertical swing (swing + 4 positions), 3D Auto preset |
select.<name>_horizontal_vane |
Select | Horizontal vane: normal / both_left / left_center / both_center / center_right / both_right / wide / swing |
sensor.<name>_indoor_temperature |
Sensor | Indoor temperature (°C) — parsed from the airconStat blob |
sensor.<name>_outdoor_temperature |
Sensor | Outdoor temperature (°C) — parsed from the airconStat blob |
Extra state attributes on the climate entity: indoor_temp, outdoor_temp, auto_heating (frost protection, read-only), led_stat, num_of_account, model_type.
- Open HACS in Home Assistant.
- Go to Integrations → ⋮ → Custom repositories.
- Add
https://github.com/LabyDev/KazeMBridgewith category Integration. - Click Download on the KazeMBridge card.
- Restart Home Assistant.
- Copy
integration/custom_components/kazembridge/into your HAconfig/custom_components/directory. - Restart Home Assistant.
- Go to Settings → Integrations → Add Integration and search for KazeMBridge.
- If your adapter is on the local network, Home Assistant may detect it automatically via mDNS and show a discovery notification: just confirm the IP address.
- Or add it manually by entering the adapter's local IP address.
The integration generates a UUID operator ID and registers it with the AC on first setup.
A custom Lovelace card with visual vane controls is bundled inside the integration and registered automatically — no manual resource installation needed.
type: custom:kazembridge-card
entity: climate.mhi_ac
indoor_sensor: sensor.mhi_ac_indoor_temperature # optional
outdoor_sensor: sensor.mhi_ac_outdoor_temperature # optionalThe card shows:
- Mode buttons (Off / Auto / Cool / Heat / Fan / Dry)
- Temperature control with optimistic UI (updates instantly, syncs to AC within ~5 s)
- Animated vane diagrams — front view (horizontal airflow) and side view (vertical airflow)
- Vertical and horizontal vane position selectors with visual louver icons
- Fan speed selector
- 3D Auto (Entrust) toggle
- Frost Protection badge (read-only) — shown when the adapter reports
autoHeating = 1 - Presets — save/apply/delete named setting combinations, per-AC or global
- Indoor and outdoor temperature chips (when sensor entities are configured)
- Supports English and Dutch UI (follows your HA language setting)
The WF-RAC adapter advertises itself on the local network as an mDNS service of type _beaver._tcp.local. Home Assistant detects this automatically when KazeMBridge is installed, and will show a notification in the Integrations panel. You only need to confirm the IP address.
- MHI AC with a WF-RAC-HTTPS Wi-Fi adapter reachable on your local network
- Home Assistant 2024.1.0 or newer
- Recommended: assign a static DHCP lease to the adapter via your router
integration/
custom_components/
kazembridge/
__init__.py Entry point — sets up API, coordinator, platforms
manifest.json Integration metadata (includes zeroconf declaration)
hacs.json HACS metadata
const.py Domain constants and mode/position mappings
config_flow.py UI setup flow (manual IP entry + mDNS auto-discovery)
api.py aiohttp HTTPS client for the device API
coordinator.py DataUpdateCoordinator — polls every 30 s
mhi_codec.py Binary blob encoder/decoder
climate.py ClimateEntity
sensor.py Indoor + outdoor temperature SensorEntity
select.py Horizontal vane SelectEntity
translations/
en.json English strings (config flow)
nl.json Dutch strings (config flow)
www/
kazembridge-card.js Custom Lovelace card (auto-registered)
tools/
mhi_codec.py Standalone CLI codec — decode/encode blobs for debugging
research/
research.md Full reverse-engineered API and binary protocol documentation
python tools/mhi_codec.pyDecodes a sample blob and shows a round-trip encode→decode result. Useful for verifying protocol changes before deploying.
The WF-RAC adapter exposes a local HTTPS API on port 51443. All AC state is packed into a binary blob (airconStat) encoded as base64. The integration decodes this blob to read state and re-encodes it to send commands. See research/research.md for the full API and encoding documentation.
This project is licensed under the GNU General Public License v3.0 or later, see LICENSE.
The MHI WF-RAC binary protocol documented in research/research.md was obtained through reverse engineering for the sole purpose of achieving interoperability with third-party software (Home Assistant). EU Directive 2009/24/EC, Article 6 permits decompilation and reverse engineering under these conditions; contractual provisions that purport to restrict this exception are unenforceable under EU law. The Netherlands implements this in the Auteurswet, Article 45m.
Mitsubishi Heavy Industries retains all rights to their firmware, protocol, and trademarks. This project is not affiliated with or endorsed by MHI.
- Hi / Eco / Silent / Allergy / Night setback / Timers — present in the SmartM-Air app but absent from the local binary protocol. Not controllable via this integration.
- Frost protection / LED / auto-heating — readable from the local API but only writable via the cloud
setOptionSettingendpoint. Shown as read-only attributes. - The AC takes approximately 5 seconds to apply a command and report the new state back.