# Serin Labs: full site text > CN105 ESP32 controllers for local, cloud-free Mitsubishi heat-pump control. Use Home Assistant, Apple Home and Siri, Google Home, or Amazon Alexa. Every page of https://serin-labs.com/ that a buyer or installer reads, as Markdown. The index is https://serin-labs.com/llms.txt; each page below is also served on its own at the Source URL with .md in place of .html. --- # Mitsubishi Mini-Split Smart Controller — CN105 ESP32 > Add local smart control to a Mitsubishi mini-split with a CN105 ESP32 controller. Use Home Assistant, Apple Home and Siri, Google Home, or Alexa. Source: https://serin-labs.com/ Last updated: 2026-10-24 CN105 · ESP32 · 100% local # Smart control for Mitsubishi mini-splits The Serin Controller is a pre-assembled CN105 ESP32 controller for Mitsubishi Electric mini-splits. It communicates directly with the heat pump, with no cloud account or subscription. Pre-assembled CN105 controller. Works with Home Assistant, Apple Home, Google Home, or Alexa. No cloud, no subscription. [Buy now from $35](https://serin-labs.com/controller.html) [Check compatibility](https://serin-labs.com/compatibility.html) - [**5.0** · 42 reviews](https://shop.serin-labs.com/pages/reviews) - Free US shipping ![The Serin Controller with its orange braided CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/nav-serin-controller.webp.20c1f4621949.webp) ## Control it from the app you already use The same hardware supports five platforms. Pick yours to see its features and requirements. [Apple Home](https://serin-labs.com/homekit/features.html) [Home Assistant](https://serin-labs.com/esphome/features.html) [Google Home](https://serin-labs.com/google-home.html) [Alexa](https://serin-labs.com/alexa.html) [SmartThings](https://serin-labs.com/smartthings.html) ![The Home Assistant thermostat card for the mini-split, cooling to 75.2 degrees with fan and swing controls](https://serin-labs.com/assets/content/620/mitsubishi-mini-split-home-assistant-thermostat-control.webp.7fa811cf594c.webp) Home Assistant ![The Home app thermostat screen for the mini-split, set to cool to 76 degrees](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-control.webp) Apple Home ![The Google Home thermostat screen for the mini-split, heating to 74 degrees with the room at 68](https://serin-labs.com/assets/content/620/mitsubishi-mini-split-google-home-thermostat-control.webp.dd4b80496054.webp) Google Home ## From compatibility check to local control 1. ### Confirm compatibility Enter your indoor-unit model number to check CN105 compatibility before ordering. 2. ### Install the controller The guide covers board preparation, turning off HVAC power, and connecting the cable to CN105. 3. ### Finish setup in your app Complete setup in Home Assistant, Apple Home, Google Home, or Alexa. [Check your model](https://serin-labs.com/compatibility.html) [Read the quick start →](https://serin-labs.com/setup.html) ## Controllers and accessories Serin Controller and Serin Link are available to order. Multi-Zone Controller is in development. Available now · from $35 ### Serin CN105 ESP32 Controller Pre-assembled CN105 ESP32 controller for one Mitsubishi indoor unit. Compatible with Home Assistant, Apple Home, Google Home, or Alexa. [View controller →](https://serin-labs.com/controller.html) Available to order · $180 ### Serin Link A bedside dial and temperature sensor for adjusting a mini-split without opening an app. Works with a Serin Controller or compatible ESPHome climate device. [View Link →](https://serin-labs.com/link.html) In development ### Multi-Zone Controller Whole-system control from one device. Connects to a City Multi, P-series or branch-box M-series and brings every indoor unit into your smart home. [Learn more →](https://serin-labs.com/multi-zone-controller.html) ## Why the CN105 port beats the alternatives Mitsubishi's cloud adapter costs around $227 and needs a vendor account and the vendor's servers for setup, remote access, and schedules. IR blasters send commands blindly, with no feedback from the unit. | Feature | Serin Controller | Cloud adapter | IR blaster | | --- | --- | --- | --- | | **Cost** | from $35 assembled · ~$18 DIY | ~$227 | ~$79–$139 | | **Feedback** | Real-time, two-way | Two-way, app only | None at all | | **Works offline** | Yes, 100% local | In-home control only | Varies | | **Firmware** | Open source | Proprietary | Proprietary | Serin Controller **Cost** from $35 assembled · ~$18 DIY **Feedback** Real-time, two-way **Works offline** Yes, 100% local **Firmware** Open source Cloud adapter **Cost** ~$227 **Feedback** Two-way, app only **Works offline** In-home control only **Firmware** Proprietary IR blaster **Cost** ~$79–$139 **Feedback** None at all **Works offline** Varies **Firmware** Proprietary From $35 · free US shipping ## Bring your mini-split into your smart home Each indoor unit needs one controller. Check your model number first. It takes ten seconds. [Buy now from $35](https://serin-labs.com/controller.html) [Check your model →](https://serin-labs.com/compatibility.html) --- # About > Serin Labs is a small business bringing together hardware, open-source firmware, and clear documentation for Mitsubishi mini-splits, with personal support. Source: https://serin-labs.com/about.html Last updated: 2026-10-15 Small business. Hands-on care. # About Serin Labs Serin Labs is a small business focused on making smart control for Mitsubishi mini-splits more accessible. We bring together hardware, open-source firmware, and clear documentation, with personal attention to product quality and customer support. ## How we started Serin Labs began with a Mitsubishi multi-zone system at home, unexplained cooling issues, and a desire to understand what was happening behind the thermostat. The included MHK1 offered limited control for a smart home setup, which led to experimenting with ESP8266 projects using the system’s CN105 port. The next step came after installing a Mitsubishi system at a family home. The goal was straightforward: give our parents control from their phones without spending hundreds of dollars per indoor unit on additional thermostats. That led to a hardware package and the development of **mitsubishi-cn105-homekit**, our free, open-source HomeKit-compatible firmware built on the work of existing community projects. Along the way, we found plenty of information online, but assembling a complete solution meant piecing together scattered instructions, parts lists, and wiring details. Serin Labs grew out of the decision to make that process easier for others. ## What we do ### Hardware & testing We prepare hardware and test cables, with clear installation guides to help customers get their systems connected. ### Open-source firmware We develop free firmware you can install with our [browser flasher](https://serin-labs.com/flash.html). Our guides are available whether you buy from us or [build your own](https://serin-labs.com/parts.html). ### Direct support We help customers check compatibility before purchasing and handle support directly after installation. We also continue to develop new products, drawing on the same needs that started the business: practical control, useful diagnostic information, and easier setup. Our firmware builds on open-source community projects. Meet those projects and find their source and terms on our [licenses and credits page](https://serin-labs.com/licenses.html). ## Quality and care The person answering your questions also works on the products. As a small business, we stay closely involved in the work, from developing firmware and preparing cables to helping customers with their setups. We believe quality includes the whole experience: knowing which hardware you need, having clear installation instructions, and being able to reach someone who understands the system. That attention carries through from product development to the support we provide after an order arrives. ## Let’s talk about your system We’re here to help you find the right fit. [Ask about your setup](https://serin-labs.com/contact.html) --- # Mitsubishi Mini-Split Controller for Amazon Alexa > Add a Mitsubishi mini-split to Amazon Alexa with a CN105 ESP32 controller. Get local thermostat control, voice commands, and routines without a Mitsubishi cloud account. Source: https://serin-labs.com/alexa.html Last updated: 2026-10-18 Connect a CN105 ESP32 controller to the Mitsubishi indoor unit, flash the firmware, and add the heat pump from the Alexa app through a compatible Echo or eero device. It appears in Alexa as a thermostat with temperature and mode controls, voice commands, and routines. No Mitsubishi Wi-Fi adapter, Kumo Cloud account, custom Alexa skill, or Serin Labs subscription is required. Already have a controller? [Set it up with Alexa](https://serin-labs.com/matter/setup.html#alexa). [See the CN105 controller](https://serin-labs.com/controller.html) [Check your Mitsubishi model](https://serin-labs.com/compatibility.html) At a glance - One CN105 ESP32 controller is required for each Mitsubishi indoor unit. - Setup begins in the Alexa app through a compatible Echo or eero device. - Controls include temperature, Heat, Cool, Auto, power, voice commands, and routines. - No Mitsubishi cloud account or custom Alexa skill is required. Good to know - A compatible Echo or eero device is required. - The firmware is free to install, in beta, and not open source. - The firmware is not certified; Alexa displays a one-time warning during setup. - The controller hardware arrives without firmware installed. --- ## How the CN105 ESP32 controller adds Alexa support Most Mitsubishi Electric mini-splits have a service connector called CN105 on the indoor control board. The Serin Controller combines a supported M5Stack ESP32 board with a tested CN105 cable, giving the firmware a direct, two-way connection to the heat pump. After you install the firmware, a compatible Echo or eero device discovers the controller on your local network and adds it through the Alexa app. The Alexa device sends your home Wi-Fi credentials to the ESP32 over Bluetooth, so no Serin Labs account or manufacturer skill is required. ![Alexa thermostat controls for a Mitsubishi mini-split, showing 72 degrees in cool mode](https://serin-labs.com/assets/content/620/mitsubishi-mini-split-alexa-thermostat-control.webp.4a1dbd475135.webp) The Mitsubishi mini-split as a thermostat in Alexa --- ## What Alexa can control Power and modes Turn the unit on or off and select Heat, Cool, or Auto. Target temperature Set the thermostat target from the Alexa app or by voice. Room temperature Ask Alexa for the temperature reported by the controller. Voice and routines Use spoken thermostat commands and include the mini-split in Alexa routines. Alexa displays a standard thermostat. Fan speed, vane position, diagnostics, and other heat-pump-specific controls remain available through the controller's [built-in web interface](https://serin-labs.com/controller/web-interface.html). --- ## What you need - **A compatible Mitsubishi indoor unit:** check the model number before ordering. One controller is needed for each indoor unit you want to control. - **A CN105 ESP32 controller:** buy the [pre-assembled controller](https://serin-labs.com/controller.html), or use a supported board and cable from the [DIY parts list](https://serin-labs.com/parts.html). - **A USB-C data cable and supported browser:** the initial flash runs in Chrome, Edge, or Brave on a computer. - **A compatible Echo or eero device:** Alexa uses it to discover, add, and control the thermostat locally. Amazon's supported-device list changes, so check [Amazon's current compatible-device guidance](https://developer.amazon.com/en-US/docs/alexa/smarthome/matter-support.html) before ordering hardware. - **The Alexa app:** use its add-device flow to scan the pairing code saved by the flasher. --- ## Set up your controller Setup has three parts: install the Matter-compatible firmware, connect the controller to the indoor unit, and add the thermostat in Alexa. The app transfers your Wi-Fi credentials over Bluetooth; there is no separate setup-hotspot step for initial pairing. Follow the [Alexa setup guide](https://serin-labs.com/matter/setup.html#alexa) for prerequisites, pairing, and a final check that the indoor unit responds. --- ## Limits to understand before buying - **Beta firmware:** it is newer and less tested than the ESPHome and Apple Home firmware. - **Not certified:** Alexa displays a one-time uncertified-accessory warning. The product does not carry a Works with Alexa badge. - **Features not available in Alexa:** dry mode, fan-only mode, fan speed, and vane direction are not reliably shown in Alexa's thermostat controls. - **Diagnostics are available in the web interface:** compressor frequency, outdoor temperature, runtime, and error codes do not appear in Alexa. - **One occupied CN105 port:** the controller cannot share CN105 with a factory Wi-Fi adapter or wired wall controller. --- ## Alexa firmware or ESPHome through Home Assistant? Use the firmware when Alexa is the main interface and you do not already run Home Assistant. Use [ESPHome](https://serin-labs.com/esphome/features.html) when you want fan speed, airflow direction, diagnostics, and automations in Home Assistant and want to connect Home Assistant to Alexa. Alexa shows similar thermostat controls with either option. With ESPHome, the additional controls remain available in Home Assistant. If the factory Mitsubishi Wi-Fi adapter is already installed, try the Kumo Cloud Alexa skill before buying another controller; it may provide the voice controls you need at no additional hardware cost. ![The pre-assembled Serin CN105 ESP32 controller](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) [5.0 · 42 reviews](https://shop.serin-labs.com/pages/reviews) ## Get the CN105 controller The ESP32 board and tested cable arrive assembled and ready for you to flash. Free US shipping. [Buy now from $35](https://serin-labs.com/controller.html) ## Already have a board? Install the free beta firmware, then add it from the Alexa app. The firmware source is not published. [Flash the firmware](https://serin-labs.com/flash.html?platform=direct) [Setup guide](https://serin-labs.com/matter/setup.html#alexa) --- # CN105-to-Grove Cable, Assembled and Tested > Ready-made CN105-to-Grove cable (JST PAP-05V-S to Grove HY2.0) for Mitsubishi mini-splits. 20 cm for wall units, 50 cm for ducted. Optional braided sleeving, electrically tested, from $8. Source: https://serin-labs.com/cable.html Last updated: 2026-10-18 ![Assembled CN105-to-Grove cable, coiled, in orange braided sleeving with a 5-pin JST connector on one end and a 4-pin Grove HY2.0 connector on the other](https://serin-labs.com/assets/cn105_cable.jpg) ![Assembled CN105-to-Grove cable, coiled, with its four coloured conductors unsleeved, a 5-pin JST connector on one end and a 4-pin Grove HY2.0 connector on the other](https://serin-labs.com/assets/cn105-cable-standard.jpg) ![The orange CN105-to-Grove cable routed into the electrical box of a Mitsubishi wall unit, running under a retaining clip and beneath the control-board cover](https://serin-labs.com/assets/serin-cn105-cable-installed-wall-unit.webp) ![The orange CN105-to-Grove cable plugged into the CN105 port on a Mitsubishi MVZ-A18AA7 ducted air handler control board](https://serin-labs.com/assets/serin_cn105_mvz_aa7_1.webp) ![The empty red CN105 serial port on a Mitsubishi indoor unit's control board, with the CN105 label and pins 1 and 5 marked in the silkscreen](https://serin-labs.com/assets/mitsubishi-cn105-port-control-board.webp) # CN105-to-Grove Cable $13 CN105 · Grove · 20 / 50 cm [5.0 (9)](https://shop.serin-labs.com/pages/reviews) Connects a Mitsubishi indoor unit's CN105 port to a Grove-equipped ESP32 board. Assembled and tested, with no crimping or soldering. Controller board sold separately. 20 cm, 1 cable in braided sleeving $13 [Buy](https://shop.serin-labs.com/cart/52655415132440:1) Free US shipping $35+ Ships in 1–2 days [30-day returns](https://serin-labs.com/policies.html#fit) Secure checkout by Shopify, shipped from New Jersey. **Shipping** Free US shipping on orders $35 and up, from New Jersey. Orders outside the US ship at the carrier rate shown at checkout; any duties or import fees on delivery are the buyer's. **Returns** 30-day returns by mail. [How returns work](https://serin-labs.com/policies.html#fit). **Warranty** 1-year limited hardware warranty against manufacturing defects. [Warranty terms](https://serin-labs.com/warranty.html). - [CN105-to-Grove Cable, 20 cm, 1 cable: $8](https://shop.serin-labs.com/cart/52441463095576:1) - [CN105-to-Grove Cable, 20 cm, 1 cable in braided sleeving: $13](https://shop.serin-labs.com/cart/52655415132440:1) - [CN105-to-Grove Cable, 20 cm, 4 cables: $30](https://shop.serin-labs.com/cart/52441463128344:1) - [CN105-to-Grove Cable, 20 cm, 4 cables in braided sleeving: $50](https://shop.serin-labs.com/cart/52655415165208:1) - [CN105-to-Grove Cable, 50 cm, 1 cable: $13](https://shop.serin-labs.com/cart/52441463161112:1) - [CN105-to-Grove Cable, 50 cm, 1 cable in braided sleeving: $18](https://shop.serin-labs.com/cart/52655415197976:1) - [CN105-to-Grove Cable, 50 cm, 4 cables: $50](https://shop.serin-labs.com/cart/52441463193880:1) - [CN105-to-Grove Cable, 50 cm, 4 cables in braided sleeving: $70](https://shop.serin-labs.com/cart/52655415230744:1) Which length? · [Wiring reference](https://serin-labs.com/wiring.html) ## Will it fit your unit? Type the model from the indoor unit's sticker. Requires a free CN105 port. Not for Ecodan or units with a wired wall controller on the same port. ## Overview Highlights Cable length ### Choose your length 20 cm: wall units and cassettes Keep the cable and board inside the indoor unit's plastic housing. 50 cm: ducted air handlers Mount the board outside the metal cabinet for better Wi-Fi reception. For SVZ, MVZ, PEAD, and PVA units. ![20 cm CN105 cable routed inside a Mitsubishi wall unit](https://serin-labs.com/assets/serin-cn105-cable-installed-wall-unit.webp) ![50 cm CN105 cable connected to a Mitsubishi MVZ-A18AA7 ducted air handler](https://serin-labs.com/assets/serin_cn105_mvz_aa7_1.webp) ## Technical **HVAC connector** 5-pin JST PAP-05V-S (CN105) **Board connector** 4-pin Grove HY2.0 **Length** 20 cm or 50 cm **Pack size** 1 or 4 cables **Sleeving** Standard or orange PET braid with heat-shrink ends **Wiring** Power and serial data; CN105's 12 V pin is left disconnected **Testing** Power and communication wires tested before shipping **Controller board** Sold separately ### Works with Fits the [Serin Controller](https://serin-labs.com/controller.html), M5Stack Atom S3 Lite, and NanoC6. See the [supported boards](https://serin-labs.com/parts.html) and [firmware installer](https://serin-labs.com/flash.html). Compatible CN105 projects include [MitsubishiCN105ESPHome](https://github.com/echavet/MitsubishiCN105ESPHome), [mUART](https://github.com/muart-group), [mitsubishi2MQTT](https://github.com/gysmo38/mitsubishi2MQTT), and [SwiCago/HeatPump](https://github.com/SwiCago/HeatPump). ### Build it yourself The [wiring reference](https://serin-labs.com/wiring.html) has the pinout, harness drawing, and connector part numbers to make your own cable. ## In the box ![Braided CN105-to-Grove cable](https://serin-labs.com/assets/cn105_cable.jpg) - CN105-to-Grove cable 20 cm, braided 1× per pack Controller board not included. The complete controller ## Controller and cable, assembled The Serin Controller ships with this cable attached and tested, from $35. [See the controller](https://serin-labs.com/controller.html) [Wiring reference](https://serin-labs.com/wiring.html) --- # CN105 Compatibility: Check Your Model > Type your Mitsubishi mini-split model number and instantly see if it works with the Serin Controller. Wall-mount, ducted, floor, and cassette models covered. Source: https://serin-labs.com/compatibility.html Last updated: 2026-10-15 Type the model number of your indoor unit to see whether it is compatible. The instant checker requires JavaScript. The same information is in the list and FAQ below. ## How to check your indoor unit 1. **Check your model number.** It is on a label on the indoor unit (usually on the right side behind the front panel). Mitsubishi Electric models start with prefixes like MSZ, MSY, MFZ, MLZ, SLZ, SEZ, SVZ, PEAD, PEY, PVA, PKA, PCA, PLA, PCFY, PDFY, PEFY, PFFY, PKFY, PLFY, PMFY, PVFY, or PWFY. 2. **Look for the CN105 port.** Open the front panel and locate the main control board. The CN105 port is a small 5-pin connector (usually red, sometimes white) labeled "CN105" on the PCB. See the [wiring reference](https://serin-labs.com/wiring.html) for what it looks like. 3. **Check below.** If your model series is in the compatible table, it is supported. Check even if you have already found a CN105 port: on a few series the connector is fitted but the unit does not support control through it. 4. **Check that the port is available.** Wired wall controllers such as the MHK2 and PAC-SDW01RC-1 also use CN105, and the Serin controller cannot share the port. CN105 splitters are not supported, so disconnect any existing accessory first. The handheld infrared remote does not use this port and is unaffected. ## Browse by indoor unit type Select a type to view its compatibility list. Wall-mounted MSZ · MSY · MSXY some trims are suffix-dependent Floor-mounted MFZ verify CN105 on KT Ceiling cassette MLZ · SLZ all confirmed Ducted & air handlers SEZ · SVZ · MVZ · PEAD · PEY · PVA NA SEZ-KD and PEAD-A are suffix-dependent; other SEZ-KD need a 9600 baud setting P-Series PKA · PCA · PLA · PEA · PEAD · PAA · PVA most NA trims are suffix-dependent CITY MULTI / S / Y / R2 / HVRF PCFY · PDFY · PEFY · PFFY · PKFY · PLFY · PMFY · PVFY · PWFY exact table-first LinkDrive audit Trane / American Standard rebranded NAXWST · NTXW · NTYW · NTXCKS · NTXDKS · TPKA · TPLFYP same Mitsubishi hardware inside ## Compatible indoor units The list below covers residential, P-Series, CITY MULTI, S-Series, Y-Series, R2-Series, and HVRF indoor units. Compatibility can change with the complete model suffix, especially in CITY MULTI families, so match the full label rather than the family prefix alone. As a general indicator, indoor units that support **Kumo Cloud** in North America or **MELCloud** elsewhere have a CN105 port. Every model number in the US catalogs of Mitsubishi Electric and Trane is in the [full indoor unit list](https://serin-labs.com/models/indoor.html). **Wall-mounted** | Series | Examples & notes | Verdict | | --- | --- | --- | | MSZ-FX, MSZ-GX, MSZ-HX, MSZ-WX, MSZ-EX, MSZ-JX | MSZ-FX15NL MSZ-GX12NL · NA (R454B) · Newest 2025 low-GWP models | Compatible | | MSZ-FS | MSZ-FS06NA MSZ-FS09NA MSZ-FS12NA MSZ-FS18NA · NA · Widely confirmed | Compatible | | MSZ-GS | MSZ-GS06NA MSZ-GS09NA MSZ-GS12NA MSZ-GS15NA · NA · Widely confirmed | Compatible | | MSZ-GL | MSZ-GL06NA MSZ-GL09NA MSZ-GL12NA MSZ-GL15NA MSZ-GL18NA MSZ-GL24NA · NA, AU · Widely confirmed | Compatible | | MSZ-FH | MSZ-FH06NA MSZ-FH09NA MSZ-FH12NA MSZ-FH15NA MSZ-FH18NA · NA, EU · Widely confirmed; Hyper-Heat | Compatible | | MSZ-EF | MSZ-EF09NA MSZ-EF15NA MSZ-EF25VGK MSZ-EF42VE · NA, EU · Designer series | Compatible | | MSZ-AP | MSZ-AP20VGK MSZ-AP25VGK MSZ-AP35VGD MSZ-AP50VGK · EU, AU/NZ · Widely confirmed | Compatible | | MSZ-AY | MSZ-AY20VGK MSZ-AY25VGK MSZ-AY35VGK MSZ-AY50VGK · EU · Confirmed | Compatible | | MSZ-LN | MSZ-LN25VG2 MSZ-LN35VGW MSZ-LN50VG2W · EU, NZ · Kirigamine Style; some have built-in Wi-Fi on CN110 — CN105 is separate and available | Compatible | | MSZ-HR | MSZ-HR25VF MSZ-HR35VF MSZ-HR45VF MSZ-HR50VF · EU · Widely confirmed | Compatible | | MSZ-SF | MSZ-SF25VE MSZ-SF35VE3 MSZ-SF50VE3 · EU · Confirmed | Compatible | | MSZ-YK | MSZ-YK18VA · EU/Asia · Confirmed via owner report | Compatible | | MSZ-FN | MSZ-FN06NA · NA · Confirmed via owner report | Compatible | | MSZ-BT, MSZ-DM, MSZ-RW, MSZ-FT, MSZ-GF, MSZ-WR, MSZ-HM, MSZ-JP | MSZ-BT MSZ-DM MSZ-RW MSZ-FT MSZ-GF MSZ-WR MSZ-HM MSZ-JP · Various · All confirmed via Kumo Cloud / MELCloud / community reports | Compatible | | MSZ-FE | MSZ-FE09NA-8 has CN105 MSZ-FE12NA-8 has CN105 MSZ-FE18NA has CN105 MSZ-FE09NA no CN105 MSZ-FE12NA no CN105 · NA · 09/12NA-8 and 18NA have CN105; base 09/12NA (no suffix) does not, per Mitsubishi's official M-Series controls compatibility table | Check suffix | | MSZ-GE, MSY-GE | MSZ-GE25VA has CN105 MSZ-GE09NA-8 has CN105 MSZ-GE24NA has CN105 MSZ-GE06NA no CN105 MSZ-GE09NA no CN105 MSZ-GE12NA no CN105 MSZ-GE15NA no CN105 MSZ-GE18NA no CN105 · NA, EU/Asia · EU/Asia VA-suffix trims (e.g. MSZ-GE25VA) confirmed via owner report. NA is suffix-dependent: NA-8, NA-9, and GE24NA have CN105; base 06–18NA (no suffix) does not, per Mitsubishi's official M-Series controls compatibility table | Check suffix | | MSZ-D, MSY-D | MSZ-D…NA-8 has CN105 MSZ-D…NA no CN105 · NA · Only the -NA-8 suffix has CN105; base -NA models do not, per Mitsubishi's official M-Series controls compatibility table | Check suffix | | MSY (cooling-only) | MSY-GL09NA MSY-GE10VA MSY-GX18NL · NA, Asia · Same control board as MSZ equivalents, so the same caveats apply: MSY-GL and MSY-GS are compatible, MSY-D and MSY-GE are suffix-dependent (see the rows above), and MSY-A has no CN105 | Compatible | | MSXY (Asia-Pacific) | MSXY-FN10VE MSXY-FN13VE MSXY-FP10VG · Singapore, Asia · Starmex-branded; confirmed | Compatible | | MSZ-FD | MSZ-FD · Marked "NO" in the CN105 Remote Controllers, Interfaces, and Accessories row of Mitsubishi's official M-Series controls compatibility table | Not compatible | | MSZ-HE | MSZ-HE · Marked "NO" in the CN105 Remote Controllers, Interfaces, and Accessories row of Mitsubishi's official M-Series controls compatibility table | Not compatible | | MSZ-A, MSY-A | MSZ-A MSY-A · Marked "NO" in Mitsubishi's official M-Series controls compatibility table. Some of these units do have a CN105 connector fitted, but it isn't wired for control — the port being there doesn't make the unit work | Not compatible | | MS-WA, MSZ-WA | MS-WA MSZ-WA · Marked "NO" in the CN105 Remote Controllers, Interfaces, and Accessories row of Mitsubishi's official M-Series controls compatibility table (listed as MSZ-WA in the 2026 chart, MS-WA in earlier revisions) | Not compatible | **Floor-mounted** | Series | Examples & notes | Verdict | | --- | --- | --- | | MFZ-KX (R454B), MFZ-KJ, MFZ-KA | MFZ-KA09NA MFZ-KJ18NA · MFZ-KA and MFZ-KJ confirmed on Mitsubishi's official M-Series controls compatibility table | Compatible | | MFZ-KT | MFZ-KT25VG MFZ-KT35VG · Some MFZ-KT models report CN104 only — verify CN105 is present | Check CN105 | **Ceiling cassette** | Series | Examples & notes | Verdict | | --- | --- | --- | | MLZ-KX (R454B), MLZ-KP, MLZ-KY, MLZ-KA | MLZ-KP09NA MLZ-KP12NA MLZ-KP18NA MLZ-KA50VA · MLZ-KP and MLZ-KY confirmed on Mitsubishi's official M-Series controls compatibility table; horizontal vane not available on all models | Compatible | | SLZ-AF (R454B), SLZ-KA, SLZ-KF | SLZ-KA12NA SLZ-KF35VA SLZ-M50FA · Four-way cassette; SLZ-AF, SLZ-KA and SLZ-KF confirmed on Mitsubishi's official M-Series controls compatibility table | Compatible | **Ducted & air handlers** | Series | Examples & notes | Verdict | | --- | --- | --- | | SEZ-AD (R454B), SEZ-M | SEZ-M50DAL · Confirmed; SEZ-AD has CN105 on Mitsubishi's official M-Series controls compatibility table | Compatible | | SEZ-KD (NA) | SEZ-KD09NA4 has CN105 SEZ-KD12NA4R1 has CN105 SEZ-KD09NA no CN105 · NA · Suffix-dependent: NA4 and NA4R1 have CN105, base NA (no suffix) does not, per Mitsubishi's official M-Series controls compatibility table | Check suffix | | SEZ-KD (VA, VAL, VAQ) | SEZ-KD25VAQ SEZ-KD35VAL SEZ-KD71VA · EU, AU, Asia · Has CN105 and answers at 9600 baud instead of 2400. On HomeKit-compatible and Matter-compatible firmware, set CN105 Baud Rate to 9600 under Device > Advanced in the web interface. On ESPHome, set baud_rate to 9600 in the uart block of your YAML | Compatible | | SVZ-AP (R454B), SVZ-KP, MVZ-A | SVZ-KP18NA SVZ-KP24NA SVZ-KP36NA MVZ-A24AA4 MVZ-A30AA7 · Multi-position air handler; confirmed. SVZ-AP, SVZ-KP and both MVZ trims (AA4 and AA7) have CN105 on Mitsubishi's official M-Series controls compatibility table | Compatible | | PEAD-NL (R454B), PEAD-M, PEAD-RP, PEAD-SP | PEAD-M100JAAR1 PEAD-RP100EA2 · Mid-static ducted; confirmed. Some models have quirks. | Compatible | | PEY-M | PEY-M50JAL2 PEY-M60JAL2 PEY-M80JAL2 PEY-M100JAL2 PEY-M125JAL2 · Asia · Cooling-only version of PEAD-M; has CN105 | Compatible | | PEAD-A (NA) | PEAD-A…AA4/AA5/AA7/AA8 has CN105 PEAD-A…AA no CN105 · North American AA trims are suffix-dependent: AA4, AA5, AA7 and AA8 have CN105, the base AA does not, per Mitsubishi's official P-Series controls compatibility table | Check suffix | | PVA-NL (R454B), PVA-A | PVA-A18AA7 PVA-A36AA7 PVA-A42AA7 · Multi-position air handler; confirmed | Compatible | **P-Series** | Series | Examples & notes | Verdict | | --- | --- | --- | | PKA (wall-mounted) | PKA-A…LA/AL/AK has CN105 PKA-A…HA4/HA6/HA7 has CN105 PKA-A…KA4.TH/KA6/KA7/KA8 has CN105 PKA-A…FA no CN105 PKA-A…GA no CN105 PKA-A…HA/HAL no CN105 PKA-A…KA.TH no CN105 · The LA, AL and AK trims, HA4 and later, and KA4 and later have CN105; the FA, GA, base HA/HAL and base KA.TH trims do not, per Mitsubishi's official P-Series controls compatibility table | Check suffix | | PKA-A24/A30/A36KAL.TH | PKA-A24KAL.TH PKA-A30KAL.TH PKA-A36KAL.TH · The official table does not name the KAL.TH revision precisely, and its LinkDrive Controls page lists none of the qualifying controls | Check CN105 | | PCA (ceiling-suspended) | PCA-A…KA4/KA5/KA6/KA7/KA8 has CN105 PCA-A…AK has CN105 PCA-A…GA no CN105 PCA-A…KA no CN105 · KA4 through KA8 and the AK trim have CN105; the GA and base KA trims do not, per Mitsubishi's official P-Series controls compatibility table | Check suffix | | PCA-A42KA5.TH | PCA-A42KA5.TH · Its LinkDrive Controls page lists the qualifying CN105 controls | Compatible | | PLA (four-way cassette) | PLA-A…EA has CN105 PLA-A…AE has CN105 PLA-A…BA4/BA6 has CN105 PLA-A…AA no CN105 PLA-A…BA/BA1 no CN105 · The EA and AE trims and BA4/BA6 have CN105; the AA trims and the base BA/BA1 do not, per Mitsubishi's official P-Series controls compatibility table | Check suffix | | PEA (horizontal ducted) | PEA-A…AA4/AA4R1/AA6 has CN105 PEA-A…AA no CN105 · AA4, AA4R1 and AA6 have CN105; the base AA does not, per Mitsubishi's official P-Series controls compatibility table | Check suffix | | PAA (intelli-HEAT) | PAA-A · Both the AA and NL trims have CN105, per Mitsubishi's official P-Series controls compatibility table | Compatible | **CITY MULTI / S / Y / R2 / HVRF** | Series | Examples & notes | Verdict | | --- | --- | --- | | PCFY-NKMU-ER2.TH | PCFY-P15NKMU-ER2.TH PCFY-P24NKMU-ER2.TH PCFY-P36NKMU-ER2.TH · All four audited capacities are compatible per their LinkDrive Controls pages | Compatible | | PEFY-NMAU-E3/E4/E5 and PEFY-NMHSU | PEFY-P06NMAU-E3 PEFY-P27NMAU-E3 PEFY-P96NMHSU-E · 26 exact audited models are direct-CN105 compatible | Compatible | | PKFY-NLMU, NKMU-E2R1.TH, NGMU-E | PKFY-P04NLMU-E PKFY-P12NLMU-ER1.TH PKFY-P30NKMU-E2R1.TH · 16 exact audited models are direct-CN105 compatible | Compatible | | PLFY-NEMU/NEMU1/NFMU and NBMU-E2 | PLFY-EP06NEMU-E PLFY-EP48NEMU-ER1 PLFY-P48NEMU-E · 53 exact audited models are direct-CN105 compatible | Compatible | | PMFY-NBMU-ER6 | PMFY-P06NBMU-ER6 PMFY-P15NBMU-ER6 · All four audited capacities list the qualifying CN105 controls | Compatible | | PVFY-NAMU | PVFY-P08NAMU-E1 PVFY-P30NAMU-E PVFY-P54NAMU-E1 · 15 exact audited NAMU models are direct-CN105 compatible | Compatible | | PCFY-NKMU-ER1 | PCFY-P15NKMU-ER1 PCFY-P36NKMU-ER1 · Requires PAC-IT51AD-E or PAC-IT52AD-E and the table's manufacturing-date check; not a direct CN105 connection | Adapter | | PEFY-NMAU-E2, NMHU-E2, NMSU-ER2 | PEFY-P06NMAU-E2 PEFY-P24NMAU-E2 PEFY-P54NMHU-E2 · 25 exact models require a Mitsubishi adapter and the applicable manufacturing-date check | Adapter | | PFFY-NEMU/NRMU-E | PFFY-P06NEMU-E PFFY-P15NEMU-E PFFY-P24NRMU-E · All 12 audited models require a Mitsubishi adapter and the applicable manufacturing-date check | Adapter | | PKFY-NBMU/NHMU/NKMU adapter revisions | PKFY-P06NBMU-E2 PKFY-P18NHMU-E2 PKFY-P30NKMU-E2.TH · Ten exact models require a Mitsubishi adapter and the applicable manufacturing-date check | Adapter | | PLFY-NCMU-ER4 and NBMU-ER2 | PLFY-P08NCMU-ER4 PLFY-P15NCMU-ER4 PLFY-P36NBMU-ER2 · Nine exact models require a Mitsubishi adapter and the applicable manufacturing-date check | Adapter | | PMFY-NBMU-ER5 | PMFY-P06NBMU-ER5 PMFY-P15NBMU-ER5 · All four audited capacities require a Mitsubishi adapter and the applicable manufacturing-date check | Adapter | | PCFY-NGMU-E and NKMU-E/E.TH | PCFY-P15NGMU-E PCFY-P30NGMU-E PCFY-P36NKMU-E.TH · All 12 exact revisions are marked NO in the official CITY MULTI Controls table | Not compatible | | PEFY-NMAU/NMLU/NMSU/NMHU base E revisions | PEFY-P06NMAU-E PEFY-P24NMAU-E PEFY-P96NMHU-E · All 30 exact revisions are marked NO in the official CITY MULTI Controls table | Not compatible | | PKFY-NAMU/NBMU/NFMU/NHMU/NKMU base E revisions | PKFY-P06NAMU-E PKFY-P18NFMU-E PKFY-P30NKMU-E · All 12 exact revisions are marked NO in the official CITY MULTI Controls table | Not compatible | | PLFY-NAMU/NBMU/NCMU/NLMU base revisions | PLFY-12NAMU-A PLFY-P15NAMU-E PLFY-P36NBMU-E · All 25 exact revisions are marked NO in the official CITY MULTI Controls table | Not compatible | | PMFY-NBMU-E | PMFY-P06NBMU-E PMFY-P15NBMU-E · All four audited capacities are marked NO in the official CITY MULTI Controls table | Not compatible | | PVFY-E00 | PVFY-P12E00A PVFY-P30E00B PVFY-P54E00B · All 14 exact E00 models are marked NO in the official CITY MULTI Controls table | Not compatible | | PDFY-NMU-E | PDFY-P06NMU-E PDFY-P24NMU-E PDFY-P48NMU-E · The table names PEFY rather than PDFY and the product Controls pages have no qualifying entry; compatibility is not established | Check CN105 | | PEFY-WL HVRF | PEFY-WL06NMAU-A PEFY-WL24NMAU-A PEFY-WL48NMAU-A · No governing U.S. HVRF Controls table or qualifying product-page entry was found | Check CN105 | | PKFY-WL HVRF | PKFY-WL04NLMU-E.TH PKFY-WL15NLMU-E.TH PKFY-WL30NKMU-E.TH · No governing U.S. HVRF Controls table or qualifying product-page entry was found | Check CN105 | | PLFY-WL HVRF | PLFY-WL04NFMU-E.TH PLFY-WL15NEMU-E.TH PLFY-WL48NEMU-E.TH · No governing U.S. HVRF Controls table or qualifying product-page entry was found | Check CN105 | | PWFY-NMU hydronic | PWFY-P36NMU-E-AU PWFY-P36NMU-E2-AU PWFY-P72NMU-E2-AU · The table has no PWFY column and the product Controls pages have no qualifying entry | Check CN105 | **Trane / American Standard** | Series | Examples & notes | Verdict | | --- | --- | --- | | NAXWST, NTXWPH, NTXWST, NTYWST | NAXWST09A112AB NTXWPH09B112AA NTXWST12A112AA NTYWST12A112AA · Same hardware as Mitsubishi; confirmed compatible. NTXWST/NTYWST A112AA indoor boards have CN105 per Trane service manual OBHT732 | Compatible | | NTXWMT, NTXWEL | NTXWMT12A112AB NTXWMT09A111AB NTXWEL12A112AA NTXWEL24A112AA · Trane builds of MSZ-HM, MSZ-JP (NTXWMT) and MSZ-WR (NTXWEL); every trim's Trane LinkDrive page lists the MHK2 controller | Compatible | | NTXCKS, NTXUKS, NTXDKS, NTXFKS, NTXAMT | NTXCKS12A112BA NTXUKS09A112BA NTXDKS12A112AA NTXFKS12A112AA NTXAMT24A112AA · Trane builds of SLZ-KF, MLZ-KP/KY, SEZ-KD NA4, MFZ-KJ and SVZ-KP; every trim's Trane LinkDrive page lists the MHK2 controller | Compatible | | TPKA, TPCA, TPLA, TPEADA, TPVA | TPKA0A0241KA80A TPCA0A0241KA80A TPLA0A0241EA80A TPEADA0121AA80A TPVA0A0241AA70A · Trane P-Series builds of PKA, PCA, PLA, PEAD and PVA; each maps to a compatible Mitsubishi trim | Compatible | | TPCFYP, TPEFYP, TPFFYP, TPKFYP, TPLFYP, TPMFYP, TPVFYP | TPLFYP012EM140B has CN105 TPEFYP006MA144A has CN105 TPKFYP004LM140B has CN105 TPEFYP015MH142A no CN105 TPFFYP006RE140A no CN105 TPKFYP024KM142A no CN105 · Trane CITY MULTI builds take the answer of the exact Mitsubishi revision behind them; several need a PAC-IT51AD-E or PAC-IT52AD-E signal adapter | Check suffix | | TPEFYW, TPKFYW, TPLFYW, TPWFYP | TPEFYW006MA1W0A TPLFYW04FM1W0A TPWFYP036AU141A · Trane builds of the HVRF and PWFY units, which no Controls table or product page settles | Check CN105 | ## Feature availability All compatible units support basic climate control (mode, temperature, fan speed). Some advanced features vary by model. | Feature | Notes | Availability | | --- | --- | --- | | Climate control (mode, temp, fan) | Core functionality; always works | All models | | Vertical vane | Not applicable to ducted units | Most wall-mount units | | Horizontal vane (wide vane) | Not all models have motorized horizontal vanes | Some wall-mount units | | Outside air temperature | Depends on outdoor unit; may report -63.5°C when compressor is idle (normal). Not available on some multi-zone configurations. | Many models | | Compressor frequency | Often unavailable on multi-split systems. Some models always report 0. | Many single-zone systems | | Input power (W) & energy (kWh) | Varies significantly by model. Available on some MSZ-GS, MSZ-HR, MSZ-LN, MSZ-WX models. Not available on many others. | Some models | | Runtime hours | Available on select models | Some models | | i-See sensor | Sensor data readable on supported models; direct control not yet available | Models with i-See hardware | | Remote temperature sensor | Override the unit's internal temperature reading with an external sensor (Home Assistant sensor for ESPHome, BLE sensor for HomeKit) | Most models | ## What is not compatible The following systems are not compatible, even if a similar connector is present. Mitsubishi *Heavy Industries* SRK · SRC · SRF A different company from Mitsubishi Electric. These units use a different protocol and have no CN105 connector. Air-to-water heat pumps Ecodan · Zubadan · Geodan The connector is there but the serial protocol differs. See [Mitsubishi-CN105-Protocol-Decode](https://github.com/m000c400/Mitsubishi-CN105-Protocol-Decode) for Ecodan-specific projects. No usable CN105 pre-2006 · MSZ-HJ · MSH-BF · LGH · MSZ-ZF Pads without a connector, or no port at all. Soldering is possible on MSZ-HJ but not recommended. Lossnay (LGH) ventilators use a different protocol. ## Common questions **I found a CN105 port. Is my unit compatible?** Usually, but the port alone does not confirm compatibility. Most Mitsubishi Electric indoor units with a CN105 connector use the serial protocol supported by this controller. The exceptions are **MSY/MSZ-A**, **MSZ-FD**, **MSZ-HE** and **MS-WA**, plus unsupported trims of MSZ-D, MSZ-FE, MSY/MSZ-GE and SEZ-KD. Some of these control boards have a CN105 connector that is not enabled for control, so check both the model number and the port. **Something is already plugged into my CN105 port** The existing accessory must be disconnected because the controller requires exclusive use of CN105, and most indoor units have only one port. Common connected accessories include the **MHK2**, **MHK1**, **PAC-SDW01RC-1**, and **PAR-series** wired wall controllers. CN105 splitters are not supported, so the wall controller and Serin controller cannot operate at the same time. The handheld infrared remote does not use CN105 and continues to work. **My unit has CN110 but not CN105. Will it work?** CN110 is used by Mitsubishi's Wi-Fi adapter for MELCloud or Kumo Cloud. It is **separate from CN105**. Many newer indoor units have both ports: CN110 for the factory Wi-Fi module and CN105 for additional serial communication. Look for CN105 elsewhere on the control board. An indoor unit with CN110 but no CN105 is not compatible with this controller. **My unit has CN100 instead of CN105** Some older City Multi (VRF) indoor units have CN100 instead of CN105. You can use a Mitsubishi **PAC-IT51AD-E** or **PAC-IT52AD-E** signal adapter to convert CN100 to a CN105-compatible interface. These adapters are not interchangeable; check which one your unit requires. **I have a multi-zone system. Does it work?** Yes. Each indoor head in a multi-zone system has its own CN105 port. You need **one controller per indoor unit**. The outdoor unit (MXZ series) does not need a controller. Note: some advanced sensors like compressor frequency and outside air temperature may not be available when multiple indoor units share a single outdoor unit. **My model is not on any list. Can I try it anyway?** If the model is not listed, first confirm that the Mitsubishi Electric indoor unit has a CN105 port. Most units with this port use the supported serial protocol, but a few exceptions are listed above. Test compatibility before relying on the controller, and [report a successful result on Discord](https://discord.gg/cC2ybSQDZd) to help other owners. **I have a Trane or American Standard heat pump** Many Trane and American Standard ductless systems are rebranded Mitsubishi Electric units. Wall-mounted models starting with **NAXWST**, **NTXWPH**, **NTXWST**, **NTYWST**, **NTXWMT**, or **NTXWEL** are compatible, and so are the **NTXCKS**, **NTXUKS**, **NTXDKS**, **NTXFKS**, and **NTXAMT** cassette, ducted, floor, and air-handler units. Trane's commercial models start with **TP**, and the checker above answers each one with the verdict of the Mitsubishi model it is built from. Models starting with **NTXS**, **NTYS**, or **NTXM** (including NTXMPH) are outdoor units, so check the indoor unit instead. **What do the regional model suffixes mean?** Mitsubishi Electric uses different model suffixes by region for the same hardware. The regional suffix does not affect CN105 compatibility; the same unit series is compatible across all regions. | Region | Suffix pattern | Examples | | --- | --- | --- | | North America (R410A) | -NA, -NA-U1 | MSZ-GL09NA, MSZ-EF15NAW-U2 | | North America (R454B) | -NL | MSZ-GX12NL, MSZ-FX15NL | | Europe (R32) | -VG, -VGK, -VG2 | MSZ-AP25VGK, MSZ-LN35VG2W | | Europe (R410A) | -VE, -VA, -VF | MSZ-SF35VE3, MSZ-HR35VF | | Australia / NZ | -VGD, -VGKD, -VAD | MSZ-AP35VGD, MSZ-GE25VAD | | Asia / Singapore | -VE, -VG (MSXY prefix) | MSXY-FN10VE, MSXY-FP13VG | --- Compatibility information is based on community reports, manufacturer documentation, and open-source project data. It may not be exhaustive and is not guaranteed for every unit; always verify both that your model is listed as supported and that a CN105 connector is present on your unit before buying hardware. --- # CN105 ESP32 Controller for Mitsubishi Mini-Splits > Pre-assembled CN105 ESP32 controller for Mitsubishi mini-splits. Add Home Assistant, Apple Home and Siri, Google Home, or Alexa. From $35 with free US shipping. Source: https://serin-labs.com/controller.html Last updated: 2026-10-24 ![The Serin Controller — a compact Wi-Fi controller board with the 20 cm CN105-to-Grove cable attached, in orange braided sleeving with heat shrink at both ends.](https://serin-labs.com/assets/serin-controller-20cm-braided-cable.webp) ![The Serin Controller with the 50 cm cable in orange braided sleeving, coiled beside the board with heat shrink at both ends.](https://serin-labs.com/assets/serin-controller-50cm-braided-cable.webp) ![The Serin Controller beside the optional wireless room sensor, a small white square thermometer with a rounded case.](https://serin-labs.com/assets/serin-controller-room-sensor-bundle.webp) ![The Serin Controller with the standard 20 cm CN105-to-Grove cable attached, without the braided sleeving.](https://serin-labs.com/assets/serin-controller-20cm-standard-cable.webp) ![The Serin Controller with the standard 50 cm CN105-to-Grove cable coiled beside it, showing the extra reach over the 20 cm version.](https://serin-labs.com/assets/serin-controller-50cm-standard-cable.webp) ![The orange CN105-to-Grove cable routed into the electrical box of a Mitsubishi wall unit, running under a retaining clip and beneath the control-board cover](https://serin-labs.com/assets/serin-cn105-cable-installed-wall-unit.webp) ![The CN105-to-Grove cable plugged into the CN105 port on the control board of a Mitsubishi wall unit](https://serin-labs.com/assets/serin_cn105_mitsubishi_gl06na.jpg) ![The Serin Controller mounted on the insulated plenum above a Mitsubishi MVZ air handler, connected by a 50 cm cable](https://serin-labs.com/assets/serin_cn105_mvz_aa7_2.webp) # Serin CN105 ESP32 Controller $40 CN105 · ESP32 · Wi-Fi [5.0 (42)](https://shop.serin-labs.com/pages/reviews) Pre-assembled Wi-Fi controller with a tested CN105 cable for Mitsubishi Electric mini-splits. Install the free firmware for [Home Assistant](https://serin-labs.com/esphome/features.html), Apple Home, Google Home, or Alexa. Local control, no account, no subscription. Remote access needs a home hub. 20 cm cable in braided sleeving $40 [Buy](https://shop.serin-labs.com/cart/52487250379032:1) Free US shipping Ships in 1–2 days [30-day returns](https://serin-labs.com/policies.html#fit) Secure checkout by Shopify, shipped from New Jersey. **Shipping** Free US shipping on orders $35 and up, from New Jersey. Orders outside the US ship at the carrier rate shown at checkout; any duties or import fees on delivery are the buyer's. **Returns** 30-day returns by mail. [How returns work](https://serin-labs.com/policies.html#fit). **Warranty** 1-year limited hardware warranty against manufacturing defects. [Warranty terms](https://serin-labs.com/warranty.html). - [Serin Controller, 20 cm cable: $35](https://shop.serin-labs.com/cart/52441459360024:1) - [Serin Controller, 20 cm cable with sensor: $55](https://shop.serin-labs.com/cart/52441467486488:1) - [Serin Controller, 20 cm cable in braided sleeving: $40](https://shop.serin-labs.com/cart/52487250379032:1) - [Serin Controller, 20 cm cable in braided sleeving with sensor: $60](https://shop.serin-labs.com/cart/52487250411800:1) - [Serin Controller, 50 cm cable: $40](https://shop.serin-labs.com/cart/52441459392792:1) - [Serin Controller, 50 cm cable with sensor: $60](https://shop.serin-labs.com/cart/52441467519256:1) - [Serin Controller, 50 cm cable in braided sleeving: $45](https://shop.serin-labs.com/cart/52487250444568:1) - [Serin Controller, 50 cm cable in braided sleeving with sensor: $65](https://shop.serin-labs.com/cart/52487250477336:1) Fits your unit? · [Read the manual](https://serin-labs.com/documentation.html#controller) ## Will it fit your unit? Type the model from the indoor unit's sticker. Requires a free CN105 port. Not for Ecodan or units with a wired wall controller on the same port. ## Overview Highlights Optional room sensor ### Sense the room, not the ceiling A mini-split reads temperature in its own return air at the ceiling, which warms long before the room does. The wireless sensor measures where you sit, and the heat pump controls to that reading instead. Automatic fallback Out of range or flat battery, and the unit's own sensor takes over. Move it anywhere Nightstand or desk; the heat pump follows the reading there. Bring your own Compatible Bluetooth thermometers work too. [Supported models](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) Or via Home Assistant ESPHome firmware can read any HA temperature sensor. ![A small wireless temperature sensor on a side table at seating height, with a Mitsubishi mini-split mounted high on the wall behind it](https://serin-labs.com/assets/content/800/remote-temperature-sensor-mini-split-living-room.webp.9a14766aa6fe.webp) ![The Serin controller's web interface listing three room-temperature sources: the heat pump's built-in sensor, a Bluetooth remote sensor with humidity, battery, and signal strength, and a Serin Link marked active](https://serin-labs.com/assets/content/800/serin-web-ui-room-sensor-sources.webp.7bdaf46c6655.webp) ### Installed ![The CN105-to-Grove cable plugged into the CN105 port on the control board of a Mitsubishi wall unit](https://serin-labs.com/assets/serin_cn105_mitsubishi_gl06na.jpg) Plugged into the CN105 port of an MSZ series wall unit ![The orange CN105-to-Grove cable routed into the electrical box of a Mitsubishi wall unit, running under a retaining clip and beneath the control-board cover](https://serin-labs.com/assets/serin-cn105-cable-installed-wall-unit.webp) Cable routed under the control-board cover ![The Serin Controller mounted on the insulated plenum above a Mitsubishi MVZ air handler, connected by a 50 cm cable](https://serin-labs.com/assets/serin_cn105_mvz_aa7_2.webp) Outside a metal-bodied MVZ air handler (50 cm) ## Technical **Connection** CN105 service port, via the attached CN105-to-Grove cable **Wireless** 2.4 GHz Wi-Fi **Firmware** ESPHome (Home Assistant), HomeKit-compatible (Apple Home, Siri), Matter-compatible beta (Google Home, Alexa, SmartThings) **Flashing** From a computer with Chrome or Edge over a USB-C data cable; later updates over Wi-Fi **Cable length** 20 cm (wall units, cassettes) or 50 cm (ducted air handlers: SVZ, MVZ, PEAD, PVA) **Cable finish** Standard, or orange braided sleeving with heat shrink at both ends **Room sensor** Optional Bluetooth thermometer, read directly by the controller **Cloud** None. Runs on your local network; remote access through your home hub. No account or subscription **Coverage** One controller per indoor unit **Hub requirements** Apple Home Hub for HomeKit remote access; a Home Assistant server; or a Matter hub on an IPv6-enabled network ## In the box ![The CN105-to-Grove cable, the wireless room sensor, and the Wi-Fi controller board laid out together](https://serin-labs.com/assets/content/800/serin-controller-in-the-box.webp.57ff393290ca.webp) - Wi-Fi controller board Small enough to sit inside the unit. 1× - [CN105-to-Grove cable](https://serin-labs.com/parts.html#cn105-cable), attached Plugs straight into the CN105 port. 1× - Wireless room sensor optional Battery-powered Bluetooth thermometer the controller reads directly. Not included: firmware (free, installed by you from Chrome or Edge on a computer) and a USB-C data cable for the one-time flash. If you only need the cable for a board you already have, it's [sold separately](https://serin-labs.com/cable.html#buy-cable). ## FAQ **Does it work with Apple Home and Siri?** Yes. With the free HomeKit-compatible firmware, the controller appears in the Apple Home app as a thermostat, with mode, temperature, and fan control, plus Siri voice commands. Remote access and automations need an Apple Home Hub (Apple TV or HomePod). It's not an MFi-certified accessory, so pairing shows a one-time "Add Anyway" prompt. See the [full feature list](https://serin-labs.com/homekit/features.html), or the walkthrough: [add a Mitsubishi mini-split to Apple Home](https://serin-labs.com/blog/mitsubishi-mini-split-apple-home-homekit-siri.html). **Does it work with Google Home and Amazon Alexa?** Yes. The free Google Home & Amazon Alexa compatible firmware adds it to either app as a thermostat. You need a compatible Matter hub, such as a Nest speaker or display, or an Echo; scan the pairing code and the app handles Wi-Fi. It is in beta, newer and less tested than the other firmware options, and not certified by Google or Amazon, so the app shows a one-time uncertified notice. Read the [Google Home guide](https://serin-labs.com/google-home.html) or [Alexa guide](https://serin-labs.com/alexa.html), then follow the [setup guide](https://serin-labs.com/matter/setup.html). **Which optional room sensor do you offer?** The optional sensor is a small battery-powered Govee Bluetooth thermometer. If you already own a compatible Bluetooth thermometer you can use that instead; the supported models are on the [feature list](https://serin-labs.com/homekit/features.html), and Home Assistant users can use the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) to configure the controller to read a temperature sensor already connected to Home Assistant. **How many do I need?** One controller per indoor unit, since each one has its own port. A 3-zone system needs three controllers. **Can I switch platforms later?** Yes. Connect the controller by USB-C and use the [flash tool](https://serin-labs.com/flash.html) to install firmware for a different platform. After setup, you can install firmware updates over Wi-Fi. **Can I build one myself instead?** Yes. The same firmware runs on a supported ESP32 board connected with a [CN105-to-Grove cable](https://serin-labs.com/parts.html#cn105-cable). The [parts list](https://serin-labs.com/parts.html) identifies both components and includes the JST part numbers for making the cable. The pre-assembled controller provides these parts already sourced, assembled, and tested. **Is this an official Apple or Mitsubishi product?** No. It is an independent open-source project with no ties to Apple Inc. or Mitsubishi Electric Corporation. The HomeKit-compatible firmware is not an MFi-certified accessory. Sources and licenses are on the [licenses page](https://serin-labs.com/licenses.html). **What else do I need?** - A USB-C **data** cable for the one-time flash. - For HomeKit remote access and automations: an Apple Home Hub (Apple TV or HomePod). - For Home Assistant: a Home Assistant server already running in your home. - For Google Home, Alexa, or SmartThings: the app and a compatible Matter hub, such as a Nest speaker or display, an Echo, or a SmartThings hub, on a home network with IPv6 enabled. - Home Wi-Fi that reaches the room (the board uses the 2.4 GHz band, which every home router has). **What if something's wrong with my order?** Use the [contact form](https://serin-labs.com/contact.html) with your order number. Direct orders ship from New Jersey and are covered by the [store policies](https://serin-labs.com/policies.html): 30-day returns, 12-hour cancellations, and a full refund or replacement for an item that arrives damaged or nonfunctional. Orders placed on [Etsy](https://serinlabs.etsy.com/) are handled there. For technical help, start with the [troubleshooting guide](https://serin-labs.com/troubleshooting.html). ### Limitations - Firmware is not installed before shipping. Use the [browser flash tool](https://serin-labs.com/flash.html) to install the ESPHome, Apple Home, or Google Home and Alexa compatible firmware at no charge. - The controller uses local communication and does not require a cloud service, account, or subscription. - Each controller operates one indoor unit. A multi-zone system requires one controller per indoor unit; the outdoor unit does not require one. - Ecodan air-to-water heat pumps are not compatible. They have a similar connector but [use a different serial protocol](https://serin-labs.com/compatibility.html#not-compatible). - The controller does not replace the handheld infrared remote, which continues to work. - The controller cannot share CN105 with a wired wall controller. MHK2, MHK1, PAC-SDW01RC-1, and PAR-series controllers use the same port, and [CN105 splitters are not supported](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html). After it arrives ## Install, connect, and pair Flash from Chrome or Edge on a computer, plug into the unit, add to your app. [Install firmware](https://serin-labs.com/flash.html) [Read the manual](https://serin-labs.com/documentation.html#controller) --- # Controls, entities and diagnostics > Compare the controller's HomeKit, ESPHome and Matter controls, standard Home Assistant entities, and optional heat-pump diagnostics. Source: https://serin-labs.com/controller/controls.html Last updated: 2026-10-15 Available controls depend on the indoor unit, installed firmware, and smart-home app. A listed option does not add a capability the indoor unit lacks. Check [model compatibility](https://serin-labs.com/compatibility.html) and use the [web interface guide](https://serin-labs.com/controller/web-interface.html) for everyday operation. ## HomeKit-compatible firmware Scroll sideways to read all columns. | Control | Firmware capability | | --- | --- | | Modes | Off, Heat, Cool, Auto, Dry, and Fan. Additional modes beyond Apple Home's thermostat controls are available in the web interface. | | Target temperature | Adjustments in 0.5°C increments; independent heat and cool targets in Auto mode. | | Fan speed | Auto, Quiet, Low, Med, High, and Max. | | Vertical vane | Auto, five fixed positions, and Swing. | | Horizontal vane | Five fixed positions, Split, and Swing. | | Room sensor | One source or an average of selected sources, with per-sensor offsets. See · [room temperature sensors](https://serin-labs.com/controller/room-sensors.html#homekit) · . | Apple Home has no vane controls. Use the controller's web interface for both vane axes. Siri, scenes, and automations operate through the Apple Home thermostat; remote access and automations require an Apple Home Hub. ## ESPHome standard entities The standard browser-installed configuration creates the controller's device in Home Assistant after setup, and a **Serin Link 1** device under it that carries the readings of a paired [Serin Link](https://serin-labs.com/link.html). Entity IDs derive from the name you choose: for example, `living-room` produces `climate.living_room`. Scroll sideways to read all columns. | Entity | Domain | Purpose | | --- | --- | --- | | Indoor unit | `climate` | Mode, target temperature, fan speed, and current room temperature. | | Vertical vane | `select` | Up-and-down airflow direction. | | Horizontal vane | `select` | Left-and-right airflow direction. | | LED | `light` | The board's RGB light. ESPHome assigns it no controller status function. | | Button | `binary_sensor` | The controller's physical button. | | Signal strength | `sensor` | Wi-Fi signal strength in decibels. | | IP address and SSID | `sensor` | Network address and Wi-Fi network name. | | ESPHome version | `sensor` | The ESPHome version used to compile the firmware. | | Pair Serin Link | `button` | Opens the controller's pairing window for a Serin Link. | | Room Temperature Source | `select` | The room temperature the heat pump uses: its built-in sensor or the paired Link. | | Serin Link 1 device | `binary_sensor` · , · `sensor` | Connected, MAC, Last Seen, Firmware, Temperature, and Humidity for the paired Link. | ### Climate and vane options - **Modes:** Off, Heat, Cool, Auto, Dry, and Fan. - **Temperature:** 15 to 31°C in 0.5° increments, with room temperature displayed to 0.1°. The indoor unit's limits still apply. - **Fan speed:** Auto, Quiet, Low, Medium, Middle, and High. - **Vertical vane:** Auto, five positions, and Swing. - **Horizontal vane:** five positions, Split, and Swing. Auto mode uses one target by default. Separate heat/cool setpoints, swing on the climate entity, and Even/Indirect/Direct airflow control are generator options. Omit a horizontal vane from the configuration if the unit has none. Remote-control changes are read back by the controller and appear in Home Assistant. The generator can also add an i-See occupancy binary sensor, supported Night mode/Air purifier/Circulator switches, Bluetooth proxy, and ISU installer settings. See [optional configuration features](https://serin-labs.com/controller/customize-esphome.html#options) for requirements and installation. ## Heat-pump diagnostics Readings depend on what the indoor unit reports. Use them to understand operating state and to include useful evidence with a support request. Scroll sideways to read all columns. | Firmware | Where to find diagnostics | Reported data | | --- | --- | --- | | HomeKit-compatible | Controller web interface | Compressor frequency, outside temperature, runtime hours, error codes, sub mode, and stage information. | | ESPHome | Home Assistant, after adding Diagnostics through the generator | Nine sensors: compressor frequency, outside temperature, input power, energy use, runtime hours, heat-pump connection uptime, stage, sub mode, and auto sub mode. | | Matter-compatible | Controller web interface | Compressor frequency, outdoor temperature, runtime, and error codes; these do not appear in Google Home, Alexa, or SmartThings. | Compressor frequency indicates how hard the system is working. Outside temperature comes from the outdoor unit, not a weather service. Stage and sub modes describe its operating state. When ESPHome diagnostics are included, the generator enables those entities so they are available for history graphs without first enabling them individually. On HomeKit-compatible and Matter-compatible firmware, **Heat Pump · CN105** shows an error reported by the indoor unit as "Error code E" followed by a code. This manual does not translate the codes. Include the code, and the text from [Copy Diagnostics](https://serin-labs.com/controller/support-info.html#diagnostics), in a support request. For an error code or missing data, inspect the logs and follow [CN105 troubleshooting](https://serin-labs.com/troubleshooting.html#cn105). The [status light reference](https://serin-labs.com/controller/status-lights.html) covers controller signals separately from these readings. ## Matter controls in Google Home, Alexa, and SmartThings The beta Matter-compatible firmware presents a standard thermostat: power, Heat/Cool/Auto, target temperature, and reported room temperature. Google Home and Alexa offer voice commands and routines; SmartThings offers scenes and routines. Dry mode, fan-only mode, fan speed, and vane direction may not appear in the app's thermostat card. Fan, vane, and diagnostic controls remain available in the controller's web interface. App-visible controls are narrower than the heat pump's full feature set. This firmware is free to install, not Matter-certified, and its source is not published. See [Matter setup](https://serin-labs.com/matter/setup.html) for network and hub requirements, or [choose a firmware route](https://serin-labs.com/controller/firmware.html) if you need a different set of controls. ## Settings the controller does not have These apply to HomeKit-compatible and Matter-compatible firmware. ESPHome can add some of them through its configuration. - **Static IP address.** The controller gets its address from your router. To keep the address the same, reserve it for the controller in your router's settings. - **Status light brightness.** The light cannot be dimmed or turned off. - **Time zone.** The controller sets its clock from the internet, and the web interface shows times in your phone or computer's time zone. - **Password for the web interface.** Anyone on your local network can open it. See [security](https://serin-labs.com/security.html). - **Automatic updates.** The controller never installs an update by itself. See [Update firmware](https://serin-labs.com/controller/updates.html). Browse the manual ↑ --- # Customize ESPHome > Preserve an adopted controller's identity and credentials, generate optional ESPHome features, and install and verify the new configuration over Wi-Fi. Source: https://serin-labs.com/controller/customize-esphome.html Last updated: 2026-10-15 The browser installer supplies a standard ESPHome configuration. The [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) creates a complete replacement configuration with the options you select. It runs in your browser; configuration data is not uploaded. ## Before you start - Complete [ESPHome setup](https://serin-labs.com/esphome/setup.html), including adoption and installation of the personalized configuration. - Confirm that Home Assistant controls the indoor unit and that the controller is reachable over Wi-Fi. - Back up the device's current YAML from the ESPHome dashboard. Keep any referenced secrets available in your ESPHome installation. The generator supports the M5Stack NanoC6 and Atom S3 Lite. Other ESP32 boards require manual board configuration and compilation; see [supported boards and DIY parts](https://serin-labs.com/parts.html). ## Keep the controller connected when replacing its configuration Keep the existing device name and connection credentials so ESPHome can send updates to the same controller and Home Assistant can reconnect. Import them from your current configuration using the steps below. 1. Open the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) and expand **Existing ESPHome device**, or select **Import an existing configuration** below the preview. 2. Paste the controller's complete YAML into **Current ESPHome YAML**. Review the report: the generator fills the device name, display name, board, API encryption key, and OTA password when it recognizes them. Confirm the board and names under **Device details**; enter any missing credentials in the import section. 3. Keep the existing device name so wireless updates reach the same controller. Retain the **API encryption key** and **OTA password** so Home Assistant and ESPHome can reconnect. Existing `!secret` references for these credentials can be kept; the referenced secrets must exist in your ESPHome installation. 4. Choose the features you need in the groups below. Importing does not select your previous options: select them again, including any room sensor or Serin Link. Select only features your indoor unit supports. Under **Advanced options**, keep **ESPHome web server** enabled if you want local browser controls. 5. Review **Your configuration**, which updates as you change options. On a phone, use **Preview and download** to reach it and **Edit options** to return. Select **Copy configuration** or **Download .yaml**; the downloaded filename follows the device name, for example `living-room.yaml`. The result is a **complete configuration**. Replace the old file's contents; do not append the generated YAML underneath it. The generated configuration includes the Serin package's contents, so you do not need to add that package again. Before installing, compare the result with your backup. The generator does not merge your custom YAML. Its report lists top-level sections missing from the result, but custom entries inside sections such as `sensor:` or `switch:` still need review even when the section exists in both files. Restore any other packages, custom sensors, automations, and settings you still need. The generated Wi-Fi settings use `!secret wifi_ssid` and `!secret wifi_password`. Confirm those entries in `secrets.yaml`, or edit the generated settings to match your installation. Restore any custom Wi-Fi settings, such as a static IP address, before uploading. ## Install and verify 1. Open the adopted controller in the ESPHome dashboard and replace its YAML with the reviewed configuration. 2. Select **Install** and install wirelessly. Leave the controller powered while the firmware compiles, uploads, and restarts. 3. Confirm that the controller reconnects to Home Assistant and its climate entity is available. 4. Check the new entities or controls, then change a supported mode or target temperature and confirm that the indoor unit responds. If the new configuration does not compile, review the build error and your selected options before retrying. If upload fails, use [ESPHome update troubleshooting](https://serin-labs.com/troubleshooting.html#ota-fails). Keep the backed-up YAML for recovery. ## Choose optional features The generator starts with NanoC6 selected, vertical vane control and the ESPHome web server enabled, and the other feature checkboxes off. Expand each group to change its options. The group summaries show the current selections. Scroll sideways to read all columns. | Option | Purpose and limits | | --- | --- | | Home Assistant temperature sensor | Under · **Room temperature source** · . Feeds a Home Assistant temperature entity to the heat pump. Enter the sensor entity ID and select the unit Home Assistant shows for it; checking the box without an ID leaves the sensor out of the generated YAML. With · **Use the Link as a room temperature sensor** · also enabled, the entity becomes a source named Home Assistant that feeds the heat pump only while it is selected. See · [room sensor setup](https://serin-labs.com/controller/room-sensors.html#esphome-home-assistant) · . | | Connect a Serin Link | Under · **Serin Link** · . Off by default; enable it to keep Link support when the generated configuration replaces the standard one. Adds Pair Serin Link and Forget All Links buttons, a Serin Link 1 device in Home Assistant with Connected, MAC, Last Seen, and Firmware sensors, and bindings for the selected vane controls. See · [Serin Link pairing](https://serin-labs.com/esphome/features.html#dial) · . | | Use the Link as a room temperature sensor | Under · **Serin Link** · , shown after you enable · **Connect a Serin Link** · . Off by default. Adds Temperature and Humidity sensors to the Serin Link 1 device and a Room Temperature Source selector, and lets the heat pump follow the Link's temperature. The heat pump keeps its built-in sensor until you select the Link as the source. See · [Serin Link as the room sensor](https://serin-labs.com/controller/room-sensors.html#esphome-link) · . | | Separate heating and cooling temperatures | Under · **Indoor unit options** · , alongside vane controls, Swing mode, and the i-See occupancy sensor. Adds two targets in Auto mode; the standard configuration uses one. | | Vertical and horizontal vane controls | Include the axes fitted to your indoor unit. Omit an absent horizontal vane to avoid an unused control. | | Swing mode | Adds swing to the climate entity alongside the separate vane selectors. | | Airflow control | Under · **Optional controls** · , alongside Night mode, Air purifier, and Circulator. Adds Even, Indirect, and Direct settings on units that support them. | | Diagnostics | Under · **Advanced options** · . Adds nine heat-pump sensors, enabled in Home Assistant when included. See the · [diagnostics reference](https://serin-labs.com/controller/controls.html#diagnostics) · . | | i-See occupancy sensor | Adds a binary sensor for indoor units fitted with Mitsubishi's infrared occupancy sensor. | | Night mode, air purifier, circulator | Adds switches for supported units: reduced fan/display operation, the fitted purifier, or fan-only circulation. | | Installer settings (ISU) | Exposes service-menu codes stored in the indoor unit. Change them only when you understand their effect. | | ESPHome web server | Provides local browser controls for the configured entities. Enabled by default. | | Home Assistant Bluetooth proxy | Extends Home Assistant's Bluetooth coverage through the controller. The firmware from the flash tool includes it, but a generated configuration does not unless you select it. Keep it if Home Assistant reaches the · [included Govee sensor](https://serin-labs.com/controller/room-sensors.html#esphome-govee) · through the controller. It does not configure a thermometer to feed the heat pump directly. | | Fahrenheit compatibility mode | Off by default. For units operating natively in Fahrenheit, select Standard first; select Alternate if the unit reports incorrect temperatures. This setting concerns the indoor unit, not the remote sensor's display units. | The [standard entity reference](https://serin-labs.com/controller/controls.html#esphome) distinguishes the base configuration from optional features. Enabling an option cannot add hardware capabilities to an indoor unit that lacks them. Browse the manual ↑ --- # Choose your firmware > Choose ESPHome for Home Assistant, HomeKit-compatible firmware for Apple Home, or Matter-compatible firmware for Google Home, Alexa and SmartThings. Source: https://serin-labs.com/controller/firmware.html Last updated: 2026-10-15 The controller can run any of three firmware builds. Choose by the smart-home app you use. All three are free to install, and none needs a Serin Labs account or subscription. For a new controller used with Serin Link alone, choose the **HomeKit-compatible firmware**, labeled **Apple Home** in the flash tool. You do not need an Apple device or home hub. Follow the [Link-only setup instructions](https://serin-labs.com/link/manual.html#using-link-without-a-smart-home-app). ## Choose by the app you use You can switch later. Switching means flashing the controller again over USB and pairing it again in the new app. [Home AssistantESPHome firmware. Needs Home Assistant with the ESPHome add-on.](https://serin-labs.com/esphome/setup.html) [Apple HomeHomeKit-compatible firmware. Needs an iPhone or iPad. Remote access and automations need an Apple TV or HomePod.](https://serin-labs.com/homekit/setup.html) [Google Home, Alexa & SmartThingsMatter-compatible firmware, in beta. Needs a hub with Matter support and IPv6 on your home network.](https://serin-labs.com/matter/setup.html) ### Using more than one app? - **Home Assistant plus another app:** choose Home Assistant. It can share the thermostat with Apple Home through its HomeKit Bridge integration, and with Google Home or Alexa through Home Assistant. - **The Matter-compatible build in Apple Home or Home Assistant:** it can be added to either app, but for a new installation the Apple Home and Home Assistant routes above are the established ones. The Matter-compatible build is newer and less tested. ## How the builds differ All three run on 2.4 GHz Wi-Fi and control the same indoor unit. They differ in how setup works, where the extra controls live, and what is published. ### Home Assistant ESPHome firmware. Join Wi-Fi, adopt the controller in the ESPHome dashboard, then configure the integration. Add optional features with the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html). Open source. ### Apple Home HomeKit-compatible firmware. Join Wi-Fi, then scan the pairing code with the Home app. Additional controls and updates are in the [web interface](https://serin-labs.com/controller/web-interface.html). Open source. Not Apple-certified, so the Home app shows an uncertified-accessory notice when you add it. ### Google Home, Alexa & SmartThings Matter-compatible firmware, in beta. The app sends your Wi-Fi details to the controller while pairing over Bluetooth. Additional controls and updates are in the web interface. Newer and less tested than the other two builds, not certified, and the source is not published. Your app may ask you to confirm an uncertified accessory. App controls also differ. Fan speed, vane direction, diagnostics, and some modes are not available in every app. [Controls and diagnostics](https://serin-labs.com/controller/controls.html) lists what each app provides, and [licenses and compliance](https://serin-labs.com/licenses.html) covers each firmware's source and terms. ## Install or switch firmware Use the [browser flash tool](https://serin-labs.com/flash.html) on a computer with Chrome, Edge or Brave and a USB-C data cable. The tool lists the builds by app: [ESPHome](https://serin-labs.com/flash.html?platform=esphome) for Home Assistant, [Apple Home](https://serin-labs.com/flash.html?platform=homekit), and [Google Home, Alexa & SmartThings](https://serin-labs.com/flash.html?platform=direct). Each of those links opens the tool with that build already selected. The tool shows the released builds that fit the connected board. Switching firmware means installing again over USB and setting up again in the new app. Follow the [USB reinstall instructions](https://serin-labs.com/controller/maintenance.html#reset) before removing an installed board. For routine updates to the firmware already installed, see [Update firmware](https://serin-labs.com/controller/updates.html). Browse the manual ↑ --- # Serin Controller installation > Connect your Serin Controller to the Mitsubishi indoor unit's CN105 port, position the board and cable, and continue smart-home setup. Source: https://serin-labs.com/controller/install.html Last updated: 2026-10-15 This is the physical installation procedure for a controller and assembled CN105-to-Grove cable. It is shared by all three firmware choices. If you are making a cable, build and check it against the [wiring reference](https://serin-labs.com/wiring.html) first. ## 1 Prepare for installation 1. [Confirm model compatibility](https://serin-labs.com/compatibility.html) and that the CN105 port is available. The controller cannot share that port with an existing wired accessory; CN105 splitters are not supported. 2. [Install your chosen firmware](https://serin-labs.com/flash.html) over USB before fitting the controller. Disconnect the USB cable afterward. 3. Have a screwdriver and the controller with its cable ready. Read the [safety and installation information](https://serin-labs.com/safety.html). **Switch off power at the breaker, not just at the remote.** The control board carries line voltage. Leave power off until the cover is back on. If you are not comfortable working inside the unit, have an HVAC technician make the connection. ## 2 Connect and position the controller 1. With power off, open the indoor unit's cover and locate the main control board. Find the five-pin connector labeled **CN105**, usually red and sometimes white. Do not substitute CN110. 2. Seat the cable's CN105 connector in the unit and the Grove connector in the controller. Check orientation against the connector and board markings; do not force either connector. The [wiring reference](https://serin-labs.com/wiring.html#diagram) shows both ends. 3. Position the controller and cable clear of the fan, heat exchanger fins, and condensate tray. Ensure the cover will not pinch the cable. [![Close-up of the red five-pin socket labeled CN105 on the indoor unit control board](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp)](https://serin-labs.com/assets/mitsubishi-cn105-port-control-board.webp) **1. Indoor-unit end.** Find the CN105 label beside the five-pin socket. The socket is red in this example. [Enlarge port photo](https://serin-labs.com/assets/mitsubishi-cn105-port-control-board.webp). [![NanoC6 controller with the Grove connector seated at the rear and the free five-pin CN105 connector at the other end of the orange cable](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp)](https://serin-labs.com/assets/serin_cn105_controller.jpg) **2. Controller end.** The Grove plug seats at the rear of the blue controller. The free five-pin plug goes to CN105; the USB-C port is for flashing. [Enlarge connector photo](https://serin-labs.com/assets/serin_cn105_controller.jpg). [![Orange CN105 cable routed beside the indoor unit's control-board enclosure](https://serin-labs.com/assets/content/800/media/installation.jpg.d3034c4a45a9.webp)](https://serin-labs.com/assets/media/installation.jpg) **3. Cable routing example.** The orange cable runs beside the control-board enclosure. Controller placement depends on your unit; keep the controller and cable clear of moving parts and pinching points as described above. [Enlarge installation photo](https://serin-labs.com/assets/media/installation.jpg). ## 3 Replace the cover and restore power Check that the connectors are fully seated and the cable is clear, reinstall the cover, then restore power at the breaker. CN105 supplies power to the controller; a USB power supply is not needed inside the unit. On HomeKit-compatible and Matter-compatible firmware, the [status light](https://serin-labs.com/controller/status-lights.html) shows startup and connection state. ESPHome uses the RGB LED as a controllable light entity, so those status colors do not apply. **Before moving on:** The cover is secure, power is restored, and the controller is powered through CN105. ## Continue with your platform - [Home Assistant / ESPHome setup](https://serin-labs.com/esphome/setup.html) - [Apple Home / HomeKit setup](https://serin-labs.com/homekit/setup.html) - [Google Home, Alexa and SmartThings setup](https://serin-labs.com/matter/setup.html) Browse the manual ↑ --- # Wi-Fi, pairing and resets > Change the controller's Wi-Fi network, reset or add pairings, factory reset it, or reinstall firmware over USB. Source: https://serin-labs.com/controller/maintenance.html Last updated: 2026-10-15 Use the instructions for the firmware installed on your controller. To install a newer version, see [Update firmware](https://serin-labs.com/controller/updates.html). ## What each action erases Changing Wi-Fi, resetting pairing, and a factory reset each remove something different. Choose the smallest action that solves the problem. Scroll sideways to read all columns. | Action | Wi-Fi network | App pairing | Other settings | | --- | --- | --- | --- | | **Change Network…** | Replaced | Kept | Kept | | **Forget Wi-Fi…** · or a 10-second button hold | Erased | Kept | Kept | | **Reset HomeKit Pairing** · or · **Reset Matter Pairing** | Kept | Erased | Kept | | **Factory Reset…** | Erased | Erased | Erased | | USB update of HomeKit-compatible or Matter-compatible firmware | Kept | Kept | Kept | | USB reinstall of ESPHome, or any USB install with · **Erase everything first** | Erased | Erased | Erased | Other settings include the device name, unit capabilities, room sensors, and a paired Serin Link. The first five rows describe HomeKit-compatible and Matter-compatible firmware. ## Change or recover Wi-Fi These controllers use **2.4 GHz Wi-Fi**. If the controller is still connected but its browser address stopped working, first try its IP address from the router's connected-device list. ### HomeKit-compatible and Matter-compatible firmware **Change the network while the controller is still connected.** Do this before you replace the router or change its password. 1. Open the [web interface](https://serin-labs.com/controller/web-interface.html#open), expand **Network · Wi-Fi**, and select **Change Network…**. 2. Choose the new network, enter its password, and select **Save Wi-Fi**. 3. The controller tries the new network for up to 30 seconds. If it joins, it switches over without restarting. If it cannot join, it stays on the current network. 4. Put your phone on the new network and open the controller again. Its IP address may change; find it in the router's connected-device list. [![Network · Wi-Fi section in Change Network view, listing four networks with the current one marked Current, SSID and Password fields, Cancel and Save Wi-Fi buttons, and a note that the controller reverts if the new credentials fail](https://serin-labs.com/assets/content/860/media/webui-wifi-change.png.ecba378ac0f6.webp)](https://serin-labs.com/assets/media/webui-wifi-change.png) The page shows no error if the new network fails. If the network name under **Network · Wi-Fi** has not changed after a minute, select **Cancel**, check the password, and try again. [View full-size screenshot](https://serin-labs.com/assets/media/webui-wifi-change.png). **Check:** **Network · Wi-Fi** shows the new network name, and the thermostat responds in your app. **Recover a controller that lost its network.** 1. After five minutes without its saved network, the controller opens a backup setup network named `Serin-XXXX`. 2. Join that network with password `serinlabs`, then open `http://192.168.4.1`. 3. Enter the new network name and password. After the controller reconnects, put your phone back on the home network and check control in your app. **Erase the saved network and start again.** In **Network · Wi-Fi**, open **Advanced** and select **Forget Wi-Fi…**. The controller erases the saved network and restarts into its backup setup network; follow steps 2 and 3 above. App pairing and settings are kept. [![Network · Wi-Fi section showing the connected network, IP address, hostname and MAC, a Change Network button, and the Advanced area open with a Forget Wi-Fi button](https://serin-labs.com/assets/content/860/media/webui-wifi-forget.png.6e67cf5b1485.webp)](https://serin-labs.com/assets/media/webui-wifi-forget.png) The note above **Forget Wi-Fi…** mentions HomeKit pairing on both firmware builds. On Matter-compatible firmware the Matter pairing is kept in the same way. [View full-size screenshot](https://serin-labs.com/assets/media/webui-wifi-forget.png). Without the web interface, hold the board button for 10 seconds instead. The controller erases the saved network and restarts as soon as the hold reaches 10 seconds, while the button is still pressed. Release during the red warning from 7 to 10 seconds to cancel. A shorter hold has a different action; see the [button reference](https://serin-labs.com/controller/status-lights.html#button-hold-light). A Matter-compatible controller that has never joined a network gets its Wi-Fi details from your app during pairing. Use the [Matter setup guide](https://serin-labs.com/matter/setup.html) for it instead. ### ESPHome The standard configuration provides a fallback network named `serin-XXXXXX`, password `serinlabs`, when it cannot connect. Join it and open `http://192.168.4.1` to enter credentials. If you customized the configuration, use the fallback network settings in your YAML. Keep the Wi-Fi settings or secrets in your ESPHome configuration current before your next installation. The [browser installer](https://serin-labs.com/flash.html?platform=esphome) can also send Wi-Fi credentials over USB. Disconnect CN105 before connecting USB, following the procedure below. ESPHome does not use the button actions above. ## Reset or add pairings ### Apple Home (HomeKit-compatible firmware) 1. In the Home app, remove the thermostat: open it, open its settings, and select **Remove Accessory**. 2. In the controller's web interface, expand **HomeKit** and select **Reset HomeKit Pairing**. The button appears only while the controller is paired. Confirm, and the controller restarts. 3. Follow [Apple Home setup](https://serin-labs.com/homekit/setup.html#pair) to add it again with the same setup code. [![HomeKit section showing Paired with HomeKit, 1 controller, a Show Setup Code button, and a Reset HomeKit Pairing button](https://serin-labs.com/assets/content/860/media/webui-homekit-paired.png.f7a3916d2703.webp)](https://serin-labs.com/assets/media/webui-homekit-paired.png) **Reset HomeKit Pairing** keeps Wi-Fi, settings, a paired Serin Link, and the setup code. [View full-size screenshot](https://serin-labs.com/assets/media/webui-homekit-paired.png). If you reset pairing without removing the thermostat first, the old one stays in the Home app as not responding. Remove it there, then add the controller again. ### Google Home, Alexa and SmartThings (Matter-compatible firmware) A Matter-compatible controller can be added to more than one app at a time. Expand **Matter** in the web interface to manage them. - **Add it to another app.** Select **Open Pairing Window**. Within 15 minutes, add a Matter device in the second app and scan the code shown by **Show Setup Code**. - **Remove one app.** Remove the thermostat in that app first. If it still appears under **Paired Controllers**, select **Remove** beside it. The other apps keep working. - **Remove every app.** Select **Reset Matter Pairing**. The controller restarts, keeps its Wi-Fi network, and must be added again in each app. Apple Home appears twice under **Paired Controllers**, as Apple and Apple Keychain. Both belong to the same home. ### Find the setup code again Once the controller is on your network, open the **HomeKit** or **Matter** section of the web interface. It shows the setup code; select **Show Setup Code** first if the controller is paired. Resetting pairing does not change the code. For a Matter-compatible controller that has never joined a network, see [Missing your pairing code?](https://serin-labs.com/matter/setup.html#pair) in the Matter guide. ## Factory reset A factory reset erases the saved Wi-Fi network, all app pairings, a paired Serin Link, and every setting, then restarts the controller into setup. HomeKit-compatible and Matter-compatible firmware can do this from the web interface, so the controller stays in the indoor unit. 1. Remove the thermostat from your smart-home app. 2. If you may want your settings back, [export them](https://serin-labs.com/controller/support-info.html#export) first: **Device** > **Export Settings**. 3. Expand **Device**, open **Advanced**, and select **Factory Reset…**. Type `ERASE` and confirm. 4. Set the controller up again with its [setup guide](https://serin-labs.com/documentation.html#controller). [![Lower part of the Device section with Save Settings, Export Settings and Import Settings buttons, and the Advanced area open showing Poll Interval, the factory reset warning, and a Factory Reset button](https://serin-labs.com/assets/content/860/media/webui-device-advanced.png.06196187368d.webp)](https://serin-labs.com/assets/media/webui-device-advanced.png) An exported settings file does not include Wi-Fi details or the setup code. [View full-size screenshot](https://serin-labs.com/assets/media/webui-device-advanced.png). The board button cannot do a factory reset; its longest hold erases only the saved Wi-Fi network. ESPHome firmware has no factory reset in its web page. For ESPHome, or for a controller that cannot be reached on the network, reinstall over USB with **Erase everything first** as described below. ## Reinstall, erase settings, or change firmware Use USB when the controller cannot be reached on the network, or to switch to different firmware. 1. Turn off HVAC power at the breaker. Disconnect the controller from the CN105 cable before connecting USB. USB must be its only power source during flashing. 2. Connect to a computer with a USB-C data cable and open the [firmware flasher](https://serin-labs.com/flash.html) in Chrome, Edge, or Brave. 3. Choose the firmware and review the warnings before installing: - **Reinstall ESPHome:** The version supplied by the flash tool resets stored settings even when **Erase everything first** is unchecked. The install button says **Reset and install**. - **Update HomeKit-compatible or Matter-compatible firmware:** An update supplied as separate bootloader and application files preserves stored settings when **Erase everything first** is unchecked. Follow any reset warning shown by the flash tool for the selected version. - **Erase all settings:** Select **Erase everything first** to clear the controller’s flash memory, including saved Wi-Fi details and pairings, before installing any firmware. 4. Install and wait for completion. After an installation that resets settings, configure Wi-Fi and pairing again using the appropriate [setup guide](https://serin-labs.com/documentation.html). 5. Disconnect USB before reconnecting CN105, with HVAC power still off. Follow [physical installation](https://serin-labs.com/controller/install.html), restore power, and verify control. If switching between ESPHome, HomeKit-compatible, and Matter-compatible firmware, start with [Choose your firmware](https://serin-labs.com/controller/firmware.html) and follow the flasher's erase guidance. If USB does not detect the controller, see [USB troubleshooting](https://serin-labs.com/troubleshooting.html#usb-not-detected). ## Crash-loop safe mode On HomeKit-compatible firmware, repeated crashes can start the controller in safe mode, with only Wi-Fi and the web interface available. A banner identifies safe mode; other controller functions are disabled. Open the interface by its IP address from your router's connected-device list, because the `.local` address does not work in safe mode. Then [install a firmware update](https://serin-labs.com/controller/updates.html#wifi-update), or use USB recovery above. On Matter-compatible firmware, safe mode offers only the backup setup network and cannot install an update over Wi-Fi. Reinstall the firmware over USB. If safe mode returns after a USB installation, investigate wiring and power and [contact support](https://serin-labs.com/contact.html). See [status lights](https://serin-labs.com/controller/status-lights.html) for the yellow pulse and firmware-specific meanings. Browse the manual ↑ --- # Room temperature sensors > Choose room temperature sources in the controller’s web interface, or on ESPHome add the included Govee sensor to Home Assistant, use any Home Assistant temperature entity, or read a Bluetooth sensor directly. Source: https://serin-labs.com/controller/room-sensors.html Last updated: 2026-10-15 A wall-mounted indoor unit measures return air near the ceiling. A sensor near the occupied part of the room can give the heat pump a more representative temperature. Set up the controller and confirm normal heat-pump control before changing its temperature source. ## Choose and place a sensor All three firmware options can read compatible Bluetooth thermometers directly. The setup method and supported sensors depend on your firmware. ESPHome can also receive a temperature entity from Home Assistant, which lets you use sensors on other networks such as Zigbee or Z-Wave. Place the thermometer near seating height, away from direct sunlight, heat sources, and the indoor unit's airstream. Choose a location that represents the area you want comfortable. The [room sensor article](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) explains why placement matters. [![A checked thermometer sits beside a seated person. Crossed thermometers show three places to avoid: direct sunlight, beside a heater, and in the indoor unit’s airflow.](https://serin-labs.com/assets/diagrams/room-sensor-placement.svg)](https://serin-labs.com/assets/diagrams/room-sensor-placement.svg) Place the sensor near the seating area, away from sun, heat, and direct airflow. [Enlarge placement illustration](https://serin-labs.com/assets/diagrams/room-sensor-placement.svg). ## Configure sensors in the web interface HomeKit-compatible and Matter firmware share the same room-sensor controls. The steps below apply to both. You need a compatible Bluetooth thermometer within range of the controller. The controller can read up to four Bluetooth thermometers; no Home Assistant or manual Bluetooth pairing is required. 1. [Open the controller's web interface](https://serin-labs.com/controller/web-interface.html#open) and find the **Room Sensor** card. 2. Turn on **Enable Remote Sensors**, then select **Add Sensor…**. Choose your thermometer from the scan results to add it as a source. The card also lists the indoor unit's own sensor and a paired Serin Link. 3. Choose **Single** to use one source, or **Average** and select several sources to feed their average to the heat pump. 4. If a sensor differs from a reference thermometer, adjust its calibration offset to correct the reading. Check the resulting room reading before relying on it. [![Room Sensor card with Single and Average choices, the indoor sensor, Bluetooth thermometers, and a Serin Link](https://serin-labs.com/assets/content/844/media/webui-sensor.png.9bc5f320b7ce.webp)](https://serin-labs.com/assets/media/webui-sensor.png) The Room Sensor card, with two thermometers selected for an average. [View full-size screenshot](https://serin-labs.com/assets/media/webui-sensor.png). The controller's sensor card shows readings and connection information. If the remote source becomes unavailable, the heat pump falls back to its own sensor until the remote source returns. On HomeKit-compatible firmware, the first Bluetooth sensor also appears as its own Apple Home accessory with temperature, humidity, and a low-battery warning. ## Configure sensors in ESPHome **Through Home Assistant:** Home Assistant reads the sensor and sends its temperature to the controller. Home Assistant must stay running to send new readings. This is the setup described below for the included Govee thermometer. **Directly from the sensor:** The controller reads a compatible Bluetooth thermometer itself. Home Assistant does not need to stay running, but you must add the sensor’s configuration to the controller’s ESPHome YAML. **From a Serin Link:** A paired Serin Link sends the temperature from its built-in sensor to the controller. Home Assistant does not need to stay running. Choose one of these methods. ### Add the included Govee sensor to Home Assistant The room sensor sold with the controller is a Govee Bluetooth thermometer. The ESPHome firmware from the flash tool does not read it on its own. Home Assistant receives the thermometer's readings through its Govee Bluetooth integration, then sends the temperature to the controller. Home Assistant needs a Bluetooth receiver within range of the thermometer. Set up the one that fits your installation: - **Home Assistant computer with Bluetooth.** Go to **Settings** > **Devices & services**. Home Assistant usually lists the adapter under **Discovered**; select **Add** on the Bluetooth card. If it is not listed, select **Add integration** and choose **Bluetooth**. - **Home Assistant computer without Bluetooth.** Many have none, including Home Assistant Green. The ESPHome firmware makes the controller a Bluetooth proxy: it receives the thermometer's broadcasts and forwards them to Home Assistant. Once the controller is set up in Home Assistant, there is nothing to add. The controller appears as an entry on the **Bluetooth** integration's page. The two can be used together. The controller is usually in the same room as the thermometer, so the proxy often has the better signal. 1. Place the thermometer where it will stay, following the placement guidance above. 2. In **Settings** > **Devices & services**, find the thermometer under **Discovered** as a Govee Bluetooth device and select **Add**. If it does not appear, select **Add integration**, choose **Govee Bluetooth**, and select the thermometer from the list. 3. Open the new device and confirm that its temperature sensor shows a current reading. Copy that sensor's entity ID. 4. Continue with Use a temperature sensor through Home Assistant, using that entity ID. If the controller is not listed on the Bluetooth integration's page, its firmware may predate the proxy. Open the controller in the ESPHome dashboard and select **Install** to update it. If you installed a configuration from the YAML generator, generate it again with **Home Assistant Bluetooth proxy** selected under **Advanced options**. ### Use a temperature sensor through Home Assistant First add the controller to ESPHome and confirm that your temperature sensor shows a current reading in Home Assistant. The sensor can use Zigbee, Z-Wave, Bluetooth, another ESPHome device, or any other integration that supplies a temperature entity. Home Assistant must stay running to send readings to the controller. 1. Find the sensor's entity ID in Home Assistant, for example `sensor.living_room_temp`, and confirm it has a current reading. 2. Follow [Customize ESPHome](https://serin-labs.com/controller/customize-esphome.html) to import your existing configuration into the YAML generator. 3. Under **Room temperature source**, enable **Home Assistant temperature sensor** and enter the ID in **Sensor entity ID in Home Assistant**. The generator leaves the sensor out of the YAML until you enter an ID. Keep the device identity and existing credentials. 4. Set **Sensor unit in Home Assistant** to the unit Home Assistant shows for the sensor. The generator starts on °F. If the sensor shows Celsius and the unit is left on °F, the controller ignores its readings and the heat pump keeps using its built-in sensor. 5. If Home Assistant receives the thermometer through the controller's Bluetooth proxy, also select **Home Assistant Bluetooth proxy** under **Advanced options**. The generator leaves the proxy out unless it is selected, and without it the thermometer stops reporting. 6. Replace the device's configuration with the generated file and install it over Wi-Fi. Then check that the reported room temperature follows the remote sensor. Fahrenheit and Celsius sensors are both supported when the sensor unit matches. Invalid readings are ignored. If the remote source becomes unavailable, the indoor unit returns to its built-in sensor and resumes the remote reading when it reconnects. If Home Assistant is down, it cannot send new remote readings. This is also true for a thermometer that reaches Home Assistant through the controller's Bluetooth proxy, since the proxy only forwards readings to Home Assistant. ### Read a Bluetooth thermometer directly This route runs locally on the controller; Home Assistant does not forward the readings. Add the thermometer's sensor component and BLE tracker to your ESPHome YAML, using its Bluetooth MAC address and any required encryption key. Follow [Customize ESPHome](https://serin-labs.com/controller/customize-esphome.html) to edit and install your configuration. Examples include [Xiaomi thermometers with stock or PVVX firmware](https://esphome.io/components/sensor/xiaomi_ble/) and [RuuviTag](https://esphome.io/components/sensor/ruuvitag/). Match the component to the thermometer's model and advertisement format. Some [Govee models, such as H5075, can also be read directly](https://community.home-assistant.io/t/read-govee-temperature-humidity-ble-advertisements-with-esp32-and-esphome/230449), using custom YAML to decode their Bluetooth broadcasts. Connect the temperature sensor's `on_value` automation to `id(hp).set_remote_temperature(x);`, where `hp` is the CN105 climate ID in the generated configuration and `x` is the reading in Celsius. Filter invalid readings and send updates more often than the configured `remote_temperature_timeout`. If updates stop, that timeout controls when the heat pump returns to its built-in sensor. ### Use a Serin Link as the room sensor A [Serin Link](https://serin-labs.com/link.html) has a built-in temperature and humidity sensor and sends its readings directly to the controller. The firmware from the flash tool includes this route. A configuration from the YAML generator includes it only when you enable **Connect a Serin Link** and **Use the Link as a room temperature sensor** under **Serin Link**; see [Customize ESPHome](https://serin-labs.com/controller/customize-esphome.html). 1. If the Link is not paired, select **Pair Serin Link** in Home Assistant, then choose **Settings > Link > Pair** on the Link. 2. Select the Link as the source. On the Link, open **Settings**, open **Room Sensor**, highlight the Link's entry, such as **Serin Link 1**, and push the knob. In Home Assistant, you can instead set **Room Temperature Source** to **Serin Link 1**. The heat pump keeps its built-in sensor until you select the Link. To return to the built-in sensor, select **Heat pump**. The Link's **Temperature** and **Humidity** appear in Home Assistant under the **Serin Link 1** device with either source selected. If you also enable **Home Assistant temperature sensor** in the YAML generator, that entity appears in the same list as a source named **Home Assistant**. The heat pump uses it only while it is selected. ## Check the reading and fallback Compare the controller's room reading with the chosen thermometer and confirm that climate commands still work. For web-interface setup, check the sensor's reporting state, battery, and signal in the Room Sensor card. For direct Bluetooth in ESPHome, check the device logs for fresh readings. For the Home Assistant route, check that the source entity remains available and readings reach the controller. For the included Govee thermometer, its device page in Home Assistant also shows the battery level. If a sensor drops out, restore its power or connection and check that remote readings resume. If the indoor unit reports no temperature even with its own sensor, use [CN105 troubleshooting](https://serin-labs.com/troubleshooting.html#cn105) before changing the sensor configuration. Browse the manual ↑ --- # Status lights and buttons > Look up controller LED colors, blink patterns, NanoC6 Wi-Fi indication, and button hold actions by firmware. Source: https://serin-labs.com/controller/status-lights.html Last updated: 2026-10-15 Use this reference to identify the controller's current state before choosing a troubleshooting step. The meaning depends on the installed firmware. [![NanoC6 with its turquoise button on top and three indicator windows below the USB-C port.](https://serin-labs.com/assets/content/800/diagrams/nanoc6-status-lights.webp.d6d363a1c799.webp)](https://serin-labs.com/assets/diagrams/nanoc6-status-lights.webp) **NanoC6 button and indicators** ButtonThe turquoise press surface on top of the controller. Indicator windowsThe three openings below the USB-C port let you see the LEDs. RGB status LEDIts color and blink pattern indicate the controller's state. See the status light meanings below. Blue Wi-Fi LEDOn when disconnected from Wi-Fi; off when connected. These LED meanings apply to HomeKit-compatible and Matter-compatible firmware. ESPHome uses different LED behavior. [Enlarge illustration](https://serin-labs.com/assets/diagrams/nanoc6-status-lights.webp). ## Status light meanings On the HomeKit-compatible and Matter-compatible firmware, the RGB LED provides status information. Its color identifies the active function, while its pattern indicates the current state. A slow pulse means the controller is working or waiting. A solid light indicates a steady state or fault. A fast blink indicates that attention is required. With ESPHome firmware, the LED is a standard Home Assistant `light` entity. The status meanings below do not apply. | Light | What it means | | --- | --- | | Off | The controller is operating normally. | | White solid | The controller is starting. The light turns off when the web interface is available, usually after about five seconds. A new Matter-compatible controller that has not been added to an app stays white until you add it. | | White slow pulse | A firmware update is in progress. Do not disconnect power. If the update does not finish, see · [OTA update fails or the controller does not respond](https://serin-labs.com/troubleshooting.html#ota-recovery) · . | | White fast blink | The identification function is active. The light turns off after three seconds. | | Blue slow pulse | The setup Wi-Fi network is available and waiting for a connection. On Matter-compatible firmware this is a recovery network; initial pairing uses Bluetooth. | | Blue fast blink | The controller is connecting with the Wi-Fi credentials you entered. This may take up to 30 seconds. | | Blue solid | The Wi-Fi connection was lost, and the controller is reconnecting. This applies only to boards without a separate blue Wi-Fi LED. See · [controller repeatedly disconnects from Wi-Fi](https://serin-labs.com/troubleshooting.html#wifi-drops) · . | | Green solid | Confirmation: the controller connected to Wi-Fi or paired with a Serin Link. The light remains on for a few seconds. | | Red solid | The indoor unit is not responding over the CN105 connection. See · [CN105 is connected, but no data appears](https://serin-labs.com/troubleshooting.html#cn105-no-data) · . | | Red fast blink, then stops | The most recent action failed. The Wi-Fi credentials may be incorrect, or Serin Link pairing was unsuccessful. | | Red fast blink, continuous | The indoor unit is reporting an error code. The web interface displays the code. | | Yellow slow pulse | The controller entered safe mode after repeated crashes. See · [the light is pulsing yellow](https://serin-labs.com/troubleshooting.html#safe-mode-light) · . | | Purple slow pulse | A Serin Link pairing window is open. | | Orange fast blink | The paired Serin Link was removed. The light blinks for two seconds, then the controller restarts. | | Cyan slow pulse | The controller is on your network and has not been added to an app (Matter-compatible firmware). | | Cyan fast blink | A pairing process is in progress (Matter-compatible firmware). | The controller displays one status signal at a time. Setup signals take priority, so a fault may appear only after setup is complete. Holding the board button overrides the current signal. A separate blue LED indicates Wi-Fi status on the M5Stack NanoC6. Lit means disconnected, and off means connected. On this board, the RGB LED does not use blue to indicate a lost Wi-Fi connection. ## Button hold actions These actions apply to HomeKit-compatible and Matter-compatible firmware. For Wi-Fi changes and full resets, follow the [maintenance guide](https://serin-labs.com/controller/maintenance.html#wifi). ESPHome does not use these button actions. The light changes as you hold the button. Pairing actions happen when you release it; the Wi-Fi reset happens while you are still holding it at 10 seconds. | Hold time | Light | Action | | --- | --- | --- | | 2 to 7 seconds | Purple solid | Release to open a Serin Link pairing window or remove the current pairing. Releasing while a pairing window is open cancels it. A NanoC6 running Matter-compatible firmware takes no action and shows no light. | | 7 to 10 seconds | Red fast blink | No action. Release the button during this interval to cancel. | | 10 seconds | Red fast blink | Erases the stored Wi-Fi credentials and restarts immediately, while the button is still pressed. | On boards with a button but no RGB LED, the same press durations apply, but no visual indicator is available. Browse the manual ↑ --- # Backups and diagnostics > Back up and restore the controller's settings, and collect diagnostics, device events, and logs for a support request. Source: https://serin-labs.com/controller/support-info.html Last updated: 2026-10-15 These tools are in the web interface of HomeKit-compatible and Matter-compatible firmware. For ESPHome, back up the YAML in the ESPHome dashboard and use its logs, as described at the end of this page. ## Back up and restore settings On HomeKit-compatible and Matter-compatible firmware, save a copy of the controller's settings before you try a pre-release build, return to an older version, switch firmware, or do a factory reset. 1. Open the [web interface](https://serin-labs.com/controller/web-interface.html#open) and expand **Device**. 2. Select **Export Settings**. Your browser downloads a file named after the controller, for example `living-room-settings.json`. 3. To restore, select **Import Settings** and choose the file. The settings apply straight away. If the file changes the modes under **Unit Capabilities**, select **Firmware** > **Restart Device** so your app shows them. Scroll sideways to read all columns. | The file includes | The file leaves out | | --- | --- | | Device name, °C or °F, vane type, and unit capabilities | The Wi-Fi network and password | | Separate heat and cool targets for Auto mode | The setup code and app pairing | | Room temperature source and sensor timeout | A paired Serin Link and its Night Dimming settings | | The first Bluetooth thermometer | Other thermometers, sensor names, offsets, and the Single or Average choice | | Poll interval and log level | The · **Beta updates** · setting | On Matter-compatible firmware, the file also includes the thermostat and fan tile names and the **Separate Sensor Tiles** setting. A file exported from HomeKit-compatible firmware can be imported on Matter-compatible firmware. HomeKit-compatible firmware does not accept a file exported from Matter-compatible firmware. ## Copy diagnostics for support When you contact support about a controller running HomeKit-compatible or Matter-compatible firmware, include the text from **Copy Diagnostics**. It answers most of the first questions about a controller. 1. Open the web interface and expand **About**. 2. Select **Copy Diagnostics**. The page shows "Diagnostics copied". 3. Paste the text into your message or the [contact form](https://serin-labs.com/contact.html). [![About section listing board, firmware version, IP address, mDNS name, MAC, last reset, boots, crashes, memory and drop counts, a Copy Diagnostics button, and a Device Events list](https://serin-labs.com/assets/content/860/media/webui-about.png.a4b9e843f1bf.webp)](https://serin-labs.com/assets/media/webui-about.png) Wi-Fi Drops and Pump Link Drops count since the last restart; Boots and Crashes count since the last factory reset. [View full-size screenshot](https://serin-labs.com/assets/media/webui-about.png). The copied text lists the board, firmware version, network name, signal strength, IP address, MAC address, uptime, restart reason, crash count, the heat-pump connection and any error code, the pairing status, and recent device events. It does not include your Wi-Fi password or the setup code. **Last Reset** shows why the controller last started: Scroll sideways to read all columns. | Value | What it means | | --- | --- | | `POWER_ON` | Power was switched on or restored. | | `SW_RESTART` | The controller restarted itself: after an update, a pairing or Wi-Fi reset, or · **Restart Device** · . | | `BROWNOUT` | The supply voltage dropped too low. Check the power source and the cable connections. | | `PANIC` · , · `TASK_WDT` · , · `INT_WDT` · , · `WDT` | The firmware crashed and restarted. Include the diagnostics text in a support request. | ## Read device events On HomeKit-compatible and Matter-compatible firmware, **Device Events**, under **About**, keeps the last 24 events, newest first, and keeps them through restarts. Select **Refresh** to load new ones. An event shows the date and time, or `boot #N` and the time since that start if the controller had not yet set its clock. Scroll sideways to read all columns. | Event | What happened | | --- | --- | | `BOOT` | The controller started. The reason follows in parentheses, using the · **Last Reset** · values above. | | `CRASH` | The controller restarted after a crash. | | `SAFE_MODE` | Repeated crashes started · [safe mode](https://serin-labs.com/controller/maintenance.html#safe-mode) · . | | `OTA` | A firmware update was installed. | | `CN105_LOST` | The indoor unit stopped answering over the CN105 cable. | | `CN105_OK` | The indoor unit answered again. | | `CN105_ERROR` | The indoor unit reported an error code. | | `RECOVERY_AP` | The backup setup network opened. | | `HK_RESET` | App pairing was reset. | | `WIFI_CREDS` | The saved Wi-Fi network changed. · `(erased)` · means it was erased. | Repeated `CN105_LOST` events point to the cable or connector; see [CN105 troubleshooting](https://serin-labs.com/troubleshooting.html#cn105). ## Capture a live log On HomeKit-compatible and Matter-compatible firmware, a live log shows what the controller is doing while a problem happens. Support may ask for one. 1. Open the web interface and expand **Diagnostics · Logs**. 2. Under **Log Level**, select **Debug** for the most detail. 3. Leave the page open and make the problem happen again. 4. Select **Copy** under **Live Log** and paste the text into your message. [![Diagnostics · Logs section with Log Level set to Debug, Copy and Clear buttons, and several live log lines](https://serin-labs.com/assets/content/860/media/webui-logs.png.0bae7b94f49c.webp)](https://serin-labs.com/assets/media/webui-logs.png) The log keeps the last 200 lines, and only while the page is open. **Debug** returns to **Info** when the controller restarts. [View full-size screenshot](https://serin-labs.com/assets/media/webui-logs.png). ## ESPHome Back up the controller's YAML from the ESPHome dashboard, with any secrets it uses. For logs, select **Logs** on the controller's card in the ESPHome dashboard, or open the controller's own web page. [Diagnostic sensors](https://serin-labs.com/controller/controls.html#diagnostics) can be added through the YAML generator. Browse the manual ↑ --- # Update firmware > Check the installed firmware version, update over Wi-Fi or USB, try a pre-release build, and return to the stable release. Source: https://serin-labs.com/controller/updates.html Last updated: 2026-10-15 Firmware updates are free. HomeKit-compatible and Matter-compatible firmware update from the controller's [web interface](https://serin-labs.com/controller/web-interface.html), and ESPHome updates from the ESPHome dashboard. The flash tool can update any of them over USB. An update over Wi-Fi keeps the controller's Wi-Fi network, pairing, and settings. ## Check the installed version For any firmware, the [flash tool](https://serin-labs.com/flash.html) also reports the installed firmware and version when the controller is connected over USB. It reads the board before it writes anything. ### HomeKit-compatible and Matter-compatible firmware 1. [Open the web interface](https://serin-labs.com/controller/web-interface.html#open) and select the **Firmware** heading to expand that section. 2. Read the version under **Installed**, for example `v0.2.5`. **About** > **Firmware** shows the same number. After an update, reload the page before you read the version. **Installed** keeps showing the old number until the page reloads. ### ESPHome ESPHome firmware reports the ESPHome release it was built with; the Serin configuration has no version number of its own. Home Assistant shows it as the controller's **ESPHome Version** sensor. ## Update over Wi-Fi These steps apply to HomeKit-compatible and Matter-compatible firmware. The controller stays in the indoor unit. 1. Open the web interface and expand **Firmware**. 2. Select **Check for Updates**. If a newer release exists, an install button appears with its version number, for example **Install v0.2.5**. 3. Select the install button and confirm. Your phone or computer downloads the update and sends it to the controller, which checks it and restarts. Keep this page open, and the phone awake, until it shows "Update complete! Restarting...". The controller's light pulses white while the update installs. Do not switch off the power. 4. After the controller restarts, reload the page and check the version under **Installed**. Then change the mode or target temperature and confirm that the indoor unit responds. [![Firmware section showing Installed v0.2.4, the message Version 0.2.5 available, an Install v0.2.5 button, a What's new link, and the Beta updates switch turned off](https://serin-labs.com/assets/content/860/media/webui-fw-update.png.436a410a4042.webp)](https://serin-labs.com/assets/media/webui-fw-update.png) **What's new** opens the release notes. Matter-compatible firmware has no release notes link. [View full-size screenshot](https://serin-labs.com/assets/media/webui-fw-update.png). **Check:** The version under **Installed** is the new one, and the indoor unit responds to a command. Your phone or computer checks for the update and downloads it, so it needs internet access. The controller does not. When you open the web interface, the page also checks by itself if this browser has not checked in the past day, and marks the section **Update available** when it finds one. The controller never installs an update by itself. If the new version does not start correctly, the controller returns to the previous version by itself; see [the version did not change](https://serin-labs.com/troubleshooting.html#version-unchanged). The result line under **Installed** explains what the check found: Scroll sideways to read all columns. | Message | What it means | | --- | --- | | Up to date | The controller runs the newest stable release. Pre-release builds are offered only when · **Beta updates** · is on. | | Version … available | A newer release is ready to install. | | … manifest missing install data, install manually below. | No release is published for this board, which is usual for a DIY build. Use the flash tool, or install your own build as a · firmware file · . | | Any other · **Check failed** · message | Your phone or computer could not get the release information. Check its internet connection and try again, or install a · firmware file · . | | Install failed, or Upload failed | The update did not finish, and the controller still runs its previous version. Select the install button again, or reload the page. The reason after "Upload failed:" is explained under · Install a firmware file · . | A custom build shows no **Check for Updates** button. Update it with the flash tool or a firmware file. ## Try a pre-release build Pre-release builds get new fixes and features before a stable release. They are newer and less tested. HomeKit-compatible and Matter-compatible firmware can install them from the web interface. ESPHome has no pre-release builds. 1. Open **Firmware** and turn on **Beta updates**. The page checks for updates straight away. 2. Select the install button, for example **Install v0.2.6-beta.3 · beta**, and confirm. 3. After the restart, reload the page and check **Installed**. [![Firmware section with Beta updates turned on, the message Version 0.2.6-beta.3 · beta available, and an Install v0.2.6-beta.3 · beta button](https://serin-labs.com/assets/content/860/media/webui-fw-beta.png.2a5cd156e8d0.webp)](https://serin-labs.com/assets/media/webui-fw-beta.png) With **Beta updates** on, the controller offers the newer of the latest pre-release and the latest stable release. [View full-size screenshot](https://serin-labs.com/assets/media/webui-fw-beta.png). The **Beta updates** setting is saved on the controller, so it stays on whichever phone or computer you use next. When a stable release is newer than your pre-release, the stable release is offered instead. ## Return to the stable release These steps apply to HomeKit-compatible and Matter-compatible firmware. 1. Open **Firmware** and turn off **Beta updates**. The section shows "You're on a pre-release build." 2. Select **Return to stable** (the button shows the stable version) and confirm. 3. After the restart, reload the page, check **Installed**, and check your settings. [![Firmware section on v0.2.6-beta.3 with Beta updates off, the message You're on a pre-release build, and a Return to stable · v0.2.5 button](https://serin-labs.com/assets/content/860/media/webui-fw-stable.png.29ea4587b179.webp)](https://serin-labs.com/assets/media/webui-fw-stable.png) If you turn off **Beta updates** and do not return to stable, the controller keeps its pre-release build until a newer stable release is available. [View full-size screenshot](https://serin-labs.com/assets/media/webui-fw-stable.png). ## Update over USB Use the flash tool when the controller is not on your network, when ESPHome firmware has not been adopted, or to install a pre-release of the HomeKit-compatible firmware from a computer. The controller must be out of the indoor unit and powered only by USB; follow the [USB installation steps](https://serin-labs.com/controller/maintenance.html#reset) for disconnecting and reconnecting it. 1. Connect the controller to a computer with a USB-C data cable. Open the [flash tool](https://serin-labs.com/flash.html) in Chrome, Edge, or Brave and select **Connect a device**. 2. Select the firmware already installed. For HomeKit-compatible and Matter-compatible firmware, the tool marks it **ON THE BOARD** and shows the newer version if one is available. 3. To install a pre-release of the HomeKit-compatible firmware, select **Apple Home** and tick **Install the pre-release build**. The box appears only when a pre-release exists for your board. 4. Leave **Erase everything first** unticked to keep Wi-Fi, pairing, and settings. Select the button, for example **Update to 0.2.6-beta.3**, and keep the cable connected until the tool finishes. [![Flash tool firmware step with Apple Home selected and marked On the board, Install the pre-release build ticked showing version 0.2.6-beta.3, Erase everything first unticked, and an Update to 0.2.6-beta.3 button](https://serin-labs.com/assets/content/1164/media/flash-prerelease.png.ad04e9ea3cbf.webp)](https://serin-labs.com/assets/media/flash-prerelease.png) The pre-release box is offered for the Apple Home firmware only. The Google Home, Alexa & SmartThings build installs its stable release over USB; its pre-release is installed from the web interface. [View full-size screenshot](https://serin-labs.com/assets/media/flash-prerelease.png). To go back to the stable release over USB, leave **Install the pre-release build** unticked. The tool warns that the build is older than the one installed. Tick **Install the older version anyway**, then install. ## Install a firmware file HomeKit-compatible and Matter-compatible firmware can install a firmware file from your phone or computer. Use this when support sends you a file, or when your phone or computer cannot reach the release server. 1. Get the file for your board. For HomeKit-compatible firmware, open **What's new** or the [release page](https://github.com/akifbayram/mitsubishi-cn105-homekit/releases) and download `firmware-nanoc6.bin`, or `firmware-m5atoms3-lite.bin` for the Atom S3 Lite. 2. In **Firmware**, under **Manual .bin Upload**, select **Choose File** and pick the file. Select **Upload** and confirm. 3. Wait for "Update complete! Restarting...", then reload the page and check **Installed**. If the controller refuses the file, the message after "Upload failed:" gives the reason: Scroll sideways to read all columns. | Message | What to do | | --- | --- | | Not an app image | The file is a complete flash image, such as the one the flash tool writes. Download the file named above. | | Firmware is for a different chip | The file is for another board. Download the file for your board. | | Firmware is a different application | HomeKit-compatible and Matter-compatible firmware cannot replace each other over Wi-Fi. Use the flash tool to · [switch firmware](https://serin-labs.com/controller/firmware.html#install) · . | | Upload stalled | The Wi-Fi connection dropped during the upload. Try again. | HomeKit-compatible firmware also accepts a command-line upload with `curl`; see its [source documentation](https://github.com/akifbayram/mitsubishi-cn105-homekit). ## ESPHome updates How you update ESPHome firmware depends on how the controller was set up. - **Adopted in the ESPHome dashboard.** Select **Install** on the controller's card to build the current configuration and send it over Wi-Fi. This picks up changes to the Serin configuration. The dashboard marks a controller for update only when a new ESPHome release comes out; Serin changes do not trigger that notice. - **Customized with the YAML generator.** The generated configuration is a copy made when you generated it. To pick up later changes, [generate it again](https://serin-labs.com/controller/customize-esphome.html) and install it. - **Not adopted yet.** The firmware from the browser installer does not update itself. [Adopt it](https://serin-labs.com/esphome/setup.html#pair) and install from the dashboard, or reinstall it with the flash tool. Reinstalling ESPHome with the flash tool resets its stored settings; the button reads **Reset and install**. If an update fails or the controller stops responding, use [update recovery](https://serin-labs.com/troubleshooting.html#ota-recovery). Browse the manual ↑ --- # Web interface and everyday controls > Open your Serin Controller on the local network, adjust the heat pump, and find settings and logs for your firmware. Source: https://serin-labs.com/controller/web-interface.html Last updated: 2026-10-15 The controller has a local browser interface after it joins your Wi-Fi network. Complete the [Apple Home](https://serin-labs.com/homekit/setup.html), [ESPHome](https://serin-labs.com/esphome/setup.html), or [Matter setup guide](https://serin-labs.com/matter/setup.html) first. The interface you see depends on the installed firmware. ## Open the controller 1. Connect your phone or computer to the controller's local network. 2. Find its address. HomeKit-compatible firmware uses `http://Serin-XXXX.local`, with the controller's own four-character suffix. On Matter-compatible firmware, use the IP address from your router's connected-device list, because the `.local` address may not open. ESPHome uses `http://.local`; after adding it to ESPHome, use the name you chose. 3. Open that address in a browser. If that address does not open, find the controller in your router's connected-device list and open `http://`. The ESPHome dashboard also shows the IP address. **Check:** You should see the controller's current state and available controls. Use `http://`, not `https://`. On HomeKit-compatible and Matter-compatible firmware, you can also add this page to your phone's home screen for quick access. ## Find a section On HomeKit-compatible and Matter-compatible firmware, every section except **Climate** starts closed. Select a heading to open it. Your browser remembers which sections you left open. Scroll sideways to read all columns. | Section | What it contains | | --- | --- | | **Climate** | Mode, including · **Off** · , and target temperature. | | **Airflow** | Fan speed and vane positions. | | **Heat Pump · CN105** | The connection to the indoor unit, compressor and outside readings, and any error code. See · [diagnostics](https://serin-labs.com/controller/controls.html#diagnostics) · . | | **Room Sensor** | The temperature source the heat pump uses. See · [room sensors](https://serin-labs.com/controller/room-sensors.html#web-interface) · . | | **Network · Wi-Fi** | Network name, signal, IP address, and · [changing the network](https://serin-labs.com/controller/maintenance.html#wifi) · . | | **HomeKit** · or · **Matter** | Pairing status, the setup code, and · [pairing resets](https://serin-labs.com/controller/maintenance.html#pairing) · . | | **Link** | A paired · [Serin Link](https://serin-labs.com/link/manual.html) · . | | **Device** | Name, temperature units, · indoor-unit settings · , settings backup, and factory reset. | | **Firmware** | Installed version, · [updates](https://serin-labs.com/controller/updates.html) · , · **Flash LED** · , and · **Restart Device** · . | | **About** | Board, addresses, restart counts, · [Copy Diagnostics](https://serin-labs.com/controller/support-info.html#diagnostics) · , and device events. | | **Diagnostics · Logs** | Log level and the · [live log](https://serin-labs.com/controller/support-info.html#logs) · . | [![Closed section headings from Airflow to Diagnostics · Logs, several with a status such as Connected, Paired, or the Wi-Fi signal in dBm](https://serin-labs.com/assets/content/860/media/webui-sections.png.f4c16ddac8a0.webp)](https://serin-labs.com/assets/media/webui-sections.png) On Matter-compatible firmware the **HomeKit** section is named **Matter**, and a NanoC6 shows no **Link** section. [View full-size screenshot](https://serin-labs.com/assets/media/webui-sections.png). ## Change a setting and check the result 1. Choose a supported mode and target temperature. Fan and vane controls are available when supported by the indoor unit and firmware configuration. 2. Check that the indoor unit responds and the reported state reflects your change. A page that opens confirms network access; the unit's response confirms the CN105 connection. 3. Try a change with the handheld remote and check that the controller reports it back. If commands do not reach the unit, use [CN105 troubleshooting](https://serin-labs.com/troubleshooting.html#hvac-no-response). The HomeKit-compatible and Matter-compatible interfaces expose heat-pump controls beyond the smart-home app's thermostat card. Apple Home has no vane controls; Google Home, Alexa, and SmartThings may also omit fan speed, Dry, and Fan-only modes. See the [controls reference](https://serin-labs.com/controller/controls.html) for the differences. ESPHome has its own web page showing the controls and readings enabled in its configuration. It provides direct control while Home Assistant is unavailable. Keep **ESPHome web server** enabled when [customizing the configuration](https://serin-labs.com/controller/customize-esphome.html) if you want to retain browser access. ![Climate controls in the HomeKit-compatible firmware's web interface, showing mode and target temperature beside the room reading](https://serin-labs.com/assets/media/webui-climate.png) Climate controls on HomeKit-compatible firmware. ESPHome uses its own web server. ## Match the controller to your indoor unit On HomeKit-compatible and Matter-compatible firmware, these settings are in the **Device** section. Select **Save Settings** after changing them. - **Unit Capabilities:** turn off modes your indoor unit does not have. They disappear from the web interface, your smart-home app, and a paired Serin Link. **Auto** needs both **Heat** and **Cool**. After saving, select **Reboot Now** so your app shows the change. - **Vane Type:** match your unit's louvers. **None** and **Vertical** hide the vane controls the unit does not have. - **Temp Unit:** °C or °F. It applies as soon as you select it. - **Device Name:** names the web page and a paired Serin Link. It does not rename the thermostat in your app; rename it there. - **Poll Interval**, under **Advanced:** how often the controller reads the indoor unit. The default is 2000 ms. Leave it unless support asks you to change it. - **CN105 Baud Rate**, under **Advanced:** the speed the controller talks to the indoor unit at. Leave it at 2400 unless the unit never connects. Some units, including SEZ-KD ducted units sold outside North America, need 9600; see [compatibility](https://serin-labs.com/compatibility.html). If the unit still does not connect after switching, turn the indoor unit off and on again at its breaker. [![Device section with Device Name set to Living Room, Temp Unit set to °F, Vane Type set to Vertical, Unit Capabilities switches for Heat, Cool, Auto, Dry and Fan, and Save Settings, Export Settings and Import Settings buttons](https://serin-labs.com/assets/content/860/media/webui-device.png.80f83b516398.webp)](https://serin-labs.com/assets/media/webui-device.png) These settings belong to one controller. With several indoor units, set each controller separately. [View full-size screenshot](https://serin-labs.com/assets/media/webui-device.png). On Matter-compatible firmware, **Names & sensors** in the **Matter** section sets the names your app shows for the thermostat and fan tiles. **Separate Sensor Tiles** adds room temperature and humidity as their own tiles after the controller restarts. ## Find settings, diagnostics, and logs On HomeKit-compatible firmware, the interface includes the Apple Home pairing card, device name, °C/°F preference, unit capabilities, Wi-Fi scanning, and live logs. Its Room Sensor card selects temperature sources. Matter-compatible firmware also provides thermostat and vane controls, diagnostics, settings, and live logs; its pairing flow uses the Matter setup code. - [Select a room temperature sensor](https://serin-labs.com/controller/room-sensors.html). - [Interpret the available diagnostic readings](https://serin-labs.com/controller/controls.html#diagnostics). - [Update firmware](https://serin-labs.com/controller/updates.html). - [Change Wi-Fi, reset pairing, or factory reset](https://serin-labs.com/controller/maintenance.html). - [Back up settings or collect diagnostics for support](https://serin-labs.com/controller/support-info.html). For ESPHome logs, use the controller's browser interface or the ESPHome dashboard. HomeKit screenshots on the platform overview show a different interface from ESPHome's web server. ## Identify a controller On HomeKit-compatible and Matter-compatible firmware, open the web interface of one controller and select **Flash LED** in the **Firmware** section. The status light on that controller blinks white for three seconds. ## If the interface does not open Browse the manual ↑ --- # Documentation > Manuals for Serin Controller and Serin Link, and the Serin Link DIY build guide. Find assembly, setup, controls, maintenance, and troubleshooting instructions. Source: https://serin-labs.com/documentation.html Last updated: 2026-10-17 Choose your product's manual for setup, everyday controls, maintenance, and troubleshooting. Serin ControllerThe Wi-Fi controller connected to your indoor unit's CN105 port. Serin LinkThe dial for controlling your rooms. ## Serin Controller New controller? Start with the quick start. Already connected? Go directly to the task you need. [Quick startFrom checking your model to controlling the indoor unit.](https://serin-labs.com/setup.html) [Choose your firmwareFind the route for the smart-home app you use.](https://serin-labs.com/controller/firmware.html) [InstallationConnect the controller to CN105 and position the board and cable.](https://serin-labs.com/controller/install.html) [Web interfaceOpen the web interface and adjust everyday controls.](https://serin-labs.com/controller/web-interface.html) [Room temperature sensorsUse a reading from the occupied part of the room.](https://serin-labs.com/controller/room-sensors.html) [Customize ESPHomeConfigure optional features and build firmware for your controller.](https://serin-labs.com/controller/customize-esphome.html) [Update firmwareInstall updates and pre-release builds, or return to the stable release.](https://serin-labs.com/controller/updates.html) [Wi-Fi, pairing and resetsChange networks, reset pairing, or factory reset the controller.](https://serin-labs.com/controller/maintenance.html) [Backups and diagnosticsSave your settings and collect details for a support request.](https://serin-labs.com/controller/support-info.html) [TroubleshootingFind the cause of a flashing, pairing, or control problem.](https://serin-labs.com/troubleshooting.html) Reference: [controls, entities and diagnostics](https://serin-labs.com/controller/controls.html), [status lights and buttons](https://serin-labs.com/controller/status-lights.html), [DIY parts and supported boards](https://serin-labs.com/parts.html), and [CN105 wiring](https://serin-labs.com/wiring.html). ## Serin Link New dial? Start with the quick start. Already connected? Go directly to the task you need. [Quick start](https://serin-labs.com/link/manual.html) [Pair your first controller](https://serin-labs.com/link/pairing.html) [Temperature, modes and airflow](https://serin-labs.com/link/controls.html) [Rooms and zones](https://serin-labs.com/link/zones.html) [Room temperature sensors](https://serin-labs.com/link/room-sensors.html) [Display and control settings](https://serin-labs.com/link/settings.html) [Controller Wi-Fi and smart-home pairing](https://serin-labs.com/link/connections.html) [Updates and resets](https://serin-labs.com/link/maintenance.html) [Knob and touchscreen gestures](https://serin-labs.com/link/gestures.html) [Status and diagnostics](https://serin-labs.com/link/diagnostics.html) [Troubleshooting](https://serin-labs.com/link/troubleshooting.html) [DIY build guide](https://serin-labs.com/link/build-guide.html) ## Tools These run in your browser. The setup and configuration guides link to them when you need them. - [Flash controller firmware](https://serin-labs.com/flash.html): install firmware over USB from a computer. - [Flash Serin Link firmware](https://serin-labs.com/flash-link.html): install the dial's firmware over USB. - [ESPHome YAML generator](https://serin-labs.com/esphome/generate-yaml.html): create a configuration for your indoor unit and optional features. ## Get help Check [compatibility](https://serin-labs.com/compatibility.html), browse the [FAQ](https://serin-labs.com/faq.html), or [contact support](https://serin-labs.com/contact.html). For shared reference information, read [safety](https://serin-labs.com/safety.html), [licenses and compliance](https://serin-labs.com/licenses.html), and [security](https://serin-labs.com/security.html). Browse documentation ↑ --- # Mitsubishi CN105 ESPHome Controller for Home Assistant > Add a Mitsubishi mini-split to Home Assistant with an ESP32 controller on the CN105 port. Get local climate, vane, room-sensor, and diagnostic entities through ESPHome. Source: https://serin-labs.com/esphome/features.html Last updated: 2026-10-15 Install ESPHome on a CN105 ESP32 controller to add a Mitsubishi heat pump directly to Home Assistant. Home Assistant displays the indoor unit as a climate entity, the vanes as selection controls, and each enabled reading as a sensor. All communication stays on your local network, and no online account is required. You can [buy the pre-assembled CN105 controller](https://serin-labs.com/controller.html) or build one from the [parts list](https://serin-labs.com/parts.html). Already have a controller? [Set it up with Home Assistant](https://serin-labs.com/esphome/setup.html). At a glance - The indoor unit appears as a standard climate entity without a bridge or cloud service. - You can use standard Home Assistant features, including schedules, presence detection, templates, dashboards, and history. - The integration uses echavet's open-source [MitsubishiCN105ESPHome](https://github.com/echavet/MitsubishiCN105ESPHome) component. Good to know - This build requires Home Assistant with the ESPHome add-on. If you do not use Home Assistant, choose an [Apple Home or Matter-compatible firmware](https://serin-labs.com/controller/firmware.html) instead. - The browser installer provides a standard configuration. You can add optional features later over Wi-Fi; the USB cable is required only for the initial installation. The standard browser-installed configuration includes core climate and vane controls and Serin Link support. Diagnostics, room sensors other than a Link, and other optional features require [customizing the ESPHome configuration](https://serin-labs.com/controller/customize-esphome.html) after adding the controller to ESPHome. --- ## Controls and readings in Home Assistant The standard configuration adds thermostat controls, airflow direction controls, the board's light and button, and readings for network status and firmware version. Home Assistant calls these controls and readings entities. Their IDs use the device name you choose. The [entity reference](https://serin-labs.com/controller/controls.html#esphome) explains each control and reading. --- ## Climate control Control Off, Heat, Cool, Auto, Dry, and Fan modes, with targets from 15 to 31°C in 0.5° increments and room temperature displayed to 0.1°. Changes made with the handheld remote appear in Home Assistant. Available fan speeds are listed in the [control reference](https://serin-labs.com/controller/controls.html#esphome). Auto mode uses one target by default. You can set separate heating and cooling targets with a [customized configuration](https://serin-labs.com/controller/customize-esphome.html). --- ## Vane control The standard configuration includes vertical and horizontal vane selectors with fixed positions and Swing. The generator can add swing to the climate entity and Even, Indirect, or Direct airflow on supported units. Omit the horizontal control if your unit has no horizontal vane. See [configuration options](https://serin-labs.com/controller/customize-esphome.html#options). --- ## Room temperature sensor You can configure the heat pump to use a temperature sensor already connected to Home Assistant. This includes sensors connected through Zigbee, Z-Wave, Bluetooth, or another ESPHome device. Fahrenheit sensors work too. Invalid readings are ignored, and the indoor unit falls back to its own sensor if the remote reading becomes unavailable. Follow [room sensor setup](https://serin-labs.com/controller/room-sensors.html#esphome) to add this generator option and verify the reading. --- ## Heat pump diagnostics The optional Diagnostics configuration adds nine sensors for compressor frequency, outside temperature, power and energy, runtime, connection uptime, and operating state. They are enabled when included, ready for Home Assistant history graphs. An optional i-See occupancy binary sensor is available on equipped indoor units. See the [diagnostics reference](https://serin-labs.com/controller/controls.html#diagnostics) and [customization guide](https://serin-labs.com/controller/customize-esphome.html). --- ## Extra controls Generator options add Night mode, Air purifier, and Circulator switches on indoor units that support them. ISU functions expose the unit's installer service codes. See [optional controls and their limits](https://serin-labs.com/controller/customize-esphome.html#options) before enabling them. --- ## Serin Link [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) The standard browser-installed firmware pairs with a Serin Link as installed. For a generated configuration, expand **Serin Link** and enable **Connect a Serin Link**. This option is off by default, so select it when you replace the standard configuration or any configuration that uses a Link. The ESPHome build can pair with a [Serin Link](https://serin-labs.com/link.html), a rotary control with a display for adjusting temperature and mode without a phone. The dial communicates directly with the controller, so it continues to work if Wi-Fi or Home Assistant is unavailable. - **Pair Serin Link** appears as a button in Home Assistant and in the controller's enabled ESPHome web interface. Start pairing there, then choose **Settings > Link > Pair** on Serin Link. A generated configuration also adds a **Forget All Links** button. - **Serin Link 1** appears in Home Assistant as its own device, listed under the controller. Its **Connected** sensor reports whether the Link is connected and can be used in automations. **MAC**, **Last Seen**, and **Firmware** identify the Link. - **The dial follows the vane controls** with the standard configuration, and with a generated configuration for the vane controls it includes. - **The Link can be the room temperature sensor** with the standard configuration, or with a generated one when you also enable **Use the Link as a room temperature sensor**. Its temperature and humidity appear in Home Assistant under the **Serin Link 1** device, and the heat pump follows the Link's temperature while the Link is the selected source. See [Serin Link as the room sensor](https://serin-labs.com/controller/room-sensors.html#esphome-link). --- ## Built-in web server The standard firmware includes a web page for viewing readings and changing settings. You can use it to adjust mode, temperature, fan speed, and airflow direction before adding the controller to ESPHome or while Home Assistant is unavailable. See the [web interface guide](https://serin-labs.com/controller/web-interface.html). --- ## Updates and recovery After installing the firmware over USB, add the automatically discovered controller to ESPHome. This step is called adoption. You can then install updates over Wi-Fi from the ESPHome dashboard. The standard build includes a fallback Wi-Fi setup network and supports sending Wi-Fi credentials over USB from the browser installer. Use the [setup guide](https://serin-labs.com/esphome/setup.html) to add the controller to ESPHome. After setup, see [ESPHome updates](https://serin-labs.com/controller/updates.html#esphome) and [Wi-Fi recovery](https://serin-labs.com/controller/maintenance.html#wifi). --- ## Building your own config The browser-based YAML generator groups settings under Device details, Indoor unit options, Room temperature source, Serin Link, Optional controls, and Advanced options. The configuration preview updates as you make selections; use **Copy configuration** or **Download .yaml** to take the result into ESPHome. Expand **Existing ESPHome device** to import recognized identity fields and credentials. The generator produces a complete replacement configuration: select your features again and restore any custom YAML and Wi-Fi settings before installing. No configuration data is uploaded. Follow [Customize ESPHome](https://serin-labs.com/controller/customize-esphome.html) to back up, generate, install, and verify your changes, then open the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html). --- ## Supported boards The browser installer and YAML generator support M5Stack NanoC6 and Atom S3 Lite. The component can run on other ESP32 boards with manual configuration and compilation. See [supported boards and DIY parts](https://serin-labs.com/parts.html). --- ## Source code Everything in this build is open source. The heat pump component is echavet's [MitsubishiCN105ESPHome](https://github.com/echavet/MitsubishiCN105ESPHome), and the configuration that packages it for these boards is in [Serin-Labs/serin-cn105](https://github.com/Serin-Labs/serin-cn105), alongside the fragments this site's generator assembles. The Serin Link component lives in [serin-link-core](https://github.com/Serin-Labs/serin-link-core). What each build is made of is listed on the [licenses page](https://serin-labs.com/licenses.html). --- ![The Serin Controller, a small Wi-Fi board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) [5.0 · 42 reviews](https://shop.serin-labs.com/pages/reviews) ## Get the Serin Controller The pre-assembled board with the CN105 cable already attached. Nothing to solder or crimp, and free shipping in the US. [Buy Now from $35](https://serin-labs.com/controller.html) ## Already have a board? The firmware is free. Install the ESPHome build from your browser in about two minutes, then follow the setup guide to join it to Wi-Fi and adopt it in Home Assistant. Building your own? The [parts list](https://serin-labs.com/parts.html) covers the boards this runs on and the CN105 cable, including the connector part numbers if you want to crimp it yourself. [Flash the Firmware](https://serin-labs.com/flash.html?platform=esphome) [Setup Guide](https://serin-labs.com/esphome/setup.html) --- # Set up Home Assistant > Join Wi-Fi, adopt your Serin Controller in ESPHome, and add it to Home Assistant. Source: https://serin-labs.com/esphome/setup.html Last updated: 2026-10-15 Connect your Serin Controller to Wi-Fi and add it to Home Assistant using **ESPHome firmware**. Different firmware? [Choose your guide](https://serin-labs.com/controller/firmware.html). **Continue an existing setup** Keep the firmware you installed. Start at the first task you have left: - **Not installed in the indoor unit yet?** Install it in the indoor unit. - **Installed, but not on Wi-Fi?** Join your home network. - **Wi-Fi connected, but not paired?** Add your controller to your app. - **Already paired and installed?** Check that the unit responds. ## Before you start - A compatible indoor unit and controller with **this guide's firmware installed**. If you have not flashed it yet, use the [flash tool](https://serin-labs.com/flash.html?platform=esphome) on a computer with a USB-C data cable. - A 2.4 GHz home Wi-Fi network and its password. - Home Assistant and the ESPHome dashboard (available as the ESPHome add-on). ## 1 Install the controller Follow the [installation guide](https://serin-labs.com/controller/install.html) to connect the CN105 cable, position the controller, and replace the cover before restoring power. **Before moving on:** The cover is back on and power is restored. If you paired before installation, check that the controller reconnects to your home network. ## 2 Join your home Wi-Fi **Already connected in the flash tool?** Continue to app setup. 1. On your phone, join **serin-XXXXXX**, using the password `serinlabs`. The suffix is unique to your controller. 2. The setup page opens. If it does not, browse to `http://192.168.4.1` while still connected to the controller's setup network. 3. Enter your home Wi-Fi name and password. The controller saves them and restarts on your network. 4. Reconnect your phone to the home network. Check the router's connected-device list if you need the controller's IP address. **Check:** Your phone is back on home Wi-Fi and the controller appears in your router's connected-device list. **Another way to join Wi-Fi, or a missing setup network** You can also enter the controller’s Wi-Fi details from a computer over USB using the [flash tool's Wi-Fi option](https://serin-labs.com/flash.html). You do not need to reinstall firmware just to change the network. If the setup network does not appear, use [Wi-Fi troubleshooting](https://serin-labs.com/troubleshooting.html#ap-missing). ## 3 Add to Home Assistant **Already adopted and added to Home Assistant?** Check control. 1. Open the ESPHome dashboard in Home Assistant. With the add-on installation, it is under **Settings → Add-ons → ESPHome**. 2. Find the controller's **Discovered** tile and select **Adopt**. Give it a name such as `living-room`. 3. Select **Install** to build and send the personalized configuration over Wi-Fi. The first build takes a few minutes. 4. In Home Assistant, open **Settings → Devices & services** and configure the discovered ESPHome integration. If you already added it during flashing, use that existing integration. Discovery requires the controller and Home Assistant to be reachable on the same local network with mDNS allowed. If no device appears, see [ESPHome discovery troubleshooting](https://serin-labs.com/troubleshooting.html#esphome). The browser-installed build has a standard configuration. After adoption, use [Customize ESPHome](https://serin-labs.com/controller/customize-esphome.html) to add optional diagnostics, a room sensor, or other supported features while preserving the device's credentials. **Check:** The controller appears as a thermostat in your app. Next, check its connection to the indoor unit. ## 4 Check that the unit responds 1. Open the thermostat in your app and check that it reports the room temperature. 2. Change the mode or target temperature and confirm the indoor unit responds. Check that the app and controller report the resulting state. 3. If the app is connected but commands have no effect, use [the CN105 checks](https://serin-labs.com/troubleshooting.html#hvac-no-response). App pairing alone does not prove the cable's data connection works. **Setup is complete when** the app shows a current room temperature and the indoor unit responds to your commands. Once control works, use [the web interface](https://serin-labs.com/controller/web-interface.html) for additional controls, or follow the [room sensor](https://serin-labs.com/controller/room-sensors.html), [update](https://serin-labs.com/controller/updates.html), and [Wi-Fi and reset](https://serin-labs.com/controller/maintenance.html) guides. For another indoor unit, repeat the process with its own controller and a unique name. Browse the manual ↑ --- # FAQ: Serin Controller for Mini-Splits > Answers to the most common questions about the Serin controller: compatibility, what's included, flashing, HomeKit vs ESPHome, orders, shipping, and returns. Source: https://serin-labs.com/faq.html Last updated: 2026-10-18 The short answers, with links to the full pages. If your question is not covered, [ask us directly](https://serin-labs.com/contact.html) or ask in [Discord](https://discord.gg/cC2ybSQDZd). ## Before you buy **Will it work with my Mitsubishi unit?** It works with most Mitsubishi units that have an internal CN105 connector: wall-mount, floor, cassette, ducted, and P-series, plus rebranded Trane and American Standard units. Type your model number into the [compatibility checker](https://serin-labs.com/compatibility.html) for an instant answer. Mitsubishi Heavy Industries (SRK/SRC/SRF) and Ecodan air-to-water units are not compatible. **I already have a wall controller. Can I run both?** No. Wired wall controllers such as the **MHK2**, **MHK1**, **PAC-SDW01RC-1**, and **PAR-series** panels use the same CN105 port, and most indoor units have only one. CN105 splitters are not supported, so you must choose one wired interface. The handheld infrared remote does not use CN105 and continues to work. Full comparison: [a less expensive alternative to the MHK2 wall controller](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html). **HomeKit or ESPHome: which should I choose?** Use the HomeKit-compatible firmware if your home runs on Apple Home and Siri; use ESPHome if you run Home Assistant. For Google Home, Amazon Alexa, or SmartThings, use the Matter-compatible build in beta. All firmware options are free to install and control the heat pump over your local network. You can [install different firmware](https://serin-labs.com/flash.html) to switch platforms later. See [choose your firmware](https://serin-labs.com/controller/firmware.html) to compare the three options, then follow the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html), [Home Assistant setup guide](https://serin-labs.com/esphome/setup.html), or [Matter setup guide](https://serin-labs.com/matter/setup.html). **How does it compare to the MHK2 or Kumo Cloud?** The controller, from $35, gives you full mode, temperature, fan, and vane control, the same as Mitsubishi's $179 to $475 wall controllers or the $227 Kumo Cloud adapter, but locally, with no cloud account and no subscription. See [every option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html). **Can I control it without a phone?** Yes, with a [Serin Link](https://serin-labs.com/link.html), a rotary knob display for a desk, shelf, or nightstand. It pairs wirelessly with the Serin Controller at your indoor unit, so everyday control needs no phone, Wi-Fi, or account. Each indoor unit still needs its own controller. ## Setup and firmware **What do I need to flash the firmware?** You need a USB-C data cable and Chrome, Edge, or Brave on a computer. Safari and Firefox do not support the required Web Serial connection. The [browser flash tool](https://serin-labs.com/flash.html) runs locally and does not require a software installation. Choose your platform and install its firmware before setup. **How do firmware updates work? Is there a subscription?** Firmware updates are free and do not require a subscription. ESPHome and the HomeKit-compatible firmware are open source; the Matter-compatible build is free to install, but its source is not published. After the initial USB installation, ESPHome installs updates from its dashboard; HomeKit-compatible and Matter-compatible firmware update through their built-in web interface. You can also [reflash over USB](https://serin-labs.com/flash.html) at any time, including when switching platforms. Follow the [update guide](https://serin-labs.com/controller/updates.html), which also covers optional pre-release builds; the [licenses page](https://serin-labs.com/licenses.html) explains each build. **Does it need the internet to work?** No. Control is local on your network. For control away from home you use your platform's own remote access: an Apple Home hub (Apple TV or HomePod) for HomeKit, or Home Assistant remote access for ESPHome. ## Orders and shipping **Where do I buy, and how fast does it ship?** Directly on this site, with checkout handled by Shopify, or through our [Etsy shop](https://serinlabs.etsy.com/). Controller and cable orders ship from New Jersey within 1–2 business days. The [Serin Link](https://serin-labs.com/link.html) is sold only on this site. It is built to order and ships within 1–3 days. Free US shipping applies to direct orders of $35 and up. **What is the return policy?** Returns and exchanges are accepted within 30 days of delivery, with a 20% restocking fee on a refunded return, and orders can be cancelled within 12 hours of purchase. Defective units are replaced or refunded in full, and so is a controller that turns out [not to fit a unit the model checker listed as compatible](https://serin-labs.com/policies.html#fit), flashed or not. The details live on the [store policies page](https://serin-labs.com/policies.html). **Is there a warranty?** Yes. Every product carries a one-year limited warranty against manufacturing defects, with replacement or a refund and shipping covered in both directions on US orders. That is on top of the 30-day return window and the replacement or refund commitment for an item that arrives damaged, defective, or incorrect. Full terms are on the [limited warranty page](https://serin-labs.com/warranty.html). **What should I do if my controller arrives damaged or does not power on?** First review the [troubleshooting guide](https://serin-labs.com/troubleshooting.html), because a charge-only USB cable is the most common cause of this problem. If the controller is defective, use the [contact form](https://serin-labs.com/contact.html), or [message the shop on Etsy](https://serinlabs.etsy.com/) for an Etsy order. We will replace it or provide a full refund, including shipping. Browse the manual ↑ --- # Mitsubishi Mini-Split Controller for Google Home > Add a Mitsubishi mini-split to Google Home with a CN105 ESP32 controller. Get local thermostat control, voice commands, and routines without a Mitsubishi cloud account. Source: https://serin-labs.com/google-home.html Last updated: 2026-10-18 Connect a CN105 ESP32 controller to the service port inside the Mitsubishi indoor unit, flash the firmware, and add the heat pump from the Google Home app. It appears as a thermostat for temperature, mode, voice commands, and routines. No Mitsubishi Wi-Fi adapter, Kumo Cloud account, Home Assistant server, or Serin Labs subscription is required. Already have a controller? [Set it up with Google Home](https://serin-labs.com/matter/setup.html#google-home). [See the CN105 controller](https://serin-labs.com/controller.html) [Check your Mitsubishi model](https://serin-labs.com/compatibility.html) At a glance - One CN105 ESP32 controller is required for each Mitsubishi indoor unit. - Setup begins in the Google Home app and uses Bluetooth for pairing. - Controls include temperature, Heat, Cool, Auto, power, voice commands, and routines. - No Mitsubishi cloud account or vendor app is required. Good to know - A compatible Google or Nest hub and an IPv6-enabled network are required. - The firmware is free to install, in beta, and not open source. - The firmware is not certified; Google Home displays a one-time warning during setup. - The controller hardware arrives without firmware installed. --- ## How the CN105 ESP32 controller adds Google Home support Most Mitsubishi Electric mini-splits have a five-pin service connector called CN105 on the indoor control board. The Serin Controller combines a supported M5Stack ESP32 board with a tested CN105 cable, giving the firmware a direct, two-way connection to the heat pump. Install the firmware from a supported browser, turn off power to the indoor unit, and connect the cable to CN105. Then add the controller in the Google Home app. During pairing, the app sends your home Wi-Fi credentials to the ESP32 over Bluetooth. ![The Serin CN105 ESP32 controller with its Mitsubishi mini-split cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) Pre-assembled ESP32 controller with the CN105 cable attached --- ## What Google Home can control Power and modes Turn the unit on or off and select Heat, Cool, or Auto. Target temperature Set the thermostat target from the app or by voice. Room temperature See the current temperature reported by the controller. Voice and routines Use Google Home voice commands and place the thermostat in household routines. Google Home displays a standard thermostat. Fan speed, vane position, diagnostics, and other controls that are not available in Google's thermostat card remain accessible through the controller's [built-in web interface](https://serin-labs.com/controller/web-interface.html). --- ## What you need - **A compatible Mitsubishi indoor unit:** check the model number before ordering. One controller is needed for each indoor unit you want to control. - **A CN105 ESP32 controller:** buy the [pre-assembled controller](https://serin-labs.com/controller.html), or use a supported board and cable from the [DIY parts list](https://serin-labs.com/parts.html). - **A USB-C data cable and supported browser:** the initial flash runs in Chrome, Edge, or Brave on a computer. - **A compatible Google or Nest hub:** Google Home needs a supported hub device to set up and control this Wi-Fi accessory. Check [Google's current setup and compatibility guidance](https://support.google.com/googlenest/answer/13127223?hl=en) rather than relying on an old model table. - **IPv6 on the home network:** the firmware depends on IPv6. Confirm it is enabled before troubleshooting the controller. --- ## Set up your controller Setup has three parts: install the Matter-compatible firmware, connect the controller to the indoor unit, and add the thermostat in Google Home. The app transfers your Wi-Fi credentials over Bluetooth; there is no separate setup-hotspot step for initial pairing. Follow the [Google Home setup guide](https://serin-labs.com/matter/setup.html#google-home) for prerequisites, pairing, and a final check that the indoor unit responds. --- ## Limits to understand before buying - **Beta firmware:** it is newer and less tested than the ESPHome and Apple Home firmware. - **Not certified:** Google Home displays a one-time uncertified-accessory warning. The product does not carry a Works with Google Home badge. - **Features not available in Google Home:** dry mode, fan-only mode, fan speed, and vane direction are not reliably shown in the Google Home thermostat card. - **Diagnostics are available in the web interface:** compressor frequency, outdoor temperature, runtime, and error codes do not appear in Google Home. - **One occupied CN105 port:** the controller cannot share CN105 with a factory Wi-Fi adapter or wired wall controller. --- ## Google Home firmware or ESPHome through Home Assistant? Use the firmware when Google Home is the main interface and you do not already run Home Assistant. Use [ESPHome](https://serin-labs.com/esphome/features.html) when you want the full mini-split feature set in Home Assistant and want to connect Home Assistant to Google Home. Google Home shows similar thermostat controls with either option. With ESPHome, you can also use Home Assistant for fan speed, airflow direction, diagnostics, and automations. For a comparison that also covers Mitsubishi’s Kumo Cloud adapter, read [how to add a Mitsubishi mini-split to Google Home](https://serin-labs.com/blog/mitsubishi-mini-split-google-home.html). ![The pre-assembled Serin CN105 ESP32 controller](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) [5.0 · 42 reviews](https://shop.serin-labs.com/pages/reviews) ## Get the CN105 controller The ESP32 board and tested cable arrive assembled and ready for you to flash. Free US shipping. [Buy now from $35](https://serin-labs.com/controller.html) ## Already have a board? Install the free beta firmware, then add it from the Google Home app. The firmware source is not published. [Flash the firmware](https://serin-labs.com/flash.html?platform=direct) [Setup guide](https://serin-labs.com/matter/setup.html#google-home) --- # CN105 HomeKit-Compatible Controller for Mitsubishi > Add a Mitsubishi mini-split to Apple Home and Siri with free, open-source HomeKit-compatible firmware on a CN105 ESP32 controller. Local control with no bridge or cloud account. Source: https://serin-labs.com/homekit/features.html Last updated: 2026-10-24 Flash the free, open-source HomeKit-compatible build onto a CN105 ESP32 controller and the Mitsubishi heat pump pairs directly with the Apple Home app. No Home Assistant, Homebridge, vendor cloud, or subscription is required. You can [buy the pre-assembled CN105 controller](https://serin-labs.com/controller.html) or build one from the [parts list](https://serin-labs.com/parts.html). Already have a controller? [Set it up with Apple Home](https://serin-labs.com/homekit/setup.html). At a glance - Pairs directly with the Apple Home app; no bridge, Homebridge, or Home Assistant is required. - Supports Siri, scenes, and automations as an Apple Home thermostat. - Uses open-source firmware built on `esp-homekit-sdk`. Good to know - Remote access and automations require an Apple Home Hub, such as an Apple TV or HomePod. - Additional controls are available from the built-in web interface. - You can add the web interface to your phone's home screen. [Watch demonstration](https://serin-labs.com/assets/media/homekit.mp4) Thermostat control in Apple Home [Watch demonstration](https://serin-labs.com/assets/media/webui_tour.mp4) Built-in web interface at http://Serin-XXXX.local --- ## Apple Home pairing The free HomeKit-compatible firmware pairs directly with Apple Home using a QR code from the flasher or web interface. Apple Home displays an uncertified-accessory notice. Follow the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) to join Wi-Fi, add the thermostat, and verify control. ## Climate control The firmware supports Off, Heat, Cool, Auto, Dry, and Fan, with temperature adjustments in 0.5°C increments and independent heating and cooling targets in Auto mode. The web interface provides the additional controls beyond Apple Home's thermostat card. See the [complete control reference](https://serin-labs.com/controller/controls.html#homekit) for fan speeds and settings. ## Vane control Adjust the vents to direct air up and down or left and right from the web interface or a paired Serin Link. Vertical control offers Auto, five positions, and Swing; horizontal control offers five positions, Split, and Swing on units fitted with that vane. Apple Home does not provide vane controls. ## Diagnostics Compressor frequency, outside temperature, runtime, error codes, sub mode, and stage information are available in the web interface. The [diagnostics reference](https://serin-labs.com/controller/controls.html#diagnostics) explains the readings; the [status light reference](https://serin-labs.com/controller/status-lights.html) covers the controller's signals. ## Room temperature sensor Measure the air where you sit instead of relying only on the return-air sensor near the ceiling. In the Room Sensor card, choose one temperature sensor or average the readings from several. You can adjust each sensor’s reading to correct for a difference from a reference thermometer. It supports up to four automatically detected Bluetooth thermometers, the indoor unit's sensor, and a paired Serin Link. The first Bluetooth sensor appears in Apple Home with temperature, humidity, and a low-battery warning. If a sensor stops reporting, the heat pump falls back to its own until it returns. Follow [room sensor setup](https://serin-labs.com/controller/room-sensors.html#homekit) to choose sources. --- ## Serin Link dial The firmware can pair with a [Serin Link](https://serin-labs.com/link.html), a rotary control and display for a desk or nightstand. It operates without Wi-Fi or a cloud account. Pair it from the web interface. Each controller supports up to four Serin Links. - **Control from the dial:** mode, target temperature, fan speed, airflow direction, and the °C/°F display preference. - **Wi-Fi recovery:** reconnect a controller that has lost its network from the dial, no computer needed ![The Serin Link on a bedside table beside a set of keys and a stack of books: a round black dial in a flared orange base, its face reading 72 degrees with Heating above it and the room at 70 degrees and 44 percent humidity below](https://serin-labs.com/assets/gallery/800/serin-link-nightstand.webp.webp) The Serin Link on a nightstand ![A paired Serin Link in the web interface, showing its onboard sensor reading, signal strength, and firmware version](https://serin-labs.com/assets/content/868/media/webui-link.png.e5f778b02fd8.webp) A paired Serin Link in the web interface --- ## Crash-loop safe mode After repeated crashes, safe mode keeps Wi-Fi and the web interface available for a firmware update while other functions are disabled. See [safe-mode recovery](https://serin-labs.com/controller/maintenance.html#safe-mode). ## Wireless firmware updates Check for and install releases from the web interface, or upload a firmware file manually. The controller returns to the previous firmware if an update does not start correctly. Follow the [update instructions](https://serin-labs.com/controller/updates.html). ## Web interface The local interface combines thermostat, fan and vane controls, pairing QR code, device settings, Wi-Fi scanning, and live logs. You can add it to your phone's home screen. See [opening and using the web interface](https://serin-labs.com/controller/web-interface.html). ## Supported boards M5Stack NanoC6 and Atom S3 Lite are supported. ESP32-C3 SuperMini and XIAO work but are not tested every release; generic ESP32 DevKit boards are not tested. The [parts reference](https://serin-labs.com/parts.html) covers boards and cables. --- ## Source code The HomeKit-compatible firmware is open source. See the [GitHub repository](https://github.com/akifbayram/mitsubishi-cn105-homekit) for protocol documentation, project structure, and build instructions. --- ![The Serin Controller, a small Wi-Fi board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) [5.0 · 42 reviews](https://shop.serin-labs.com/pages/reviews) ## Get the Serin Controller The pre-assembled board with the CN105 cable already attached. Nothing to solder or crimp, and free shipping in the US. [Buy Now from $35](https://serin-labs.com/controller.html) ## Already have a board? The firmware is free. Install the HomeKit-compatible build from your browser in about two minutes, then follow the setup guide to connect and pair. Building your own? The [parts list](https://serin-labs.com/parts.html) covers the boards this runs on and the CN105 cable, including the connector part numbers if you want to crimp it yourself. [Flash the Firmware](https://serin-labs.com/flash.html?platform=homekit) [Setup Guide](https://serin-labs.com/homekit/setup.html) --- # Set up your Serin Controller > Connect your Serin Controller to Wi-Fi and pair with Apple Home using the free, open-source HomeKit-compatible firmware. Source: https://serin-labs.com/homekit/setup.html Last updated: 2026-10-15 Pair your Serin Controller with Apple Home using the free, open-source **HomeKit-compatible firmware**. If you installed the Matter-compatible build for Apple Home instead, use the [smart home app setup guide](https://serin-labs.com/matter/setup.html). Different firmware? [Choose your guide](https://serin-labs.com/controller/firmware.html). **Continue an existing setup** Keep the firmware you installed. Start at the first task you have left: - **Not installed in the indoor unit yet?** Install it in the indoor unit. - **Installed, but not on Wi-Fi?** Join your home network. - **Wi-Fi connected, but not paired?** Add your controller to your app. - **Already paired and installed?** Check that the unit responds. ## Before you start - A compatible indoor unit and controller with **this guide's firmware installed**. If you have not flashed it yet, use the [flash tool](https://serin-labs.com/flash.html?platform=homekit) on a computer with a USB-C data cable. - A 2.4 GHz home Wi-Fi network and its password. - An iPhone or iPad. Remote access and automations require an Apple Home hub such as an Apple TV or HomePod. ## 1 Install the controller Follow the [installation guide](https://serin-labs.com/controller/install.html) to connect the CN105 cable, position the controller, and replace the cover before restoring power. **Before moving on:** The cover is back on and power is restored. If you paired before installation, check that the controller reconnects to your home network. ## 2 Join your home Wi-Fi **Already connected in the flash tool?** Continue to app setup. 1. On your phone, join **Serin-XXXX**, using the password `serinlabs`. The suffix is unique to your controller. 2. The setup page opens. If it does not, browse to `http://192.168.4.1` while still connected to the controller's setup network. 3. Enter your home Wi-Fi name and password. The controller saves them and restarts on your network. 4. Reconnect your phone to the home network. Check the router's connected-device list if you need the controller's IP address. **Check:** Your phone is back on home Wi-Fi and the controller appears in your router's connected-device list. **Another way to join Wi-Fi, or a missing setup network** You can also enter the controller’s Wi-Fi details from a computer over USB using the [flash tool's Wi-Fi option](https://serin-labs.com/flash.html). You do not need to reinstall firmware just to change the network. If the setup network does not appear, use [Wi-Fi troubleshooting](https://serin-labs.com/troubleshooting.html#ap-missing). ## 3 Add to Apple Home **Already paired?** Check control. 1. With your phone on the same network as the controller, open `http://Serin-XXXX.local`. Use the suffix from its setup network name, or use its IP address from the router. 2. Open the HomeKit panel in the web interface. Scan its pairing QR code with your iPhone or iPad, or use the saved pairing shortcut in this step. 3. Follow the Home app's add-accessory prompts and confirm the uncertified-accessory notice. Assign the thermostat to its room. **Enter the code manually** In the Home app, choose **+ → Add Accessory → More options**. Select **Mini Split XXXX** and enter the setup code from the controller's HomeKit panel. If the accessory was paired before, see [pairing troubleshooting](https://serin-labs.com/troubleshooting.html#pairing-fails). Do not erase all settings as the first step. [![A mini-split thermostat tile in Apple Home](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp)](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp) The controller appears as a thermostat in Apple Home. [View full-size screenshot](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp). **Check:** The controller appears as a thermostat in your app. Next, check its connection to the indoor unit. ## 4 Check that the unit responds 1. Open the thermostat in your app and check that it reports the room temperature. 2. Change the mode or target temperature and confirm the indoor unit responds. Check that the app and controller report the resulting state. 3. If the app is connected but commands have no effect, use [the CN105 checks](https://serin-labs.com/troubleshooting.html#hvac-no-response). App pairing alone does not prove the cable's data connection works. **Setup is complete when** the app shows a current room temperature and the indoor unit responds to your commands. Once control works, use [the web interface](https://serin-labs.com/controller/web-interface.html) for additional controls, or follow the [room sensor](https://serin-labs.com/controller/room-sensors.html), [update](https://serin-labs.com/controller/updates.html), and [Wi-Fi and reset](https://serin-labs.com/controller/maintenance.html) guides. For another indoor unit, repeat the process with its own controller and a unique name. Browse the manual ↑ --- # Licenses and Compliance > Open-source firmware licenses plus regulatory, safety, and trademark information for the Serin Controller, the Serin Link, and the FCC-certified M5Stack boards the controller is built on. Source: https://serin-labs.com/licenses.html Last updated: 2026-10-15 [← Back to documentation](https://serin-labs.com/documentation.html) # Licenses and compliance This page lists the licenses for components used in firmware distributed by Serin Labs, followed by regulatory, safety, and trademark information for the Serin Controller. Refer to each project or manufacturer for its complete terms. The ESPHome, HomeKit-compatible, and Serin Link dial builds are open source. Sources for all three are linked below, along with the Serin Link protocol and its ESPHome controller component. The Matter-compatible build is free to install but is not published; the table for it lists the third-party components it is built on, which is the part these licenses govern. ## ESPHome firmware The ESPHome `.bin` images are compiled with the ESPHome toolchain on the ESP-IDF framework, together with the Mitsubishi CN105 component stack. | Component | License | Source & license | | --- | --- | --- | | ESPHome | MIT + GPLv3 | [Source](https://github.com/esphome/esphome) · · · [License](https://github.com/esphome/esphome/blob/dev/LICENSE) | | MitsubishiCN105ESPHome (echavet) | None declared | [Source](https://github.com/echavet/MitsubishiCN105ESPHome) | | esphome-mitsubishiheatpump (geoffdavis) | BSD-2-Clause | [Source](https://github.com/geoffdavis/esphome-mitsubishiheatpump) · · · [License](https://github.com/geoffdavis/esphome-mitsubishiheatpump/blob/master/LICENSE) | | SwiCago/HeatPump | GPL-3.0 / LGPL-3.0 | [Source](https://github.com/SwiCago/HeatPump) · · · [License](https://github.com/SwiCago/HeatPump/blob/master/LICENSE) | | ESP-IDF (build framework) | Apache-2.0 | [Source](https://github.com/espressif/esp-idf) · · · [License](https://github.com/espressif/esp-idf/blob/master/LICENSE) | - ESPHome is dual-licensed: its Python tooling is MIT, and its C++/runtime code, compiled into the firmware, is GPLv3. - SwiCago/HeatPump ships the GPL-3.0 license text in its repository, while its README states LGPL-3.0. - MitsubishiCN105ESPHome does not include a license file. - Corresponding source for the exact ESPHome build is published at [Serin-Labs/serin-cn105](https://github.com/Serin-Labs/serin-cn105). ## HomeKit-compatible firmware The HomeKit-compatible `.bin` images are built on Espressif's HomeKit SDK and the ESP-IDF framework. | Component | License | Source & license | | --- | --- | --- | | esp-homekit-sdk (Espressif) | ESPRESSIF MIT License; mu_srp under Apache-2.0 | [Source](https://github.com/espressif/esp-homekit-sdk) · · · [License](https://github.com/espressif/esp-homekit-sdk/blob/master/components/homekit/esp_hap_core/src/esp_hap_main.c) · · · [mu_srp](https://github.com/espressif/esp-homekit-sdk/blob/master/components/homekit/mu_srp/LICENSE) | | ESP-IDF | Apache-2.0 | [Source](https://github.com/espressif/esp-idf) · · · [License](https://github.com/espressif/esp-idf/blob/master/LICENSE) | ## Matter-compatible firmware The Matter-compatible `.bin` images are built on Espressif’s esp-matter SDK, the Connectivity Standards Alliance’s Matter SDK (connectedhomeip) that it wraps, and the ESP-IDF framework. | Component | License | Source & license | | --- | --- | --- | | esp-matter (Espressif) | Apache-2.0 | [Source](https://github.com/espressif/esp-matter) · · · [License](https://github.com/espressif/esp-matter/blob/main/LICENSE) | | Matter SDK (connectedhomeip) | Apache-2.0 | [Source](https://github.com/project-chip/connectedhomeip) · · · [License](https://github.com/project-chip/connectedhomeip/blob/master/LICENSE) | | ESP-IDF | Apache-2.0 | [Source](https://github.com/espressif/esp-idf) · · · [License](https://github.com/espressif/esp-idf/blob/master/LICENSE) | - The build is **not Matter certified**. It identifies itself with the SDK’s test attestation credentials rather than a certified device certificate, so every Matter controller warns about an uncertified accessory when it is added. ## Serin Link firmware The Serin Link dial firmware is built on the ESP-IDF framework and the LVGL graphics library, together with Espressif’s display, touch, knob, and button drivers for the VIEWE round display module it runs on. An assembled Serin Link ships with this firmware installed, and the [Serin Link flashing page](https://serin-labs.com/flash-link.html) installs it on a bare display module over USB. The firmware is open source under the GNU General Public License, version 3, and its source is published at [Serin-Labs/serin-link](https://github.com/Serin-Labs/serin-link). | Component | License | Source & license | | --- | --- | --- | | ESP-IDF (build framework) | Apache-2.0 | [Source](https://github.com/espressif/esp-idf) · · · [License](https://github.com/espressif/esp-idf/blob/master/LICENSE) | | LVGL (graphics library) | MIT | [Source](https://github.com/lvgl/lvgl) · · · [License](https://github.com/lvgl/lvgl/blob/master/LICENCE.txt) | | esp_lvgl_port (Espressif) | Apache-2.0 | [Source](https://github.com/espressif/esp-bsp/tree/master/components/esp_lvgl_port) · · · [License](https://github.com/espressif/esp-bsp/blob/master/components/esp_lvgl_port/license.txt) | | esp_lcd_sh8601 display driver (Espressif) | Apache-2.0 | [Source](https://github.com/espressif/esp-iot-solution/tree/master/components/display/lcd/esp_lcd_sh8601) · · · [License](https://github.com/espressif/esp-iot-solution/blob/master/components/display/lcd/esp_lcd_sh8601/license.txt) | | esp_lcd_touch and esp_lcd_touch_cst816s (Espressif) | Apache-2.0 | [Source](https://github.com/espressif/esp-bsp/tree/master/components/lcd_touch) · · · [License](https://github.com/espressif/esp-bsp/blob/master/components/lcd_touch/esp_lcd_touch_cst816s/license.txt) | | esp_lcd_touch_cst820 (kodediy) | Apache-2.0 | [Source](https://github.com/kodediy/esp_lcd_touch_cst820) · · · [License](https://github.com/kodediy/esp_lcd_touch_cst820/blob/main/license.txt) | | button (Espressif) | Apache-2.0 | [Source](https://github.com/espressif/esp-iot-solution/tree/master/components/button) · · · [License](https://github.com/espressif/esp-iot-solution/blob/master/components/button/license.txt) | | knob (Espressif) | Apache-2.0 | [Source](https://github.com/espressif/esp-iot-solution/tree/master/components/knob) · · · [License](https://github.com/espressif/esp-iot-solution/blob/master/components/knob/license.txt) | | libsodium (pairing keys) | ISC | [Source](https://github.com/jedisct1/libsodium) · · · [License](https://github.com/jedisct1/libsodium/blob/master/LICENSE) · · · [Espressif port](https://github.com/espressif/idf-extra-components/tree/master/libsodium) | | Panel initialization tables (VIEWE reference board support package) | MIT | [Source](https://github.com/VIEWESMART/UEDX46460015-MD50ESP32-1.5inch-Touch-Knob-Display) · · · [License](https://github.com/VIEWESMART/UEDX46460015-MD50ESP32-1.5inch-Touch-Knob-Display/blob/main/LICENSE) | | Plus Jakarta Sans (subset font data) | SIL Open Font License 1.1 | [Source](https://github.com/tokotype/PlusJakartaSans) · · · [License](https://github.com/tokotype/PlusJakartaSans/blob/master/OFL.txt) | | Monocypher 4.0.3, copied into the · `serin_link` · controller component | BSD-2-Clause or CC0-1.0, at your option | [Source](https://github.com/LoupVaillant/Monocypher) · · · [License](https://github.com/LoupVaillant/Monocypher/blob/master/LICENCE.md) | - The Serin Link firmware is licensed GPL-3.0-only. Two parts of the repository carry their own terms, both listed in the table above: the Plus Jakarta Sans subsets under the SIL Open Font License 1.1, and the VIEWE panel initialization tables under MIT. The corresponding source for every build the flasher offers is the tagged release in [Serin-Labs/serin-link](https://github.com/Serin-Labs/serin-link). - The Serin Link protocol and the `serin_link` ESPHome controller component are open source under the Apache-2.0 license at [Serin-Labs/serin-link-core](https://github.com/Serin-Labs/serin-link-core). - Monocypher is copied into the controller component rather than pulled in as a dependency, because an ESPHome image can hold only one copy of libsodium and that copy belongs to ESPHome. It is dual-licensed, so you may take it under either license. - The driver for the Sensirion SHT41 temperature and humidity sensor on the Serin Link carrier is written by Serin Labs and contains no third-party code. ## Flashing tool The flash page runs entirely in your browser. It drives Espressif’s esptool-js to write the firmware over USB, SparkMD5 to check the written bytes against the board’s flash checksum, and the Improv Serial SDK to hand the board your Wi-Fi credentials afterwards. These libraries are bundled with the page. The pairing and hotspot QR codes are drawn by qrcodejs, which the page loads from the cdnjs content delivery network with an integrity hash. | Component | License | Source & license | | --- | --- | --- | | esptool-js | Apache-2.0 | [Source](https://github.com/espressif/esptool-js) · · · [License](https://github.com/espressif/esptool-js/blob/main/LICENSE) | | SparkMD5 3.0.2 | WTFPL-2.0 | [Source](https://github.com/satazor/js-spark-md5/tree/v3.0.2) · · · [License](https://github.com/satazor/js-spark-md5/blob/v3.0.2/LICENSE) | | Improv Wi-Fi Serial SDK (improv-wifi-serial-sdk) | Apache-2.0 | [Source](https://github.com/improv-wifi/sdk-js) · · · [License](https://github.com/improv-wifi/sdk-js/blob/main/LICENSE) | | qrcodejs 1.0.0 (davidshimjs) | MIT | [Source](https://github.com/davidshimjs/qrcodejs) · · · [License](https://github.com/davidshimjs/qrcodejs/blob/master/LICENSE) | ## QR label scanner The compatibility page’s label scanner runs entirely in your browser, using the open-source qr-scanner library to read the QR code on your unit’s nameplate. Photos and camera frames never leave your device. | Component | License | Source & license | | --- | --- | --- | | qr-scanner (Nimiq) v1.4.2 | MIT | [Source](https://github.com/nimiq/qr-scanner) · · · [License](https://github.com/nimiq/qr-scanner/blob/master/LICENSE) | ## Regulatory & compliance The Serin Controller is a smart controller for Mitsubishi mini-splits that connects to the CN105 service port inside the indoor unit. It is available as a [DIY parts list](https://serin-labs.com/parts.html) or as a [pre-assembled kit](https://serin-labs.com/controller.html), and is built from commercially available M5Stack development kits rather than custom radio hardware. The sections below collect the regulatory, safety, and trademark information that applies to it. ### FCC compliance Serin Labs does not manufacture or modify any radio hardware. Both supported boards are FCC-certified by their manufacturer, M5Stack Technology Co., Ltd., and M5Stack lists CE, MIC, and FCC certification for each on its [product certifications page](https://docs.m5stack.com/en/learn/certification/certification). | Board | FCC ID | Certification | | --- | --- | --- | | M5Stack NanoC6 | [2AN3WM5NANOC6](https://fccid.io/2AN3WM5NANOC6) | Device certification held by M5Stack. Contains the Espressif ESP32‑C6‑MINI‑1 radio module, itself FCC-certified as · [2AC7Z‑ESPC6MINI1](https://fccid.io/2AC7Z-ESPC6MINI1) · . | | M5Stack Atom S3 Lite | [2AN3WM5ATOMS3](https://fccid.io/2AN3WM5ATOMS3) | AtomS3-series device certification held by M5Stack. The radio is integrated in the ESP32‑S3 chip; the FCC ID appears on the regulatory label on your unit. | These devices comply with part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) the device may not cause harmful interference, and (2) the device must accept any interference received, including interference that may cause undesired operation. This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, try one or more of the following measures: - Reorient or relocate the receiving antenna. - Increase the separation between the equipment and receiver. - Connect the equipment to an outlet on a circuit different from the one the receiver is connected to. - Consult the dealer or an experienced radio/TV technician for help. **Caution:** changes or modifications to the radio hardware not expressly approved by the party responsible for compliance could void your authority to operate the equipment. Flashing open-source firmware does not modify the radio circuitry. ### Safety & installation Safety and installation information for every Serin Labs product now lives on the [safety and installation](https://serin-labs.com/safety.html) page. ### Trademarks & affiliations Serin Labs is an independent company. It is not affiliated with, endorsed by, or certified by Mitsubishi Electric Corporation, Apple Inc., M5Stack Technology Co., Ltd., Sensirion AG, or VIEWE, the maker of the display module. Serin Labs and its guides are not affiliated with or endorsed by Google LLC, Amazon.com, Inc. or its affiliates, or Samsung Electronics Co., Ltd. Platform names identify the apps and technologies used in the compatibility and setup instructions. - Google and Google Home are trademarks of Google LLC. - Amazon, Alexa, and all related marks are trademarks of Amazon.com, Inc. or its affiliates. - SmartThings is a trademark of Samsung Electronics Co., Ltd. - Mitsubishi Electric is a trademark of Mitsubishi Electric Corporation. - Apple, Apple Home, HomeKit, Siri, HomePod, Apple TV, iPhone, and iPad are trademarks of Apple Inc., registered in the U.S. and other countries. The HomeKit-compatible firmware pairs with Apple Home using Apple's published HomeKit Accessory Protocol; the product is not MFi-certified and does not carry the “Works with Apple Home” badge. - Matter is a trademark of the Connectivity Standards Alliance. The Matter-compatible firmware implements the Matter specification; it is not a certified Matter product, is not endorsed by the Alliance, and does not carry the “Works with Matter” badge. - Home Assistant is a trademark of the Open Home Foundation. M5Stack is a trademark of M5Stack Technology Co., Ltd. - Sensirion is a trademark of Sensirion AG. VIEWE is a trademark of its owner. Both names are used only to identify the parts a product is built from. ### Materials & disposal Like all electronics, the controller should not go in household trash at end of life. Take it to a local e-waste collection point; most US municipalities and many electronics retailers accept small electronics for recycling. Manufacturer compliance documentation for the boards is available from [M5Stack](https://docs.m5stack.com/en/learn/certification/certification). ### DIY builds If you source your own board and cable instead of buying the pre-assembled kit, regulatory compliance of those parts rests with their respective manufacturers. The boards above are the ones Serin Labs tests and recommends. ## Contact Questions about licenses, compliance, safety, or anything on this page: use the [contact form](https://serin-labs.com/contact.html), ask in [Discord](https://discord.gg/cC2ybSQDZd), or send a message to our [Etsy shop](https://serinlabs.etsy.com/). --- # Serin Link: Rotary Knob Display for Mini Splits > Temperature control, close at hand. A compact dial for your desk or nightstand, with a touchscreen and built-in room sensor. Requires a Serin Controller or compatible ESPHome climate device. Source: https://serin-labs.com/link.html Last updated: 2026-10-24 ![A render of the Serin Link in orange, seen from the front and slightly to one side: a round black dial tilted back in a flared orange base, its face reading 72 degrees with Heating above it](https://serin-labs.com/assets/serin-link-v5-34-orange.webp) ![A render of the Serin Link with the body in black, so the body and the dial match](https://serin-labs.com/assets/serin-link-v5-34-black.webp) ![A generated bedroom scene with a black Serin Link on a wooden bedside table beside a phone and succulent, its dial displaying Heating and 72 degrees, with a mini-split above the bed](https://serin-labs.com/assets/serin-link-nightstand.webp) ![A render of the Serin Link head-on, the round face filling the frame: 72 degrees in large type with Heating above it and the target arc drawn on the rim](https://serin-labs.com/assets/serin-link-v5-front.webp) ![A render of the Serin Link from the left: the dial tilted back at 45 degrees on a wedge-shaped orange base, with a round sensor vent low in the side of the base](https://serin-labs.com/assets/serin-link-v5-left.webp) ![An exploded view of the Serin Link from below: the black dial, the orange base lifted off the sensor board with its USB-C port, and the foot beneath](https://serin-labs.com/assets/serin-link-exploded.webp) ![The Serin Link in orange standing beside a smartphone lying face down, the Link about half the phone's length across](https://serin-labs.com/assets/serin-link-phone-scale.webp) ![What comes in the box: the Serin Link in orange, a white USB-C power adapter, and a coiled white USB-C cable](https://serin-labs.com/assets/serin-link-in-the-box.webp) ![Orange printed stand, black bottom cap, sensor PCB, four screws, Allen key, and silicone pad laid out on white](https://serin-labs.com/assets/serin-link-build-kit-contents.webp) ![Black printed stand and bottom cap, sensor PCB, four screws, Allen key, and silicone pad laid out on white](https://serin-labs.com/assets/serin-link-build-kit-black.webp) ![A render of the print-your-own kit: sensor PCB, four screws, Allen key, and silicone pad, with the stand and bottom cap shown as wireframes](https://serin-labs.com/assets/serin-link-print-your-own.webp) ![Front and back of the Serin Link sensor PCB with USB-C port and display connector](https://serin-labs.com/assets/serin-link-pcb.webp) # Serin Link $180 About 2 inches wide · USB-C powered New **Temperature control, close at hand.** Turn the dial to set the temperature. Press for mode and fan controls. Compact enough for your desk or nightstand, Link keeps everyday heat pump controls within easy reach. Choose an assembled Link or build your own with the DIY kit. ## Assembled Link Orange $180 [Buy](https://shop.serin-labs.com/cart/52705909965080:1) Free US shipping Ships within 1–3 days [30-day returns](https://serin-labs.com/policies.html#fit) Secure checkout by Shopify, shipped from New Jersey. **Shipping** Free US shipping on orders $35 and up, from New Jersey. Ships to US addresses only. **Returns** 30-day returns by mail. [How returns work](https://serin-labs.com/policies.html#fit). **Warranty** 1-year limited hardware warranty against manufacturing defects. [Warranty terms](https://serin-labs.com/warranty.html). - [Serin Link, Orange: $180](https://shop.serin-labs.com/cart/52705909965080:1) - [Serin Link, Orange, with Controller: $200 after automatic discount](https://shop.serin-labs.com/cart/52705909965080:1,52441459360024:1) - [Serin Link, Black: $180](https://shop.serin-labs.com/cart/52705909997848:1) - [Serin Link, Black, with Controller: $200 after automatic discount](https://shop.serin-labs.com/cart/52705909997848:1,52441459360024:1) ## Serin Link DIY Kit Printed stand, Orange Display sold separately $60 [Buy](https://shop.serin-labs.com/cart/52928918028568:1) Free US shipping Ships in 1–2 days [30-day returns](https://serin-labs.com/policies.html#fit) Secure checkout by Shopify, shipped from New Jersey. **Shipping** Free US shipping on orders $35 and up, from New Jersey. Ships to US addresses only. **Returns** 30-day returns by mail. [How returns work](https://serin-labs.com/policies.html#fit). **Warranty** 1-year limited hardware warranty against manufacturing defects. [Warranty terms](https://serin-labs.com/warranty.html). - [Serin Link DIY Kit, Printed stand, Orange: $60](https://shop.serin-labs.com/cart/52928918028568:1) - [Serin Link DIY Kit, Printed stand, Orange, with Controller: $95](https://shop.serin-labs.com/cart/52928918028568:1,52441459360024:1) - [Serin Link DIY Kit, Printed stand, Orange with USB cable + power adapter: $70](https://shop.serin-labs.com/cart/52928918094104:1) - [Serin Link DIY Kit, Printed stand, Orange with USB cable + power adapter, with Controller: $105](https://shop.serin-labs.com/cart/52928918094104:1,52441459360024:1) - [Serin Link DIY Kit, Printed stand, Black: $60](https://shop.serin-labs.com/cart/52928918159640:1) - [Serin Link DIY Kit, Printed stand, Black, with Controller: $95](https://shop.serin-labs.com/cart/52928918159640:1,52441459360024:1) - [Serin Link DIY Kit, Printed stand, Black with USB cable + power adapter: $70](https://shop.serin-labs.com/cart/52928918225176:1) - [Serin Link DIY Kit, Printed stand, Black with USB cable + power adapter, with Controller: $105](https://shop.serin-labs.com/cart/52928918225176:1,52441459360024:1) - [Serin Link DIY Kit, Print your own: $50](https://shop.serin-labs.com/cart/52928917995800:1) - [Serin Link DIY Kit, Print your own, with Controller: $85](https://shop.serin-labs.com/cart/52928917995800:1,52441459360024:1) - [Serin Link DIY Kit, Print your own with USB cable + power adapter: $60](https://shop.serin-labs.com/cart/52928918061336:1) - [Serin Link DIY Kit, Print your own with USB cable + power adapter, with Controller: $95](https://shop.serin-labs.com/cart/52928918061336:1,52441459360024:1) - [Serin Link DIY Kit, Print your own: $50](https://shop.serin-labs.com/cart/52928918126872:1) - [Serin Link DIY Kit, Print your own, with Controller: $85](https://shop.serin-labs.com/cart/52928918126872:1,52441459360024:1) - [Serin Link DIY Kit, Print your own with USB cable + power adapter: $60](https://shop.serin-labs.com/cart/52928918192408:1) - [Serin Link DIY Kit, Print your own with USB cable + power adapter, with Controller: $95](https://shop.serin-labs.com/cart/52928918192408:1,52441459360024:1) ## Requirements Link encrypted radio Controller CN105 cable Indoor unit A [Serin Controller](https://serin-labs.com/controller.html) at each indoor unit you want to control, or an ESPHome climate device with the `serin_link` component. No soldering required ## Build your own Link The PCB arrives assembled and tested. Fit the parts together, connect the display, and install the firmware. ![Exploded view of the Serin Link display, printed stand, sensor PCB, bottom cap, and silicone pad](https://serin-labs.com/assets/content/800/serin-link-exploded-side.webp.70fc8f912f21.webp) Display purchased separately. 1. ### Get the display Buy the supported VIEWE 1.5-inch module separately. 2. ### Assemble the kit Install the display and PCB, then fit the cap and pad. 3. ### Install the firmware Flash over USB with a supported desktop browser. [Read the build guide](https://serin-labs.com/link/build-guide.html) ## Overview Highlights Room for the things around it. About 2 inches wide and 2½ inches tall, Link fits neatly beside a laptop or bedside lamp. A quieter screen at night. Keep a dim temperature reading visible, or set the screen to turn off when idle. The first touch or turn wakes it without changing your settings. The interface ### A turn is all it takes. Adjust the temperature from your desk or bedside without reaching for your phone. Press the knob for mode and fan controls, or use the touchscreen. Link only shows the modes and fan speeds your unit supports. ![The Serin Link home face in Heating: the knob raises the target from 72 to 75 degrees and back](https://serin-labs.com/assets/fig-home-heat.gif) Home: turn to set the temperature ![The Serin Link menu: a ring of shortcuts, the highlight stepping from one to the next](https://serin-labs.com/assets/fig-menu.gif) Menu: turn to highlight, press to open ![The Serin Link airflow screen: fan speed dragged, then the vane stepped through its positions](https://serin-labs.com/assets/fig-airflow.gif) Airflow: fan speed and vent direction ![The Serin Link mode picker: heat, cool, auto, dry, fan and off around the ring](https://serin-labs.com/assets/fig-mode-picker.gif) Modes: only the ones your unit has ![The Serin Link glance face: just the room temperature, dim on black](https://serin-labs.com/assets/fig-idle-glance.png) Dimmed temperature display Built-in room sensor ### Measure the temperature beside you. Place Link at your desk or bedside and select it as your Serin Controller's room sensor. Your heat pump then uses the temperature measured there to guide heating and cooling. Temperature and humidity Check both readings on Link's display. Direct to your controller Sensor readings travel over an encrypted radio connection, without relying on your home Wi-Fi. ![An exploded view of the Serin Link from below: the black dial, the orange base, the sensor board with its USB-C port, and the foot](https://serin-labs.com/assets/content/660/serin-link-exploded-crop.webp.7f84a912d3a1.webp) ![The Serin Link on a bedside table, reading 72 degrees with the room at 70](https://serin-labs.com/assets/serin-link-nightstand.webp) ### Works with Home Assistant With a compatible ESPHome controller, view Link's temperature and humidity in Home Assistant and use the readings in your automations. [Explore the ESPHome integration](https://serin-labs.com/esphome/features.html#dial) ## Technical **Display** VIEWE 1.5″ UEDX46460015-MD50ET round AMOLED, 310 ppi, capacitive touch **Controls** Turn or press the knob; tap, drag, swipe, or hold on the touchscreen **Wireless** ESP32-S3 with a dedicated encrypted radio link straight to the controller **Sensor** Sensirion SHT41 temperature + humidity, accounts for heat generated inside the device **Power** USB-C, no battery **Pairing limits** Up to 7 controllers per Serin Link; up to 4 Serin Links per controller **Works with** Serin Controller, or any ESPHome climate device with the `serin_link` component **Firmware** Free and open source (GPL-3.0); flashable from Chrome or Edge over USB **Dimensions** About 2 inches wide, 2½ inches tall, 2 inches deep **Placement** Desktop stand, indoor use only ![Serin Link on its compact tabletop stand, viewed from the front](https://serin-labs.com/assets/gallery/800/serin-link-v5-front.webp.webp) Dimensions About 2 inches wide, 2½ inches tall, and 2 inches deep. ![Front and back of the Serin Link's oval sensor board: USB-C port, display connector, and the SHT41 sensor behind slots in the copper](https://serin-labs.com/assets/serin-link-pcb.webp) The sensor board Slots in the board reduce heat transfer to the room sensor. ## In the box ![The Serin Link in orange with its USB-C power adapter and coiled USB-C cable](https://serin-labs.com/assets/serin-link-in-the-box.webp) - Serin Link Dial, 1.5″ display, and stand with the sensor board inside. Firmware installed. 1× - USB-C cable Powers the Link; there is no battery. 1× - USB power adapter 1× - Serin Controller optional Standard 8-inch cable. Needed at each indoor unit the Link will control. The body is 3D printed. ![Orange printed-stand DIY kit contents](https://serin-labs.com/assets/serin-link-build-kit-contents.webp) ### Your DIY kit - Serin Link PCB Assembled and tested. Includes the SHT41 temperature and humidity sensor. 1× - Stand + bottom cap, or STL file Choose printed parts or the file when ordering. 1 set - M2.5 × 8 mm screws Three for the display, one for the PCB. 4× - Ball-end Allen key The tool for assembly. 1× - Silicone bottom pad Precut, self-adhesive, and reusable. 1× **You’ll also need** The supported VIEWE display , a compatible controller, and a computer for firmware installation. [View parts and requirements →](https://serin-labs.com/link/build/parts-and-tools.html) ## FAQ **Does it need Wi-Fi?** Not for everyday use. The Serin Link connects wirelessly to the controller without using your home Wi-Fi. The controller uses Wi-Fi for updates and remote features. You can use the Serin Link to help connect the controller to Wi-Fi or change its network. **What does it need at the heat pump?** A [Serin Controller](https://serin-labs.com/controller.html) at each indoor unit, or an ESPHome climate device running the `serin_link` component. The Serin Link does not talk to the heat pump directly. **Is it a thermostat?** It provides temperature controls and a room sensor, but it needs a separate controller to operate the heat pump. The Serin Link shows the current settings and lets you change them. Changing the target temperature on the Serin Link also updates it in your smart home app, and vice versa. **How do I switch between rooms?** Swipe left or right on the home screen to switch rooms. To open the room list, press and hold the knob or tap the room name. **Does it stay lit at night?** When idle, the screen shows a dim room temperature reading. You can set it to turn off instead. The first touch, knob turn, or knob press wakes the screen without changing any settings. **Can I install the firmware myself?** The assembled Serin Link arrives with firmware installed. For the DIY kit, assemble the kit with your separately purchased VIEWE 1.5-inch display, then install the free, open-source firmware through the [Serin Link browser flasher](https://serin-labs.com/flash-link.html). Use Chrome, Edge, or Brave on a computer and connect with a USB data cable. See the [build guide](https://serin-labs.com/link/build-guide.html) for the steps. ### Limitations - The Link does not operate a heat pump on its own. It needs a [Serin Controller](https://serin-labs.com/controller.html) at each indoor unit, or an ESPHome climate device running the `serin_link` component. - Up to 7 controllers per Link, and up to 4 Links per controller. - USB-C powered with no battery; it stays where it is plugged in. - Indoor use only, on a desktop stand. After it arrives ## Plug in, pair, and place Power it over USB-C, press the knob to pair with your controller, then set it where you sit. [Read the manual](https://serin-labs.com/documentation.html#serin-link) [Quick start](https://serin-labs.com/link/manual.html) --- # Controller Wi-Fi and smart-home pairing > Use Link to connect your controller to Wi-Fi and home apps. Source: https://serin-labs.com/link/connections.html Last updated: 2026-10-17 Link displays setup codes for the selected controller. These procedures configure that controller’s network and home-app connections. ## Wi-Fi setup The **Serin Controller** uses home Wi-Fi for network functions. Link’s daily heat pump controls use a separate wireless connection. Wi-Fi setup and the available actions depend on the controller firmware. ## Start setup or change a network ![Wi-Fi setup offer](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/wifi-needed.png) Wi-Fi setup offer When the home screen offers Wi-Fi setup, push the knob or tap the screen to start. To suppress this offer, keep the knob pushed **on this home-screen offer** until the confirmation arc completes. This choice suppresses later automatic offers. You can still open **Settings → Wi-Fi** to configure the network later. In Settings, highlight **Wi-Fi**. Follow the applicable case: Scroll sideways to read all columns. | Controller state | Action | | --- | --- | | No configured network, setup available | Push the knob to start setup. | | Configured network disconnected, · **change network** · hint | Push the knob to configure a network. | | Working network with · **change network** · hint | Keep the knob pushed until the confirmation arc completes. Alternatively, touch and hold the Wi-Fi status. This starts network change. Releasing the touch does not open the web QR code. | | Working network with a reported IP address | A brief push or tap on the Wi-Fi status opens the controller web QR code. It does not change the network. | | Controller offline, or setup unavailable | Restore the connection between Link and the controller, or use the controller firmware’s setup procedure. | A network change can interrupt network functions. Release early during its confirmation arc to cancel the request. Releasing a long touch hold before the arc completes stays in Settings and does not open the web QR code. To open the code afterward, tap the Wi-Fi status briefly. Matter-compatible firmware has no **Forget Wi-Fi** action. Use **change network** to move the controller to another network while keeping its Matter home pairings. When you hold the controller’s physical button for at least seven seconds, the light turns solid yellow. Release the button to cancel the gesture. Longer holds also cancel; they do not erase Wi-Fi. ## Connect the controller to Wi-Fi ![QR code for the setup hotspot](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/wifi-qr.png) QR code for the setup hotspot 1. Scan the setup QR code with your phone camera. 2. Accept the phone’s request to join the displayed temporary Wi-Fi network. 3. On the setup page, select your home network. 4. Enter its password. 5. Submit the network details with the page’s connection button. 6. Wait for **Wi-Fi connected** on Link. 7. Connect your phone to the home network again. For unusual network names or keys, see the [Wi-Fi reference](https://serin-labs.com/link/technical-reference.html#wi-fi-credentials). If scanning does not connect the phone, select the displayed **Serin-XXXX** network in the phone’s Wi-Fi settings. Enter `serinlabs` as its password. While connected to that hotspot, open `http://192.168.4.1` if the setup page does not open automatically. These hotspot details apply to the controller firmware described in the [Serin setup guide](https://serin-labs.com/setup.html). ![Wi-Fi connected](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/wifi-connected.png) Wi-Fi connected If a pairing code appears, continue with [HomeKit and Matter pairing](https://serin-labs.com/link/connections.html#homekit-and-matter-pairing). If no home pairing is needed, push the knob to finish. A new Matter controller can instead receive Wi-Fi details from the home app during Matter pairing. A Wi-Fi offer on Link is not a prerequisite for that process. Use the controller’s setup instructions if Link offers no hotspot. ## Cancel Wi-Fi setup For a network change on a controller that supports cancellation, hold the knob while the hotspot starts, or push or hold on the setup QR screen. Link shows **Cancelling setup** until the controller confirms that the hotspot is closed, then returns to Settings. Link automatically retries while it waits for the reply. Setup requests stop as soon as cancellation begins. If network details have already been submitted, cancellation waits for the controller’s connection trial to finish. A successful new network remains saved; a failed trial restores the previous saved network when available. Cancellation does not erase network details. If home Wi-Fi is unavailable, **Setup hotspot open** explains that the hotspot remains available so you can reconnect. Push the knob to return to Settings. If no confirmation arrives for approximately 15 seconds, Link shows **No confirmation**. The hotspot may still be open. Push to retry cancellation, or hold to go back without confirmation. Older controllers show **go back** instead of **cancel**. Leaving a network-change screen explains that the hotspot normally closes after about ten minutes when home Wi-Fi is connected; push again to return to Settings. Older firmware may keep the hotspot open longer if home Wi-Fi disconnects during setup. On an initial setup QR screen, push or hold to leave the screen. Hold while the hotspot starts to leave. This keeps the hotspot available for initial setup. Link returns to Settings if you started there, or home if you started from the offer. Leaving does not suppress the automatic offer. The long hold **on the home-screen offer** is the separate action that suppresses that offer. For setup failures or screen timeouts, see [Retry, cancel, or return later](https://serin-labs.com/link/troubleshooting.html#retry-cancel-or-return-later). ## Open the controller web interface The controller must be online, connected to Wi-Fi, and reporting an IP address. 1. Connect your phone to the same home network as the controller. 2. On Link, open **Settings**. 3. Highlight **Wi-Fi**. 4. Push the knob when **show web UI** appears. 5. Scan the QR code on the **Controller** screen with your phone camera. 6. Open the web address offered by the phone. ![Controller web interface QR code and IP address](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/controller-web-qr.png) Controller web interface QR code and IP address Alternatively, enter `http://` followed by the displayed IP address in your browser. For example, use `http://192.168.1.50/` only if Link shows that address. Push or hold the knob to leave. ## HomeKit and Matter pairing These procedures add the **controller** to a home app. They are separate from pairing **Serin Link** with **Serin Controller**. Select the intended zone before you start. Use the code on your own device, not a code in a manual figure. ## Add HomeKit-compatible firmware to Apple Home Use an iPhone or iPad with the Home app. Connect the controller and phone to the same home network. The controller must be online and unpaired with a home. 1. On Link, open **Settings**. 2. Highlight **HomeKit**. 3. Push the knob to display the setup QR code. 4. On your phone, open **Home → + → Add Accessory**. 5. Scan the QR code on Link and follow the app’s setup prompts. ![HomeKit setup QR code](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/homekit-qr.png) HomeKit setup QR code If scanning fails, use the app’s manual setup option. Enter the eight-digit HomeKit code shown on Link. The HomeKit-compatible firmware is not Apple certified. The app can show an uncertified-accessory message during setup. Refer to [Apple’s accessory setup instructions](https://support.apple.com/en-us/104998) and [manual code entry](https://support.apple.com/guide/iphone/iph125110541/ios). When the controller reports success, Link shows **HomeKit paired**. Push the knob to finish. ![HomeKit pairing complete](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/homekit-paired.png) HomeKit pairing complete ## Add Matter-compatible firmware to a home app Use a Matter-capable home app and its required hub. Enable Bluetooth on the phone for initial setup. The Serin Matter-compatible firmware uses Wi-Fi, not Thread. The controller must accept pairing, and Link must have an online connection to it. Normal entry from Settings requires an unpaired controller. 1. On Link, open **Settings**. 2. Highlight **Matter**. 3. Push the knob to display the Matter setup QR code. 4. Open your home app on the phone. 5. Use its procedure below to add the controller. 6. Wait for **Matter paired** on Link. 7. Push the knob to finish. ![Matter setup QR code](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/matter-qr.png) Matter setup QR code For **Apple Home**, use **+ → Add Accessory**. Scan Link’s Matter QR code. Alternatively, enter its Matter setup code with the app’s manual option. Complete the room and name prompts. See [Apple’s Matter instructions](https://support.apple.com/en-us/102135). For **Google Home**, this test firmware requires developer setup before pairing. Follow the [Google Home setup reference](https://serin-labs.com/link/technical-reference.html#google-home-test-firmware). For another Matter app, follow that app’s instructions for adding an accessory. Check its requirements for uncertified firmware before pairing. Do not assume that every app accepts the controller without additional configuration. ![Matter pairing complete](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/matter-paired.png) Matter pairing complete ## Continue after Wi-Fi setup or return later When Wi-Fi setup continues to a pairing code, start with the phone steps in the applicable procedure above. You do not need to reopen Settings first. To leave the pairing code, push or hold the knob. You can return through **Settings → HomeKit** or **Settings → Matter** while the controller remains unpaired. After success, push the knob to finish. A screen timeout returns home without removing a pairing. For unavailable codes or pairing options, see [Pairing status and missing codes](https://serin-labs.com/link/troubleshooting.html#pairing-status-and-missing-codes). ## Add another home app or remove a home pairing These procedures use the controller web interface. They apply when its HomeKit or Matter card offers the named controls. To add another Matter ecosystem: 1. Open the [controller web interface](https://serin-labs.com/link/connections.html#open-the-controller-web-interface). 2. Open its **Matter** card. 3. Select **Open Pairing Window**. 4. In the new home app, start its accessory-addition procedure. 5. Scan the controller web interface’s QR code before the pairing window closes. 6. Complete the new app’s setup prompts. The already-paired Link Settings screen does not open this QR code. **CAUTION:** Removing a home pairing removes that home’s access to the controller. It does not remove the Link zone pairing. To remove one Matter ecosystem: 1. Open the controller web interface’s **Matter** card. 2. Find the home that you want to remove in the paired-home list. 3. Select **Remove** beside that home. 4. Check the home name in the confirmation dialog. 5. Confirm removal, or cancel to keep it. Other paired homes remain. If you intend to remove every Matter home, select **Reset Matter Pairing** instead. Read its warning before you confirm. This action removes all Matter pairings and restarts the controller. To remove HomeKit pairings: 1. Open the controller web interface’s **HomeKit** card. 2. Select **Reset HomeKit Pairing**. 3. Read the warning that all HomeKit pairings will be removed. 4. Confirm removal, or cancel to keep them. After removal, use the applicable home-pairing procedure again. If a home app retains an old accessory entry, follow that app’s removal instructions. Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Temperature, modes and airflow > Adjust temperature, operating mode, fan speed, and vane direction. Source: https://serin-labs.com/link/controls.html Last updated: 2026-10-17 Use these controls for the selected room. To operate another room, [select its zone](https://serin-labs.com/link/zones.html#zones-more-than-one-room) first. ## The home screen The home screen shows the temperature and heat pump controls for daily use: ![Home screen during heating](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-heat.png) Home screen during heating - **The large number** shows the target temperature. Turn the knob to change the target temperature. When you stop, Serin Link automatically sends the change to the heat pump. Alternatively, move your finger along the ring to change the target temperature, or tap the left side of the screen to decrease it and the right side to increase it. Each tap changes the target by one step. ![Target temperature changes as the knob turns](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/anim-turn-setpoint.png) Target temperature changes as the knob turns On first use, on-screen tips introduce the controls without changing the heat pump. Changes made in a home app or with the heat pump’s remote appear when the controller reports them. Turn the knob to choose another target, including a temperature you used earlier. - **The bright marker on the ring** shows the target temperature within the available range. **The smaller marker** shows the current room temperature on the same ring. A coloured arc joins the two markers. The arc is grey when the heat pump is off. - **The status label above the large number** shows the current heat pump operation, for example, *Heating* or *Cooling*. When the heat pump is idle, the label shows the current mode. Tap the status label to open the mode selection screen. The status label also shows **Offline** or **Syncing**. Other warnings show as a label at the bottom of the screen. Refer to [Troubleshooting](https://serin-labs.com/link/troubleshooting.html#troubleshooting). - **The “Now” line** below the large number shows the measured room temperature and humidity. - **The small fan button at the bottom** opens the [Airflow](https://serin-labs.com/link/controls.html#airflow) controls when you tap it. If Serin Link has more than one zone, the current zone name shows in this position instead. A warning label replaces both while it shows. ![Home screen during cooling](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-cool.png) Home screen during cooling In **Heat/Cool** mode, the heat pump keeps the room temperature between two limits. The home screen shows both temperatures. 1. Tap the temperature that you want to change. The low limit is selected until you tap the high limit. 2. Turn the knob to change the selected temperature. Alternatively, tap near the top or bottom of the left edge to decrease it, or of the right edge to increase it. ![Heat/Cool mode with two temperature limits](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-band.png) Heat/Cool mode with two temperature limits ![Off](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-off.png) Off ## Choosing a mode 1. Open the mode selection screen from the Menu or tap the status label on the home screen. 2. Turn the knob to highlight a mode. 3. Push the knob, tap **Use mode**, or tap the mode icon to select that mode. ![Mode selection screen](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/mode-picker.png) Mode selection screen The mode name, optional description, and action pill stay in the same positions as you browse. Select **Back**, then push the knob or tap **Return** to leave without changing the mode. Tapping the Back ring icon also returns directly. Some Serin Controllers have both **Heat/Cool** and **Auto** modes. Heat/Cool uses a temperature range. Auto is the automatic mode of the Serin Controller. The mode selection screen shows separate names for these modes. A flame and a snowflake together identify Heat/Cool. When highlighted, Heat/Cool shows *Sets a temperature range* and Auto shows *Automatic mode*. With Serin HomeKit-compatible and Matter-compatible controller firmware, the controller’s **Auto** mode appears as **Heat/Cool** on Link. The lower temperature is the heating limit; the upper temperature is the cooling limit. These are the same limits used by the home app and controller web interface. The controller keeps at least 2 °C between them. To stop heat pump operation, select **Off** from the mode selection screen. There is no separate power button. ## Airflow To open the Airflow controls, flick up on the home screen or tap the small fan button at the bottom. The selected control shows in the center. The ring shows controls for fan speed and each available vane. A **vane** is a part of the heat pump that changes the airflow direction. ![Airflow](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/airflow.png) Airflow The first available control is already in adjustment mode when Airflow opens. A knob turn immediately changes its value, even when several controls are available. If only one control is available, turn the knob to adjust it. Push the knob to leave Airflow. If several controls are available, use this procedure to change controls: 1. Push the knob to leave the initial adjustment mode. 2. Turn the knob to highlight the required control. 3. Push the knob to enter adjustment mode. 4. Turn the knob to change the value. 5. Push the knob to leave adjustment mode. - **Fan speed**: move your finger along the center bar. Alternatively, turn the knob when the fan control is ready for adjustment. The height of the filled area shows the fan speed. If Auto is available, tap the active fan control to switch between Auto and manual speed. With the knob, turn below the lowest speed to select Auto. A tap on an inactive fan control first selects it for adjustment. - **Vanes**: slide your finger on a vane tile to change the vane angle. Slide up or down on the vertical vane. Slide left or right on the horizontal vane. Alternatively, tap a vane tile to make it ready for adjustment. Then, turn the knob to change the angle, or tap the tile again to move to the next position. Each tile controls a vane that your heat pump has. - **Vane Auto and Swing**: these settings are at the ends of the vane positions when your heat pump has them. On the vertical vane, Auto is above the highest position and Swing is below the lowest position. On the horizontal vane, Auto and Swing are after the right position. With an **Auto** setting, the heat pump automatically controls the fan speed or vane position. The control becomes dim and shows an **AUTO** label: ![Fan on Auto](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/airflow-fan-auto.png) Fan on Auto ![Vane on Auto](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/airflow-vane-auto.png) Vane on Auto For ESPHome controllers, fan **Auto** appears only when the configured climate supports automatic fan speed. A climate’s fan **On** setting alone does not provide this option. To leave Airflow, flick down outside the tiles or select **Back** when available. When Back is highlighted, the center shows **Back** and a **Return** pill in the same positions as Settings. The adjustment tile is hidden. Push the knob or tap Return to leave; turn to another control to resume adjustment. ![Airflow with Back highlighted](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/airflow-return.png) Airflow with Back highlighted Hold the knob to return home. Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Status and diagnostics > Check versions, sensor readings, and connection details for support. Source: https://serin-labs.com/link/diagnostics.html Last updated: 2026-10-17 Check the selected zone, connection state, firmware versions, and reported sensor readings before contacting support. For a warning message, use [Troubleshooting](https://serin-labs.com/link/troubleshooting.html#troubleshooting). ## About and Details 1. Open **Settings**. 2. Highlight **About**. 3. Tap **Details**, or push the knob. 4. Move your finger up within the list to see more information. When the controller reports a battery level for a remote sensor, **Sensor battery · N%** shows in the center of Settings with **About** highlighted. ![About details](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/about.png) About details Turn the knob to scroll. At the end of the list, turn further to highlight **Update** or **Back**, then push the knob. A push before then, or a tap outside the list, returns to Settings. **Last boot** turns amber after a crash, watchdog reset, or brownout. **Protocol** turns amber when the Link and controller protocol versions differ. Scroll sideways to read all columns. | Section | Information | | --- | --- | | LINK | Serin Link firmware, build, board, MAC address, uptime, last restart reason, and wireless protocol versions. | | CONTROLLER | Serin Controller identity and available firmware, restart, and Wi-Fi details. | | CONNECTION | The wireless connection between Link and the controller, signal strength, and time since the last message. | | HEAT PUMP | CN105 connection, available operating details, and reported heat pump faults. | | SENSOR | Available remote sensor temperature, humidity, battery level, and signal strength. | | LINK SENSOR | Available temperature and humidity measured by Link’s sensor. | ![Sensor details with the control source marked](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/about-sensors.png) Sensor details with the control source marked **IN CONTROL** marks a sensor source that the controller reports as selected with a valid reading. Other measurements can remain visible without controlling the heat pump. Unsupported sections or fields are absent. A dash means that a value is unavailable or no report arrived yet. ## Contact support For support, record the selected zone, Link board, both firmware versions, connection status, and any fault code. Include the **Last boot**, **Last seen**, and signal fields when available. Describe the action and message that preceded the problem. Send these details through [Serin support](https://serin-labs.com/contact.html). ## Heat Pump status ![Heat Pump status](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-heat-pump.png) Heat Pump status **Heat Pump** is a status display. It does not adjust the heat pump. **Connected** means that the controller reports CN105 communication. **Not connected** means that it reports no CN105 communication. **Fault** with a code is a heat pump fault. A count such as **3 errors** reports communication errors. Available operating details can include the operating stage, compressor frequency in Hz, and outdoor temperature. Missing details depend on what the controller and heat pump report. With multiple zones, **Press to choose zone** appears below the status pill. Push the knob or tap the pill to open zone selection. Select the required zone. In this firmware revision, zone selection returns home. Reopen Advanced to inspect that zone’s Heat Pump status. ## About this manual Your firmware version can be different from the version that this manual describes. Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Knob and touchscreen gestures > Look up gestures, confirmation holds, and menu navigation. Source: https://serin-labs.com/link/gestures.html Last updated: 2026-10-17 The result of a control action depends on the screen and the selected item: Scroll sideways to read all columns. | Gesture | What it does | | --- | --- | | **Turn the knob** | Changes the target temperature on the home screen or the highlighted item in a menu. Changes the fan or vane setting when the control is ready for adjustment. Does not open another screen. | | **Tap, or push the knob** | Opens an item, selects an item, or applies a change. On the home screen, a knob push opens the Menu. | | **Tap the left or right side of the home screen** | Decreases or increases the set temperature by one step. | | **Hold (approximately 0.6 seconds)** | Keep the knob pressed. On the home screen, opens Zones when available. On most other screens, returns home. See the screen-specific actions below. | | **Long hold until the progress indicator fills** | Confirms the action shown on screen, such as unlocking controls, forgetting a zone, or changing the Wi-Fi network. Release early to cancel. For Reset Link, this opens another confirmation before anything is erased. | | **Flick up** · on the home screen | Opens the · [Airflow](https://serin-labs.com/link/controls.html#airflow) · controls. | | **Slide** · on an Airflow control | Changes the fan speed or vane angle. Slide up or down on the fan bar or the vertical vane. Slide left or right on the horizontal vane. | | **Flick down** · on the Airflow screen, outside the controls | Returns to the screen that opened Airflow. | | **Swipe left or right** · on the home screen | Changes the selected zone. | **Back** returns to the previous screen. Hold the knob to return home. To **hold**, keep the knob pushed. Use the knob for hold procedures. On the home screen, a touch hold also unlocks Child Lock or suppresses the Wi-Fi offer. In Settings, a touch hold on the Wi-Fi status also starts network change. Forgetting a zone and **Reset Link** need the knob. A **flick** is a quick movement, while a **slide** starts on the control you want to adjust. The action depends on the current screen: - **Home:** hold the knob to open Zones when available. - **Pairing:** hold to cancel a search. On other pairing screens, use the on-screen buttons. - **Update:** hold to cancel when cancellation is available. Once the update is being verified or the device is restarting, holding does not cancel it. - **Dialog:** hold to close the dialog without its action. - **Wi-Fi setup:** follow the on-screen hold instruction to leave setup. - **Most other screens:** hold to return home. Actions that need confirmation use a longer hold. Keep the knob pushed while the curved progress indicator fills. This indicator is called the **confirmation arc**. Release before it fills to cancel. For **Reset Link**, the complete arc opens a second confirmation dialog. The arc alone does not erase anything. ![Confirmation arc during a long hold and cancellation after early release](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/anim-hold-confirm.png) Confirmation arc during a long hold and cancellation after early release ## Menu navigation The **Menu** has a ring of controls: **Home**, **Mode**, **Airflow**, **Zones**, **Settings**, and **Back**. **Zones** shows only with two or more zones. **Airflow** shows only when the heat pump has fan or vane controls. 1. On the home screen, tap the center or push the knob to open the Menu. 2. Turn the knob to highlight a control. 3. Push the knob or tap the control to open it. **Home** returns to the home screen. ![Menu](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/menu.png) Menu Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Updates and resets > Update Link, reinstall its firmware, or reset its settings. Source: https://serin-labs.com/link/maintenance.html Last updated: 2026-10-17 Update Link, reinstall its firmware, or clear its settings. For the current firmware versions, see [About and Details](https://serin-labs.com/link/diagnostics.html#about-and-details). ## Update Serin Link **Update** installs firmware on **Serin Link**. It does not update the controller. Use the controller web interface or its firmware instructions for controller updates. The button appears when the controller is online and supports supplying Link’s update connection details. Complete controller Wi-Fi setup before you check. If Update is absent, check the connection to the controller and the controller firmware support. For ESPHome configuration and credential-sharing requirements, see [Update connection requirements](https://serin-labs.com/link/maintenance.html#update-connection-requirements). 1. Open **Settings → About → Details**. 2. Tap **Update**. 3. Wait while **Checking** appears. 4. If an update is available, check the offered version. 5. Tap **Install**, or push the knob to install. **Install** is highlighted when the screen opens. 6. Keep Link powered during download, verification, and restart. 7. After Link restarts, keep the dial plugged in for 30 seconds. ![Update checking](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/update-checking.png) Update checking ![Update available](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/update-available.png) Update available ![Update download and Cancel control](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/update-download.png) Update download and Cancel control To cancel during **Checking** or **Downloading**, tap **Cancel**, push the knob, or hold the knob. On the version-confirmation screen, tap **Cancel**, or turn the knob to highlight **Cancel** and push it. Holding the knob also cancels. A push while **Install** is highlighted starts installation. The confirmation screen closes after about one minute without a choice. Link returns to Settings. Check for updates again. During **Verifying** and **Installed / Restarting**, cancellation is unavailable. Wait for Link to restart. If the firmware is current, tap **Done** or push the knob to dismiss **Up to date**. The **Installed** screen says **Restarting. Keep the dial plugged in for 30 seconds**. After the restart, Link runs the new version for 30 seconds and checks that it reaches the controller. If Link restarts or loses power in that time, the previous version comes back. Run Update again to reinstall the new version. If Link cannot reach the controller within 10 minutes, it also returns to the previous version. While Link checks the new version, **Reset Link** and forgetting a zone do not restart Link. They show **Failed** with **Keep the dial plugged in for 30 seconds** and change nothing. Tap **Done**, wait, then try again. Successful pairing during this check saves the pairing without restarting Link. The **Paired** screen shows **Keep the dial plugged in for 30 seconds**; the `espnow-pair` console command prints the same message. No automatic restart is scheduled. After Link validates the update, restart it to load a newly added zone. Do not pair that zone again. Pairing is preserved; you do not need to pair again. ![Up to date](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/update-uptodate.png) Up to date If an update fails, see [Update failure](https://serin-labs.com/link/troubleshooting.html#update-failure). ## Update connection requirements The standard browser-installed ESPHome build allows Link updates. With a configuration from the YAML generator, enable **Connect a Serin Link** and **Allow Link firmware updates**, then install the configuration. Updates require the controller to share Wi-Fi credentials with Link. See the [ESPHome update reference](https://serin-labs.com/link/technical-reference.html#esphome-updates) for requirements and how to disable sharing. ## Reinstall firmware over USB Reinstalling firmware over USB with the browser flasher keeps Link’s settings and pairings when **Erase everything first** is unchecked. Check that box to return Link to its factory state; pair Link with the controller again afterwards. Keep the USB cable connected until the flasher reports completion. The [browser flasher](https://serin-labs.com/flash-link.html) provides **Try the write again** recovery if an installation fails. The flasher checks every downloaded file before it erases or writes the board. If it reports missing or invalid firmware integrity information, reload the page to fetch the current manifest. This error leaves the board unchanged. ## Reset Link **CAUTION:** Reset Link erases all Link zone pairings and settings, then restarts. The heat pump keeps running. The controller’s home pairing and Wi-Fi network are not affected. 1. Open **Settings → Advanced**. 2. Highlight **Reset Link**. 3. Keep the knob pushed until the confirmation arc is complete. 4. Release the knob when **Reset Link?** appears. 5. Tap **Reset** to erase Link, or **Cancel** to keep its settings. The **Hold the knob** instruction and **Then confirm reset** hint describe these two steps. Tapping the instruction does not start a reset. ![Reset Link — hold the knob](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-reset.png) Reset Link — hold the knob ![Reset Link confirmation](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/reset-confirm.png) Reset Link confirmation The dialog opens with **Cancel** highlighted, so a push of the knob keeps Link’s settings. To erase with the knob, turn it to highlight **Reset**, then push the knob. An early release during the arc cancels before the dialog opens. After **Reset**, Link shows **Resetting** and restarts. After reset, use [First power-on and pairing](https://serin-labs.com/link/pairing.html#first-power-on-and-pairing). Once you reach Advanced, Child Lock does not block Reset Link, even if you leave the screen idle for more than 30 seconds before confirming. For 30 seconds after an update restart, Reset Link erases nothing and shows **Failed** with **Keep the dial plugged in for 30 seconds**. Tap **Done**, wait, then reset again. See [Update Serin Link](https://serin-labs.com/link/maintenance.html#update-serin-link). Do not keep the knob pushed while you connect power. This starts firmware download mode instead of the normal application. If this occurs, release the knob. Disconnect power. Connect power again with the knob released. Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Quick start > Pair a new Link and check that it controls your heat pump. Source: https://serin-labs.com/link/manual.html Last updated: 2026-10-24 The **Serin Link** is a compact tabletop control for your heat pump, about 2 inches wide and 2½ inches tall. Place it on a desk, shelf, or nightstand near a USB power source. Turn the dial to set the temperature; press it for mode and fan controls, or use the touchscreen. Link sends commands through a **Serin Controller** at the heat pump, or a compatible ESPHome climate device. The two devices use their own wireless connection, so daily control does not need home Wi-Fi. One Link can control up to seven rooms, called **zones**, with a controller at each indoor unit. Link is USB-C powered and has no battery. [Download the one-page Link quick start (PDF)](https://serin-labs.com/assets/link/serin-link-quick-start.pdf). Use this short path for a new Link. If Link is already paired, go to [Temperature, modes and airflow](https://serin-labs.com/link/controls.html#temperature-modes-and-airflow). ## Before you start - Supply power to Link. An assembled Link has its firmware installed. - Set up a compatible Serin Controller or ESPHome climate device. A Controller added to a Link order ships unflashed. For app control, complete [Controller setup](https://serin-labs.com/setup.html) first. For Link alone, follow [Using Link without a smart-home app](https://serin-labs.com/link/manual.html#using-link-without-a-smart-home-app). - With ESPHome, the standard browser-installed build includes Link support. If you use a configuration from the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) instead, enable **Connect a Serin Link** in it and [install the configuration](https://serin-labs.com/controller/customize-esphome.html) before pairing. - Keep Link within wireless range of the controller. Local heat-pump control does not require home Wi-Fi. ## Pair and check control 1. Open the controller’s pairing window. With HomeKit-compatible or Matter firmware, select **Pair** in its web interface’s **Link** card. With ESPHome, select **Pair Serin Link** in Home Assistant or the enabled web interface. 2. On Link’s ready screen, tap **Pair** or push the knob. Keep the controller’s pairing window open until Link reports **Paired** and restarts. 3. Check that Link shows the room temperature. Turn the knob to change the target temperature, then wait for the controller to confirm the change. **Setup is complete when** Link shows current controller information and the heat pump accepts a control change. If pairing does not complete, follow [Pairing recovery](https://serin-labs.com/link/troubleshooting.html#pairing-recovery). For screenshots and cancellation instructions, see [First power-on and pairing](https://serin-labs.com/link/pairing.html#first-power-on-and-pairing). ## Using Link without a smart-home app These steps prepare a new Serin Controller for Link control without a home app, home hub, or home Wi-Fi. Use the free HomeKit-compatible firmware on the Controller. No Apple device is needed. Link already has its own firmware installed. 1. Connect the Controller to a computer with a USB data cable. Leave its CN105 cable disconnected. Open the [Controller flash tool](https://serin-labs.com/flash.html?platform=homekit) in Chrome, Edge, or Brave. Select **Apple Home** and install the firmware. 2. If the tool asks for Wi-Fi details, select **Skip and use the backup setup network**. You do not need to join that network or add the Controller to an app. Leave the Controller powered over USB for pairing. 3. Power Link with its included cable and charger. Keep it near the Controller. 4. On the new Controller, hold its button until the light turns purple, after about two seconds. Release before seven seconds to open pairing. This button procedure is for a Controller with no paired Link; on an already paired Controller, the same hold removes its Link pairings. 5. On Link’s ready screen, tap **Pair** or push the knob. Wait for **Paired** and the restart. A heat-pump connection warning is expected while the Controller’s CN105 cable is disconnected. 6. Disconnect the Controller’s USB cable. Turn off the indoor unit at its breaker, then follow the [Controller installation guide](https://serin-labs.com/controller/install.html). Replace the cover before restoring power. 7. Wait for Link to show current room information. Turn its knob to change the target temperature and confirm that the indoor unit responds. You can skip home-app pairing. Connect the Controller to Wi-Fi if you want browser controls or wireless updates. If Link offers Wi-Fi setup, keep the knob pushed on that offer until the confirmation arc completes to hide it. You can [set up Wi-Fi later](https://serin-labs.com/link/connections.html#wi-fi-setup). ## Continue setup - [Use temperature, mode and airflow controls](https://serin-labs.com/link/controls.html#temperature-modes-and-airflow). - [Add another room](https://serin-labs.com/link/zones.html#add-or-forget-a-zone). - [Choose a room temperature sensor](https://serin-labs.com/link/room-sensors.html#select-a-temperature-source). - [Set display brightness and control locking](https://serin-labs.com/link/settings.html#display-and-control-settings). - [Connect the controller to Wi-Fi](https://serin-labs.com/link/connections.html#wi-fi-setup) for network functions and home apps. Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Pair your first controller > Pair Link with a controller and follow the on-screen progress. Source: https://serin-labs.com/link/pairing.html Last updated: 2026-10-17 An assembled Serin Link arrives with Link firmware installed. It needs a compatible Serin Controller or a configured ESPHome climate device. If you added a Serin Controller to your order, that Controller ships unflashed. For app control, complete [Controller setup](https://serin-labs.com/setup.html). For Link alone, follow [Using Link without a smart-home app](https://serin-labs.com/link/manual.html#using-link-without-a-smart-home-app). Adding the Controller to your order does not pair the two devices. With ESPHome, the standard browser-installed build shows **Pair Serin Link** in Home Assistant and in the controller web interface. If the button is absent, the controller has an older build or a configuration without Link support. Install the current controller firmware. Alternatively, enable **Connect a Serin Link** in the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) and [install the configuration](https://serin-labs.com/controller/customize-esphome.html). At first power-on, Serin Link has no paired Serin Controller. The screen shows that it is ready for pairing: ![Ready to pair](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/pairing-ready.png) Ready to pair 1. Start pairing on the intended Serin Controller with the applicable instruction: - With HomeKit-compatible or Matter-compatible firmware, select **Pair** in the controller web interface’s **Link** card. - With ESPHome, select **Pair Serin Link** in Home Assistant or in the enabled ESPHome web interface. 2. On Serin Link, touch **Pair** briefly or push the knob. A brief touch on the screen is a **tap**. ![Pairing in progress](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/anim-pairing-search.png) Pairing in progress Keep the controller pairing window open until pairing is complete. If the window closes, open it again at the controller. The screen counts down while Link searches. Tap **Cancel** or push the knob to stop pairing. If the controller has already acknowledged Link’s final confirmation, Link waits up to a quarter of a second for the controller’s pairing reply. If that reply arrives, Link completes pairing and restarts. When pairing is complete, the screen shows this message: ![Paired](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/pairing-done.png) Paired Serin Link restarts briefly. The screen then shows the current state of your heat pump. To add more zones, refer to [Zones](https://serin-labs.com/link/zones.html#zones-more-than-one-room). Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Room temperature sensors > Select the source used for heat-pump control. Source: https://serin-labs.com/link/room-sensors.html Last updated: 2026-10-17 **Room Sensor** identifies the temperature source that the controller reports for heat pump control. Other measurements can appear in **About → Details** without controlling the heat pump. Scroll sideways to read all columns. | Source name | Meaning | | --- | --- | | Internal | The heat pump’s internal room temperature source. | | Sensor | A remote sensor source supplied by the controller. | | Link | A temperature source from a paired Serin Link with a sensor. | | A controller-supplied name | The controller’s name for that source, such as a room name. | The controller supplies the source list and names. The choices depend on its firmware, hardware, and configured sensors. The list can include other names and sources. The built-in sensor on the 1.5-inch Link kit automatically corrects for heat from its electronics. The default correction subtracts 1.00 °C (about 1.80 °F) from temperature and multiplies relative humidity by 1.110. The correction does not change while the heat pump runs. Readings sent to the controller already include these corrections. A saved temperature calibration takes precedence over the default and remains after a firmware update. For calibration details, see the [sensor troubleshooting instructions](https://github.com/Serin-Labs/serin-link/blob/main/docs/TROUBLESHOOTING.md#sensor). ## Select a temperature source 1. Open **Settings**. 2. Highlight **Room Sensor**. 3. Push the knob to open the source picker. 4. Turn the knob to highlight the required source around the ring. 5. Push the knob or tap **Choose** to send the selection to the controller. 6. Check the source name and status after Link returns to Settings. ![Room Sensor ring picker](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/room-source-list.png) Room Sensor ring picker To use touch, open **Settings**, tap the **Room Sensor** ring icon, and tap the current-source chip in the center. Tap a source icon to send that source to the controller and return to Settings. **Selected** identifies the applied source when the controller reports a valid reading. Tapping Selected confirms that source and returns to Settings, like pushing the knob. The source name and action pill stay in fixed positions. For a long source list, the position count appears above the pill without moving either of them. Long names scroll within their reserved line. Turning to a source alone does not apply it. When you choose a different Link, its status remains unavailable until that Link supplies a valid reading. The previous Link’s temperature and humidity do not count as readings from the new source. With Serin HomeKit-compatible and Matter-compatible firmware, selecting a different Link or Bluetooth sensor without a usable reading releases the previous sensor’s temperature override. The heat pump uses its internal temperature source until the selected sensor supplies a fresh reading. The selected source remains visible so you can check its status. If the controller restarts while you make a selection, wait for its current information to return, then choose the source again if the change did not apply. With ESPHome, forgetting the selected Link at the controller returns the source to **Heat pump**. This also works when no source dropdown is configured in Home Assistant. A failed forget operation keeps the bond and the source selection; check the controller log before retrying. Forgetting all Links on an ESPHome controller also cancels any Link pairing in progress. Open pairing again when you want to add a Link. To leave without a change, tap **Back** on the left of the ring, or turn past the last source and push the knob or tap **Return**. If a highlighted sensor disappears, Back and Return remain available, with **Sensor no longer available** below the pill. An empty list shows **No sensors available** there instead. If the controller lists no sources, **Room Sensor** shows no **choose source** hint. A push then explains why no picker opens. ## Add or configure a remote sensor Link has no sensor enrollment screen. Configure the sensor at the controller before you select it on Link. For HomeKit-compatible or Matter-compatible controller firmware with a **Room Sensor** card and Bluetooth support: 1. Supply power to a compatible Bluetooth thermometer. 2. Open the [controller web interface](https://serin-labs.com/link/connections.html#open-the-controller-web-interface). 3. Open its **Room Sensor** card. 4. Enable **Enable Remote Sensors** if it is off. 5. Select **Add Sensor…**. 6. Select your thermometer from the scan results. 7. Check that the card shows a current temperature for the new sensor. 8. On Link, use [Select a temperature source](https://serin-labs.com/link/room-sensors.html#select-a-temperature-source). If the scan does not find your sensor: 1. Select **Enter address manually…** in the controller card. 2. Enter the sensor’s Bluetooth address. 3. Select **Add**. 4. Check for a current temperature before you select the source on Link. Use **Manage Sensors** in the controller web interface to rename or remove a sensor, or change its calibration offset. The controller firmware supplies these controls. They are not Link settings. See the [controller’s remote sensor instructions](https://github.com/akifbayram/mitsubishi-cn105-homekit#remote-sensor-ble) for compatible sensor types and configuration details. For ESPHome, configure the remote temperature entity with the [Serin YAML generator](https://serin-labs.com/esphome/generate-yaml.html). Install that configuration as instructed by the generator. Available Link source choices depend on that controller configuration. For missing or old measurements, see [Unavailable sensor readings](https://serin-labs.com/link/troubleshooting.html#unavailable-sensor-readings). Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Display and control settings > Set brightness, idle behavior, temperature units, and Child Lock. Source: https://serin-labs.com/link/settings.html Last updated: 2026-10-17 Adjust Link’s screen and controls here. These preferences are separate from the heat pump’s temperature and airflow settings. ## Settings In this manual, **Settings** means Home screen → push knob → Menu → Settings. In the Menu, highlight **Settings**. Push the knob to open it. ![Settings — Brightness](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/settings.png) Settings — Brightness The title, supporting detail, and controls each keep the same position as you browse Settings. A zone name, pairing code, or sensor battery level appears between the title and controls when available. Hints just below the controls explain when to push or hold the knob. Turn the knob to highlight an item, then push it to use the action shown in the center. With touch, tap an icon to select it, then tap the central action when available. Brightness enters adjustment directly. Tapping the **Advanced** ring icon opens Advanced directly. With Advanced highlighted, push the knob or tap **Open** to enter it. Tapping Controller starts pairing if no controller is paired. To add a zone when already paired, tap **Add zone** on the Controller screen. This action is also available while the current controller is offline. Tapping the **Offline** status opens its explanation. Select **Back**, then push the knob or tap **Return**. This returns to the Menu or home screen, depending on where Settings was opened. ![Settings — Return to the Menu](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/settings-return.png) Settings — Return to the Menu If the controller is offline, pushing **Wi-Fi**, **HomeKit**, **Matter**, **Home**, or **Room Sensor** opens **Controller offline**. Tap **Go to Controller** to highlight **Controller**. ## Brightness 1. In Settings, highlight **Brightness**. 2. Push the knob to enter adjustment mode. 3. Turn the knob to change brightness. 4. Push the knob to leave adjustment mode. The range is 10–100%. Alternatively, tap or slide along the track below the brightness value. Idle and Night settings can reduce actual brightness below this value. Refer to [Advanced settings](https://serin-labs.com/link/settings.html#advanced-settings). ## Advanced settings 1. Open **Settings**. 2. Highlight **Advanced**. 3. Push the knob or tap **Open**. 4. Turn the knob to highlight the required item. ![Settings — Open Advanced](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/settings-advanced.png) Settings — Open Advanced Advanced uses the same fixed title and control positions as Settings. Supporting details appear above the controls, and hints sit just below them. On **Back**, push the knob or tap **Return** to return to the **Advanced** item in Settings. ![Advanced — Return to Settings](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-return.png) Advanced — Return to Settings ## Units, Idle screen, Night, and Transitions These items use the same adjustment procedure: 1. Highlight the item in Advanced. 2. Push the knob to enter adjustment mode. 3. Turn the knob to select an option. 4. Push the knob to leave adjustment mode. Alternatively, tap the item’s ring icon. Then tap the required option in the center. A touch selection also enters adjustment mode. Push the knob before you use knob turns to browse other items. ![Temperature unit options](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-units.png) Temperature unit options **Units:** select **°F** or **°C**. Changes apply immediately. Link converts the target temperature to the new unit. Fahrenheit uses whole degrees, so the converted target can round to the nearest degree. If you switch back before you change the target, Link restores the original target exactly. ![Idle screen options](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-idle.png) Idle screen options **Idle screen:** select **Glance** for a dim temperature display, or **Off** for a dark screen after inactivity. ![Night options](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-night.png) Night options **Night:** select **On** to permit the controller’s night signal to limit brightness. Select **Off** to ignore that signal. Link receives the night-active state from the controller. This screen does not set night hours. Display behavior varies by board. See the [display reference](https://serin-labs.com/link/technical-reference.html#display-behavior). ![Transition options](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-transitions.png) Transition options **Transitions:** **On** by default for fade-out/fade-in between screens. Select **Off** for immediate screen changes. Your selection is saved across restarts. An **i** button appears above the title on Child Lock, Idle screen, Night, and Transitions. It stays in place when adjustment mode adds a hint below the options. Its touch area stays clear of the option controls and ring icons. Tap it for an explanation. Tap **Close** or push the knob to close the explanation. ## Child Lock 1. In Advanced, highlight **Child Lock**. 2. Push the knob to enter adjustment mode. 3. Turn clockwise to select **On**. 4. Push the knob to leave adjustment mode. 5. Hold the knob to return home. Alternatively, tap **On** in the center of the Child Lock screen. ![Child Lock options](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/advanced-lock.png) Child Lock options Child Lock blocks ordinary turns, pushes, taps, and swipes on the home screen. It prevents accidental changes to the heat pump controls and access to menus. A blocked action can show **Hold to unlock**. The lock also applies when the home screen shows **CONTROLLER OFFLINE** or **HEAT PUMP OFFLINE**, and after you dismiss that screen. Unlock first to open the offline details or Settings. Child Lock does not apply to two setup screens: the pairing screen and the home-screen Wi-Fi setup offer. Both stay available while the lock is on, so you can pair Link and connect the controller to Wi-Fi. ![Locked home screen](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-locked.png) Locked home screen To unlock temporarily: 1. Wake the home screen if necessary. 2. Keep the knob pushed until the confirmation arc is complete. 3. Release the knob. 4. Operate the controls normally. ![Unlock confirmation arc](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-unlock.png) Unlock confirmation arc Temporary unlocking leaves Child Lock enabled. After approximately 30 seconds without activity, it locks again. To disable Child Lock permanently, unlock first. Return to **Settings → Advanced → Child Lock**. Tap **Off**. For knob operation: 1. Push the knob to enter adjustment mode. 2. Turn counterclockwise to select **Off**. 3. Push the knob to leave adjustment mode. ## Screen dimming and idle display After approximately 30 seconds without activity, supported displays become dim. After approximately two minutes, the **Idle screen** setting applies. **Glance** shows a dim room temperature display. **Off** makes the screen dark. Refer to [Advanced settings](https://serin-labs.com/link/settings.html#advanced-settings) for the display differences. Link reduces background processing while idle. A dark screen does not turn Link off: communication with the controller and room-sensor updates continue. Use the wake gestures below to return to the controls. This figure shows Glance: ![Idle display with room temperature](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/idle-glance.png) Idle display with room temperature The controller can also dim or turn off the display. See the [display reference](https://serin-labs.com/link/technical-reference.html#display-behavior) for controller overrides and differences between displays. When the screen is dim, the first touch on the home screen only activates it. A knob turn or push activates the screen and also acts, for example by changing the target temperature. When the idle display shows, the first touch, knob turn, or knob push only activates the screen. Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Troubleshooting > Resolve connection, pairing, sensor, Wi-Fi, and update problems. Source: https://serin-labs.com/link/troubleshooting.html Last updated: 2026-10-17 Use this chapter when a message appears or a procedure does not complete. For device details to include with a support request, see [About and Details](https://serin-labs.com/link/diagnostics.html#about-and-details). ## No connection to the Serin Controller Serin Link can lose its connection to the Serin Controller. For example, a power failure at the heat pump or a tripped circuit breaker can cause this condition. When Link detects lost contact, it starts searching automatically and gives recovery an additional 3 seconds before showing a full-screen warning. If the connection recovers during those 3 seconds, no full-screen warning appears. Otherwise, Link shows **CONTROLLER OFFLINE** while it continues searching: ![Controller offline](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/offline-takeover.png) Controller offline Tap the notice, or push the knob, to read the explanation and the instructions: ![Explanation of the connection failure](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/offline-explainer.png) Explanation of the connection failure Tap **Dismiss** or push the knob to return to the home screen. Tap **Settings** to open **Settings → Controller**. A red **Offline** status label stays above the target temperature. The last measurements stay on the screen, but they become dim because they are no longer current. The controller’s web page can remain available while Link shows **Offline**. The web page and Link use separate wireless connections. If this happens after an update check, record both firmware versions and include that detail in a support request. Tap the **Offline** status label to open the explanation again. Normal operation starts again automatically as soon as Serin Link can exchange data with the Serin Controller again: ![Offline status label on the home screen](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/offline-reminder.png) Offline status label on the home screen ## Heat pump, Wi-Fi, and synchronization problems If the controller cannot reach the heat pump, Link shows **HEAT PUMP OFFLINE** across the full screen. Tap it or push the knob to see which part of the chain fails. **Heat pump** shows **No reply** when the CN105 connection fails. Tap **Dismiss** to return home. An amber **Offline** status label stays until the connection recovers. Tap **Settings** to open the Heat Pump status. ![Heat pump communication failure](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/heat-pump-offline.png) Heat pump communication failure Scroll sideways to read all columns. | Condition | What failed and what to do | | --- | --- | | Controller offline | The wireless path between Link and the controller is unavailable. Check controller power. Reduce the distance if necessary. | | Heat pump offline / CN105 Not connected | The controller cannot exchange data with the heat pump over the CN105 cable. Check its connection using the installation instructions. | | Communication-error count | The controller reports serial communication errors. Check whether the count continues to increase. Record the count for support. | | Wi-Fi · **Offline** | The controller has no home network connection. Check the router and network details under · **Settings → Wi-Fi** · . | | Syncing | Link is waiting for current controller state. Until syncing ends, Link does not change the temperature, mode, or airflow. A mode selection or the · **Airflow** · menu item returns to the home screen without a change. Wait, then make the change again. If it persists, check · **Settings → Controller** · . | ![Synchronization in progress](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-syncing.png) Synchronization in progress Wi-Fi loss and controller radio loss are different conditions. Home apps and network functions need Wi-Fi. Local Link control can continue without Wi-Fi when its controller radio connection and CN105 connection work. To inspect serial status, open **Settings → Advanced → Heat Pump**. Use **About → Details** for more diagnostics. Follow the [CN105 installation instructions](https://serin-labs.com/setup.html) before handling connections. Contact support if communication does not recover. ## Change pending ![Change pending explanation](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/change-pending.png) Change pending explanation **CHANGE PENDING** means that Link sent a command and awaits confirmation. Wait for the controller to report the result. Tap the label to read the explanation. If the message persists, tap **Open Settings** to see the Heat Pump status. Do not treat the displayed target as confirmation that the heat pump applied the command. ## Heat pump fault ![Heat pump fault details](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/heat-pump-fault.png) Heat pump fault details 1. Tap **HEAT PUMP FAULT** on the home screen. 2. Record the reported fault code, if one is available. 3. Tap **Open Settings** to see the Heat Pump status. 4. Give the code and symptoms to the heat pump service technician. Link cannot clear a heat pump fault. The warning disappears if the heat pump recovers. A fault code is different from a lost connection to the controller. ## Low sensor battery When the battery in a battery-powered room sensor is low, an amber **LOW BATTERY** label shows at the bottom of the home screen. This label is a warning, not an emergency. Heating and cooling continue as usual: ![Low battery label](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/battery-chip.png) Low battery label Tap the **LOW BATTERY** label to read the explanation. Tap **Dismiss 24h** to hide the warning for 24 hours: ![Explanation of the low battery warning](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/battery-explainer.png) Explanation of the low battery warning Restarting Link clears the dismissal. The warning returns if the battery is still low. ## Pairing recovery ![Pairing failure with Retry and Back](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/pairing-failed.png) Pairing failure with Retry and Back If **Pairing failed** appears: 1. Check that the intended controller has power. 2. Open its pairing window again. 3. Tap **Retry** on Serin Link. With no zones, a knob push also retries. 4. Keep the pairing window open until the search completes. With ESPHome, a controller pairing diagnostic of **storage-error** means that the new bond was not saved. The controller keeps any previous bond. Check its log and storage before retrying. If Link already has zones, tap **Back** or push the knob to return to Settings. The existing zones remain available. During a search, tap **Cancel** or hold the knob to stop searching. ![Zone limit reached](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/pairing-full.png) Zone limit reached **Zone limit reached** means that Link cannot add another zone. Tap **Back**. Forget one zone before you add another. Link supports up to seven zones. ![Controller reset recovery](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/pairing-controller-reset.png) Controller reset recovery **Controller reset** means that the controller no longer has the expected pairing. Use **Zones**, when available, to select the affected zone. Otherwise, tap **Back**. Check the zone name under **Settings → Controller**. Forget that zone. Then pair Link with that controller again. ## Unavailable sensor readings ![Stale temperature source](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/room-source-stale.png) Stale temperature source Scroll sideways to read all columns. | Message | Meaning and action | | --- | --- | | Reading is stale | The controller reports that the measurement is too old. Check sensor power and range. Select another available source if necessary. | | No reading available | The controller has no usable reading from this source. Check its configuration and power. Select another available source. | | No sensors available | The source list is empty. Select · **Back** · . Check the controller and its sensor configuration. | | Sensor no longer available | The highlighted source disappeared from the list. Highlight another source, then push the knob. | | The controller lists no sensors to choose from. | The controller offers no source list. Add a sensor in the controller web interface, then open · **Room Sensor** · again. | | Controller does not offer source selection | This controller does not report source-selection support. Use its firmware configuration instructions. | ![Empty Room Sensor picker](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/room-source-empty.png) Empty Room Sensor picker A stale or missing reading does not prove that the controller changed sources. Fallback depends on the controller firmware. Check its **Room Sensor** status and instructions before you rely on automatic fallback. For ESPHome, selecting an external sensor reuses its last reading only while that reading is fresh. Selecting a stale or unavailable source does not send its old temperature again. The climate’s configured remote-temperature timeout determines when it returns to its internal source. ## Retry, cancel, or return later To leave an active session, see [Cancel Wi-Fi setup](https://serin-labs.com/link/connections.html#cancel-wi-fi-setup). ![Controller did not respond to Wi-Fi setup](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/wifi-failed.png) Controller did not respond to Wi-Fi setup If **The controller didn’t respond.** appears after approximately 15 seconds: 1. Check controller power and the connection to the controller. 2. Push the knob to retry the setup request. 3. Wait for the hotspot QR code. Setup screens close after inactivity. During a network change, supported controllers must confirm cancellation before Link returns home. Follow any recovery message if the hotspot remains open or cancellation is unconfirmed. Reopen **Settings → Wi-Fi**, **HomeKit**, or **Matter** to continue. Check the current state before starting again. ## Pairing status and missing codes Scroll sideways to read all columns. | Status | Meaning and action | | --- | --- | | Paired | The controller reports an existing home pairing. Normal Settings entry does not reopen the setup QR screen. | | Ready to pair | The controller reports no home pairing. Push the knob to display its code while the controller is online. | | Controller offline | Link cannot reach the controller. Restore that connection before you attempt home pairing. | | Not paired | Link has no controller pairing. Tap · **Pair** · to start pairing. | | Code appears without a QR image | Use manual code entry, or wait for the controller to supply QR data. | | `---` · instead of a code | No usable code is available yet. Check the controller connection and its web interface. | | HomeKit, Matter, and Home are absent | The controller does not advertise home-pairing support to Link. Follow its firmware instructions. | ![Pairing code without a QR image](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/homekit-manual-code.png) Pairing code without a QR image The setting’s name comes from the controller’s pairing data. It can be **HomeKit**, **Matter**, or **Home**. **Paired** does not prove that the phone, home hub, or controller Wi-Fi connection is currently working. Link has no general action to remove a home pairing. Forgetting a zone and **Reset Link** remove Link data, not the controller’s HomeKit or Matter pairing. ## Update failure ![Update failure](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/update-failed.png) Update failure **Failed** includes a reason. **Controller unreachable** means that the controller did not answer Link’s request for update connection details. **Controller has no Wi-Fi** means that the controller answered but has no saved Wi-Fi network to share. **Wi-Fi failed** means that Link could not connect for the update. **Update check failed** or **Download failed** means that the update transfer failed. Link checks the dates on the update server’s certificate against the time from an internet time server. Without that time, Link uses the date its firmware was built, and **Update check failed** appears if the server’s certificate is newer than that date. **Bad manifest** means that the update information could not be used. **Wrong board image** means that the offered firmware is for a different Serin Link model; Link keeps its current firmware. **Link busy, try again** means that an update task could not start. 1. Record the failure message. 2. Tap **Done**, or push the knob to dismiss it. 3. Check controller power, Wi-Fi, and internet access. 4. Open **Settings → About → Details → Update** to retry. 5. Contact support if the failure continues. --- *If your screen looks slightly different, your firmware version can be different from the version that this manual describes.* Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Rooms and zones > Switch rooms, add another controller, or forget a zone. Source: https://serin-labs.com/link/zones.html Last updated: 2026-10-17 Serin Link can pair with more than one Serin Controller. With multiple zones, the home screen shows the selected zone name at the bottom: ![Home screen with a zone name](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/home-zone-chip.png) Home screen with a zone name Swipe left or right on the home screen to change the selected zone. Alternatively, use the **zone selection screen**: 1. On the home screen, hold or tap the zone name to open the zone selection screen. 2. Turn the knob to highlight a zone. 3. Push the knob to select that zone. Tapping a zone icon selects it directly. The zone selection screen shows all zones on the ring. The highlighted zone’s name, operating detail, large temperature reading, and connection state each have a fixed position in the center. The temperature number stays centered, with the degree symbol beside it. Missing readings show **–** without a degree symbol, with **No reading yet** above, so the other information stays in place. Select **Back**, then push the knob or tap **Return** to leave without changing zones. Tapping the Back ring icon also returns directly. Serin Link continues to contact the other paired controllers and send its temperature and humidity readings while you control one zone, including when the screen is dark. If the controllers use different Wi-Fi channels, Serin Link briefly visits each channel in the background. You do not need to keep the zone selection screen open or select a zone to update its readings. Link restores these background updates automatically after a restart. ![Zone selection screen](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/zones-picker.png) Zone selection screen ![Zone selection screen waiting for a reading](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/zones-picker-waiting.png) Zone selection screen waiting for a reading ![Zone selection screen with Back highlighted](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/zones-return.png) Zone selection screen with Back highlighted Each zone marker has a color that shows the connection state: - **Green**, with *Online*: Serin Link can exchange data with the Serin Controller in that zone. - **Amber**, with *Fault*: Serin Link can exchange data with that Serin Controller, and that zone reports a heat pump fault. Refer to [Heat pump fault](https://serin-labs.com/link/troubleshooting.html#heat-pump-fault). - **Blue**, with *Checking*: Serin Link tries to contact the Serin Controller in that zone. - **Grey**, with *Stale*: Serin Link has no current data from that zone. That Serin Controller last used a different radio channel. - **Red**, with *Offline*: Serin Link cannot exchange data with the Serin Controller in that zone. **· Active** after the state shows that the highlighted zone is the selected zone. The operating detail starts with **Last ·** and the temperature of a *Stale* or *Offline* zone becomes dim, because it is no longer current. ![Zone selection screen with one zone offline](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/zones-picker-status.png) Zone selection screen with one zone offline ## Add or forget a zone To add a zone: 1. Open pairing on the intended controller as described in [First power-on and pairing](https://serin-labs.com/link/pairing.html#first-power-on-and-pairing). 2. On Serin Link, open **Settings**. 3. Turn the knob or tap the ring icon to highlight **Controller**. 4. Tap **Add zone** in the center, or push the knob, to start pairing. 5. Keep the controller pairing window open until the search completes. To forget one zone: 1. Select the zone that you want to remove. 2. Open **Settings**. 3. Turn the knob to highlight **Controller**. 4. Check the zone name in the center of the screen. 5. Keep the knob pushed until the confirmation arc is complete. The status label reads **Hold to confirm** during the hold and **Unpairing…** after it. Touch cannot forget a zone; use the knob. ![Active zone, Add zone, and the forget hint](https://serin-labs.com/assets/link/manual/679245d9185827523e016e1fe645ac9c2d00fc10/figures/link-zone.png) Active zone, Add zone, and the forget hint Serin Link removes the active zone pairing and restarts. Other zone pairings remain. Release the knob before the arc completes to cancel. To remove all zones and preferences, use [Reset Link](https://serin-labs.com/link/maintenance.html#reset-link). For pairing failures or a zone limit, see [Pairing recovery](https://serin-labs.com/link/troubleshooting.html#pairing-recovery). Browse the manual ↑ **Source details** Source: `serin-link` Manual: `docs/manual/MANUAL.md` Source revision: `679245d9185827523e016e1fe645ac9c2d00fc10` --- # Connect your controller to your smart home app > Setup instructions for adding your Serin Controller to Google Home, Amazon Alexa, or SmartThings using the Matter-compatible firmware. Source: https://serin-labs.com/matter/setup.html Last updated: 2026-10-15 Setup instructions for adding your Serin Controller to Google Home, Amazon Alexa, or SmartThings using the **Matter-compatible firmware**, labeled Google Home, Alexa & SmartThings in the flash tool. The app supplies Wi-Fi credentials during pairing; there is no separate setup-hotspot step for a fresh installation. Different firmware? [Choose your guide](https://serin-labs.com/controller/firmware.html). **Continue an existing setup** Keep the firmware you installed. Start at the first task you have left: - **Not installed in the indoor unit yet?** Install it in the indoor unit. - **Ready to add it to your app?** Add your controller to your app. - **Already paired and installed?** Check that the unit responds. ## Before you start - A compatible indoor unit and controller with **this guide's firmware installed**. If you have not flashed it yet, use the [flash tool](https://serin-labs.com/flash.html?platform=direct) on a computer with a USB-C data cable. - A 2.4 GHz home Wi-Fi network and its password. - Your smart-home app and a compatible hub. Check the requirements in your app's section below. - IPv6 enabled on your home network, and your phone near the controller for pairing over Bluetooth. **Beta firmware.** This build is newer and less tested than the ESPHome and HomeKit builds. It is free to install, its source is not published, and it is not Matter-certified. Your app may require confirmation of an uncertified accessory. ## 1 Install the controller Follow the [installation guide](https://serin-labs.com/controller/install.html) to connect the CN105 cable, position the controller, and replace the cover before restoring power. **Before moving on:** The cover is back on and power is restored. If you paired before installation, check that the controller reconnects to your home network. ## 2 Add the Matter thermostat **Already paired in your app?** Check control. 1. Stand near the controller with your phone. Begin adding a device in your app. 2. Scan the Matter QR code or enter its 11-digit pairing code. The flash tool displays it after installation and saves it in the same browser. The controller also prints it to the serial console at startup. 3. Follow the app's prompts to supply your 2.4 GHz Wi-Fi network. The credentials transfer over Bluetooth. Confirm any uncertified-accessory notice. 4. Assign the thermostat to its room. Once added, the hub controls the controller over the local network. ### Google Home You need the Google Home app and a compatible Google or Nest hub. Check [Google's current Matter requirements](https://support.google.com/googlehome/answer/12391458?hl=en). In Google Home, begin adding a Matter device. Scan the controller's code, follow the Wi-Fi and accessory prompts, and select its room. ### Amazon Alexa You need the Alexa app and a compatible Echo or eero device. Check [Amazon's supported devices](https://developer.amazon.com/en-US/docs/alexa/smarthome/matter-support.html). Begin adding a Matter device in Alexa and scan or enter the controller's pairing code. Follow the prompts and assign the thermostat to a room. No custom Alexa skill is required. ### SmartThings You need the SmartThings app and a compatible Matter hub. Check [SmartThings' Matter guidance](https://support.smartthings.com/hc/en-us/articles/11219700390804-SmartThings-x-Matter-Integration). Add a Matter device, scan the pairing code, and complete the network and room prompts. Already using this build with Apple Home or Home Assistant? Their Matter add-device flows use the same Matter code; it is different from a HomeKit setup code. Follow the requirements of that platform. For a new installation, see [the firmware comparison](https://serin-labs.com/controller/firmware.html). For pairing timeouts, a missing code, or an unavailable thermostat, see [Matter troubleshooting](https://serin-labs.com/troubleshooting.html#matter). **Check:** The controller appears as a thermostat in your app. Next, check its connection to the indoor unit. ## 3 Check that the unit responds 1. Open the thermostat in your app and check that it reports the room temperature. 2. Change the mode or target temperature and confirm the indoor unit responds. Check that the app and controller report the resulting state. 3. If the app is connected but commands have no effect, use [the CN105 checks](https://serin-labs.com/troubleshooting.html#hvac-no-response). App pairing alone does not prove the cable's data connection works. **Setup is complete when** the app shows a current room temperature and the indoor unit responds to your commands. Once control works, use [the web interface](https://serin-labs.com/controller/web-interface.html) for additional controls, or follow the [room sensor](https://serin-labs.com/controller/room-sensors.html), [update](https://serin-labs.com/controller/updates.html), and [Wi-Fi and reset](https://serin-labs.com/controller/maintenance.html) guides. For another indoor unit, repeat the process with its own controller and a unique name. Browse the manual ↑ --- # Multi-Zone Controller for Mitsubishi > Connect every indoor unit in a Mitsubishi multi-zone system to a smart home platform with one controller. Access refrigerant, compressor, and temperature operating data normally available only through service tools. Source: https://serin-labs.com/multi-zone-controller.html Last updated: 2026-10-15 ![A render of the Multi-Zone Controller in its orange enclosure, angled to show the green status LED and the bus terminal on its side](https://serin-labs.com/assets/mz-hero.webp) ![A render of the enclosure's edge, close up, showing the recessed two-pole bus terminal](https://serin-labs.com/assets/mz-terminal.webp) ![A render of the Multi-Zone Controller in its orange enclosure, angled to show its depth and green status LED](https://serin-labs.com/assets/mz-render-34.webp) ![A render of the Multi-Zone Controller enclosure from the front, with its chamfered corners and green status LED](https://serin-labs.com/assets/mz-render-front.webp) ![A render of the Multi-Zone Controller mounted on the front of a Mitsubishi branch box, with an orange braided cable running down into the box](https://serin-labs.com/assets/mz-branch-box-installed.webp) ![The refrigerant circuit screen of the built-in web interface: the outdoor unit as a schematic with compressor, reversing valve, high and low side pressures, bypass valves and expansion valves, piped through two branch boxes to indoor unit tiles](https://serin-labs.com/assets/ui/circuit-multi-light.webp) # Multi-Zone Controller Being built ESP32-S3 · Two-wire bus · Wi-Fi Connects to the communication bus of a Mitsubishi multi-zone system and adds every zone to your smart home platform, together with the operating data normally available only through service tools. - Whole system Wired at the branch box or an indoor unit - Service data Pressures, valves, electrical, compressor, faults The first production run is being built now. Local, no cloud or account [Questions? Ask on Discord](https://discord.gg/cC2ybSQDZd) ## Will it work with your system? Type the model from the outdoor unit's label. Use the outdoor unit's model number, not the indoor unit's, or browse the [full outdoor unit list](https://serin-labs.com/models/outdoor.html). ## Overview Highlights ### Your heat pump, in plain sight. View live pressures, valve positions, and temperatures in your browser. Recorded from the built-in web interface · M-series with a branch box, 4 zones Refrigerant pressure High and low side, with saturation temperatures, straight from the outdoor unit's own sensors. Compressor status Live compressor frequency, current, and available valve readings. Indoor-unit readings Pipe temperatures, expansion valve, fan speed, and setpoint for each indoor unit. ### Whole HVAC system control It connects to the communication wires built into your system and draws its power from the same pair. There is nothing else to plug in. One connection point. At the branch box on M-series multi-split systems, or at any indoor unit on City Multi. Multi-Zone Controller Powered by the bus Branch box or indoor unit Bus terminals Indoor units, every zone One thermostat each ### A thermostat for every mini split Each indoor unit appears in your smart home platform as its own climate control, with power, mode, fan speed, and target temperature. Automate every zone on its own schedule. Your controllers keep working. Wall controllers, remotes, and any central controller stay in place. Their changes show up live. More integrations planned. More smart home platforms are planned as firmware options. Stays on your network. No cloud service, no account. Serin Link, coming later. Pair with the [Serin Link](https://serin-labs.com/link.html) so one physical control reaches every zone. Climate mode · room → set - Living Room Heat · 72° → 74° - Bedroom Heat · 68° → 70° - Office Off · 66° - Guest Room Off · 64° - Basement Fan · 65° ### Supported systems City Multi VRF systems, including branch controllers. Wire in at the outdoor unit, at a branch controller, or at any supported indoor unit. Scales from a single outdoor unit to large installations with multiple outdoor units on the same bus. PUMY / P-series Light-commercial systems on the same two-wire transmission bus. Wire in at the outdoor unit's terminals. M-series with a branch box Branch box systems only. Wire in at the outdoor unit or the branch box. Ported outdoor units, where each head runs its own refrigerant lines back to the outdoor unit (i.e. MXZ-4C36NA), are not supported. Single-zone unit? The [Serin Controller](https://serin-labs.com/controller.html) is the right device. Unsure about your system, or running an unusual mix such as City Multi indoor units on an M-series outdoor unit? [Bring your outdoor unit model number to Discord](https://discord.gg/cC2ybSQDZd). ## Operating data Operating data ### View detailed system operation The outdoor unit tracks refrigerant pressures, valve positions, compressor current, and multiple temperatures. These readings normally require service tools. The Multi-Zone Controller reads them in real time and shows each reading separately in your smart home app. Sensor set varies by outdoor unit model. Values shown are illustrative; units follow your platform settings. HIGH-SIDE 2.84 MPa LOW-SIDE 0.92 MPa COMPRESSOR 58 Hz 6.2 A · 318 V LEV-A 312 pulse LEV-B 188 pulse ZONES CALLING 3 of 5 #### Refrigerant circuit - high + low pressure, with targets - saturation temperatures, high and low side - outdoor LEV-A / LEV-B, indoor LEV per unit #### Compressor & inverter - operating frequency - compressor + input current, bus voltage - fan step · operating hours #### Temperatures - intake, liquid pipe, gas pipe, per indoor unit - compressor shell, ambient, pipe, saturation, heatsink - room + setpoint, per zone #### State & health - mode · run/stop · demand, per zone - 4-way, bypass, circuit, oil-return valves - fault codes, decoded ## Technical **Processor** ESP32-S3, Wi-Fi **Bus interface** Dedicated transceiver for the two-wire transmission bus **Power** Powered through the communication wiring; no wall adapter **Integrations** Home Assistant via MQTT discovery; more smart home platforms via firmware options **Interfaces** Built-in web interface and REST API **Updates** Wireless updates over the local network Enclosure, dimensions, and final connector layout are published once the first production run is built. ## In the box ![A render of the Multi-Zone Controller with its status LED, the mounting bracket, and the braided bus cable with a plug on one end and spade terminals on the other](https://serin-labs.com/assets/content/800/serin-multi-zone-box.webp.e424ada69585.webp) - Multi-Zone Controller 3D printed enclosure, ready to use. 1× - Mounting cradle Screws to the wall or unit; the controller slides in. 1× - Bus cable Braided cable with a plug for the controller and spade terminals for the transmission pair. 1× The enclosure and bracket are 3D printed. ## FAQ **Does it replace my remotes or central controller?** No. It connects to the same communication wiring as your existing controllers. Your existing wall controllers, remotes, and any central controller keep working, and the Multi-Zone Controller shows their changes live. **Does it need Wi-Fi?** Yes. Wi-Fi connects the controller to your smart home platform and its built-in web interface. Communication stays on your local network; no cloud service or account is required. **How is this different from the Serin Controller?** The [Serin Controller](https://serin-labs.com/controller.html) connects to an indoor unit's CN105 port, with one controller required per indoor unit. The Multi-Zone Controller connects once to the system's communication wiring and covers every zone, while also providing system-level operating data that CN105 does not carry. **Is installation invasive?** Installation requires two wires connected to the existing transmission terminals at the outdoor unit or branch box. City Multi systems also allow a connection at an indoor unit. The same connection powers the controller. Turn off power to the system before opening any equipment. **Will it work with the Serin Link?** Support for pairing with the [Serin Link](https://serin-labs.com/link.html) is planned, allowing one physical control to access every zone. ### Limitations - Ported MXZ outdoor units and single-zone systems are not supported. The [Serin Controller](https://serin-labs.com/controller.html) covers those. - Indoor units grouped on one wall controller appear as one zone. - Available readings depend on the outdoor unit model. - The smart home integration needs an MQTT broker on your network. - Wi-Fi only; there is no Ethernet port. Being built ## Tell us about your system Questions and system details go to Discord. Reserve above to hear first when ordering opens. [Discuss on Discord](https://discord.gg/cC2ybSQDZd) [Single zone? See the Serin Controller](https://serin-labs.com/controller.html) --- # CN105-to-Grove Cable and ESP32 Parts List > Ready-made CN105-to-Grove cable for Mitsubishi mini-splits, from $8, plus the supported ESP32 boards and the JST part numbers to crimp your own. Source: https://serin-labs.com/parts.html Last updated: 2026-10-20 [![The pre-assembled Serin Controller, an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp)](https://serin-labs.com/controller.html) ## The pre-assembled option [5.0 · 42 reviews](https://shop.serin-labs.com/pages/reviews) The [Serin Controller](https://serin-labs.com/controller.html) ships pre-assembled with the CN105 cable included, ready to [flash the firmware of your choice](https://serin-labs.com/flash.html): ESPHome, Apple Home, or Google Home & Alexa compatible. The rest of this page covers building your own. ## 1. CN105-to-Grove cable (required) This cable connects the ESP32 board to the CN105 service port on a Mitsubishi indoor unit. It uses a JST PAP-05V-S housing at the indoor unit and a Grove HY2.0-4P connector at the ESP32 board. Use the pinout and part numbers in the [wiring reference](https://serin-labs.com/wiring.html#build-your-own) to make your own, or purchase a [ready-made cable](https://serin-labs.com/cable.html#buy-cable) from $8. Choose the 50 cm cable for a ducted air handler; see the [length guide](https://serin-labs.com/cable.html#length) for details. ## 2. ESP32 board (required) Choose one of the two supported boards. Both work with the ESPHome, Apple Home, and Google Home & Alexa compatible firmware. ### M5Stack NanoC6 Recommended The smallest supported option, with Wi-Fi 6. ESP32-C6 · 23.5 × 12 mm [Buy on Amazon](https://amzn.to/4zLcujm) ### M5Stack Atom S3 Lite A larger board with a faster dual-core processor. ESP32-S3 · 24 × 24 mm [M5Stack Store](https://shop.m5stack.com/products/atoms3-lite-esp32s3-dev-kit) **Detailed spec comparison** Scroll sideways to read all columns. | | NanoC6 | Atom S3 Lite | | --- | --- | --- | | **Chip** | ESP32-C6 (RISC-V, 160 MHz) | ESP32-S3 (dual-core, 240 MHz) | | **Wi-Fi** | Wi-Fi 6 (802.11ax, 2.4 GHz) | Wi-Fi 4 (802.11n, 2.4 GHz) | | **Size** | 23.5 × 12 × 12.5 mm | 24 × 24 × 13 mm | | **USB** | USB-C | USB-C | | **Grove port** | HY2.0-4P | HY2.0-4P | | **Button** | Yes | Yes | | **ESPHome** | Full support | Full support | | **HomeKit** | Full support | Full support | | **Google Home & Alexa** | Supported (beta) | Supported (beta) | The NanoC6 is recommended for most setups: it is smaller and holds a stronger signal inside the sheet metal of HVAC units. ## 3. USB-C data cable (for firmware installation) This cable is required for the initial [firmware installation](https://serin-labs.com/flash.html). A USB-C cable that supports phone data transfer usually works. - Must be a **data** cable, not a charge-only cable. - Test it by connecting a phone; if your computer detects it, the cable works. ## Shopping list | Item | Where to buy | | --- | --- | | **CN105-to-Grove Cable** | [Buy ready-made](https://serin-labs.com/cable.html#buy-cable) · or · [DigiKey](https://www.digikey.com/) · (DIY parts) | | **ESP32 Board** · (NanoC6 or Atom S3 Lite) | [Amazon](https://amzn.to/4zLcujm) · (NanoC6) or · [M5Stack Store](https://shop.m5stack.com/products/atoms3-lite-esp32s3-dev-kit) · (Atom S3 Lite) | | **USB-C Data Cable** | Likely already on hand | ### Multiple indoor units You need **one board and one cable per indoor unit** because each indoor unit has its own CN105 port. A three-zone system requires three boards and three cables. **Optional accessories** - **USB-C data cable:** required only for the initial firmware installation; later updates are installed over Wi-Fi. - **Label maker or tape**: helpful for labeling cables in multi-unit installations. - **USB-C power supply**: for powering the board on a bench to test it before installation. ## Next steps 1. [Check your model](https://serin-labs.com/compatibility.html): type your model number for an instant compatibility answer. 2. [Flash the firmware](https://serin-labs.com/flash.html): install ESPHome, Apple Home, or Google Home & Alexa compatible firmware from your browser. 3. [Connect the cable](https://serin-labs.com/controller/install.html): attach it to the indoor unit. [Install the firmware](https://serin-labs.com/flash.html) --- The Amazon links on this page are affiliate links. As an Amazon Associate, Serin Labs earns from qualifying purchases. Other links are provided for convenience and are not affiliate links. Browse the manual ↑ --- # Store Policies: Shipping and Returns > Serin Labs store policies: free US shipping from New Jersey on orders $35 and up, 30-day returns and exchanges with a 20% restocking fee on refunds, 12-hour cancellations, DOA replacement, refunds, warranty, and support. Source: https://serin-labs.com/policies.html Last updated: 2026-10-18 The complete terms for buying from Serin Labs, in plain language. Last updated October 11, 2026. For the site itself, the flash tool, and the firmware, see the [Terms of Service](https://serin-labs.com/terms.html). ## Ordering and payment You can purchase through either of the following channels. The applicable terms differ by channel. - **Directly from serin-labs.com.** Shopify processes the checkout, and Serin Labs does not receive your card details. This is the recommended purchase method. - **Through our [Etsy shop](https://serinlabs.etsy.com/).** Etsy handles checkout and payment, and those orders are covered by [Etsy Purchase Protection](https://www.etsy.com/legal/purchase-protection/). Purchase Protection applies to Etsy orders only. ## Shipping - **US orders of $35 or more ship free when placed directly on this site.** Free shipping covers up to $8 of postage. If the rate for your order is higher, for example because you choose a faster service, the shipping charge is shown at checkout. Below that threshold, the shipping rate is calculated at checkout. Etsy orders ship at the rate Etsy shows at checkout. Everything ships from New Jersey. - **Processing time:** Controller and cable orders normally ship within 1–2 business days. The Serin Link is built to order and ships within 1–3 days. US delivery usually occurs within a few days after shipment; the estimated delivery date appears at checkout. - **The Serin Link ships to US addresses only.** It is sold on this site and not on Etsy. - **International orders:** Orders outside the US ship at the carrier rate shown at checkout; any duties or import fees on delivery are the buyer's. Serin Labs is not responsible for customs-related delays. US buyers do not owe duties or import fees. ## Cancellations You can cancel an order within **12 hours of purchase** for a full refund. After that period, the order may have entered processing. For direct orders, use the [contact form](https://serin-labs.com/contact.html) and include your order number; we will confirm whether cancellation is still possible. For Etsy orders, message the shop. ## Returns and exchanges - Returns and exchanges are accepted within **30 days of delivery** on both channels. - **Direct orders:** use the [contact form](https://serin-labs.com/contact.html) with your order number to receive the return address. - **Etsy orders:** [message the shop on Etsy](https://serinlabs.etsy.com/), which keeps Purchase Protection in place. - Items must be returned in the condition in which they were received, with the included cable and any accessories. Installing firmware does not affect return eligibility. - Return shipping is paid by the buyer, except for defective or incorrect items (see below), where we cover it. - **A 20% restocking fee** is deducted from the refund on a returned item. It does not apply to an exchange, to an item that arrives damaged, defective, or incorrect, or to a controller that does not fit an indoor unit the model checker listed as compatible (see below). - **Serin Link returns include the whole box:** the assembled Link, the USB-C to USB-C cable, the USB-C wall charger, and the printed instructions. - There is no repair service and no replacement parts are sold, so a failure covered by this page or by the [limited warranty](https://serin-labs.com/warranty.html) is settled by replacing the product or refunding it. The limited warranty makes one exception, for a failed accessory such as the Serin Link's charger, which is replaced on its own. - A Serin Link ordered as a bundle with a controller is returned complete. If you would rather return only one item out of a bundle, contact us first and we will tell you what we can do. ## If the controller does not fit your indoor unit Use the [model checker](https://serin-labs.com/compatibility.html) before ordering. If the model checker listed your indoor unit as compatible and the controller turns out not to work with it, return the controller within the same 30-day period for a full refund with no restocking fee. If the checker did not list your unit as compatible, or you ordered without checking, the return is handled like any other and the 20% restocking fee applies. Installing firmware does not affect return eligibility. Please include the indoor unit's model number and a description of the compatibility issue. Confirmed results are added to the [public compatibility list](https://serin-labs.com/compatibility.html) to help other customers check before ordering. ## Refunds Refunds are issued to the original payment method after the return has been received and inspected, normally within a few business days. The payment processor determines when the refund appears on your card or bank account: Shopify for direct orders and Etsy for Etsy orders. ## Damaged, defective, or incorrect items If a controller, cable, or sensor arrives damaged, does not function, or differs from what you ordered, you may choose a replacement or a full refund. Serin Labs covers shipping in both directions. If a controller does not respond, first review the [troubleshooting guide](https://serin-labs.com/troubleshooting.html); a charge-only USB cable is the most common cause. Then provide your order number and a description of the problem through the [contact form](https://serin-labs.com/contact.html) for direct orders or an Etsy message for Etsy orders. ## Warranty Every product carries a one-year limited hardware warranty against manufacturing defects, on top of the 30-day return window above and the commitment on damaged, defective, or incorrect items. What it covers, what it excludes, and how to make a claim are set out on the [limited warranty](https://serin-labs.com/warranty.html) page. The firmware is free of charge and does not require a subscription. Adding a third-party accessory to HVAC equipment may affect the equipment manufacturer's warranty terms; see [safety and installation](https://serin-labs.com/safety.html). ## Support Support is free and comes from the same shop that builds the hardware. Use the [contact form](https://serin-labs.com/contact.html) for anything to do with an order; we reply within 2 business days. [Discord](https://discord.gg/cC2ybSQDZd) is the fastest place to ask a setup question, and a suspected firmware bug belongs on [GitHub](https://github.com/Serin-Labs/serin-cn105/issues), where it stays tracked. Official support covers: - Serin Labs hardware: the controller, the CN105-to-Grove cable, the sensor bundle, and Serin Link. - The official firmware builds, the browser flash tool, and pairing. - The public `serin_link` ESPHome component and its documented example configuration. - Reasonable setup guidance for getting a Serin Labs product working in your system. The following fall outside official support: - Bugs in third-party ESPHome components. - Custom YAML architectures. - Controller hardware you built yourself, and boards you sourced elsewhere. We will still help you tell a hardware problem from a firmware problem. - General Home Assistant administration. ## Disputes and questions If an issue remains unresolved, use the [contact form](https://serin-labs.com/contact.html) or [message the shop](https://serinlabs.etsy.com/) for an Etsy order. We reply within 2 business days and will work with you to resolve the problem. Etsy orders remain eligible for Etsy's dispute process; direct orders are covered by the payment provider's dispute process. --- # Privacy > What serin-labs.com collects, what the cart and flash tool keep in your browser, how contact and waitlist messages are handled, and where firmware comes from. Source: https://serin-labs.com/privacy.html Last updated: 2026-10-18 Serin Labs designs its products and website to minimize data collection. This site uses no cookies or advertising trackers, does not sell personal data, and uses self-hosted analytics. A few features save a small record in your browser, on your own device, and it stays there. The personal information we hold is limited to messages sent through the contact form, including waitlist requests, and the information required to fulfill orders. Last updated September 4, 2026. ## Analytics We run a self-hosted instance of [Umami](https://umami.is/), an open-source analytics tool, on our own server. It does not set cookies, store full IP addresses, fingerprint visitors, or track visitors across other sites. It provides aggregate information such as page views, referring sites, and link selections. We do not send analytics data to Google Analytics or another third-party analytics service. ## Server logs Our web server does not keep an access log for this site or for the firmware mirror at serin-labs.com/firmware/, so ordinary page views and downloads are not written down one request at a time. The server does record errors and operational messages, and an entry of that kind can include the address a failed request came from. We use those records to keep the site working and to look into problems, and they are rotated out as new ones are written. The site is served through Cloudflare, which sits in front of our server and handles the connection under its own privacy policy. ## Cookies and browser storage This site sets no cookies. It does use your browser's local storage, which holds a record on your own device that only pages on serin-labs.com can read. None of it is sent to Serin Labs, and none of it is used for advertising or to follow you between sites. - **The cart.** The cart keeps the items and quantities you add, so they are still there if you close the tab and come back. It holds nothing else: no name, no address, no payment details. It is never sent to Serin Labs. A cart left alone for 14 days is dropped the next time you load a page. When you go to checkout, the items are handed to Shopify in the checkout link and your copy moves to a saved list the cart offers to bring back, which expires the same way. To clear it now, remove the items in the cart drawer. - **The flash tool.** After you flash a board, the [flash tool](https://serin-labs.com/flash.html) saves a record of it so the page recognizes the board next time and the quick start can show the right steps. The record holds the board's MAC address, its recovery hotspot name, the address of its web interface, the pairing code and QR data if the firmware you installed has one, which firmware that was, and the date. Select Forget on the saved card to delete it. - **The setup guides.** The [quick start](https://serin-labs.com/setup.html) reads the flash tool's saved record to offer a link to the matching setup guide. That guide uses the record to show your controller's connection and pairing details. To delete the record, open the [flash tool](https://serin-labs.com/flash.html) and select **Forget** on the saved card. Clearing site data for serin-labs.com in your browser removes all of it at once. If your browser blocks site data, these features simply start fresh on every visit. ## Contact form Submitting the [contact form](https://serin-labs.com/contact.html) sends us your email address, an optional model number, and your message. [Resend](https://resend.com/), our email delivery provider, delivers the submission to our mailbox, where it is retained as ordinary correspondence. We do not share or sell it. To request deletion of a previous message, contact us through the same form. The same form is how you join the waitlist for a product we have announced but not yet released. If you send us a message like that, we keep your email address so we can send you the notice when ordering opens and the development updates you asked for. That is the only mailing we do. There is no newsletter, and writing to us about anything else does not put you on a list. Every launch or development email includes a way to be removed, and you can also ask us to remove you through the contact form. ## Purchases Orders placed directly on this site are processed by Shopify under [Shopify's privacy policy](https://www.shopify.com/legal/privacy). Orders placed through our Etsy shop are processed by Etsy under [Etsy's privacy policy](https://www.etsy.com/legal/privacy/). In both cases, Serin Labs receives the name, shipping address, and order contents required to fulfill the order. We do not receive payment card details. This site does not set cookies. Shopify checkout runs on Shopify's domain and uses cookies required to process an order. Those cookies are governed by Shopify's privacy policy. ## The browser flash tool The [browser flash tool](https://serin-labs.com/flash.html) communicates with your controller locally, through the browser's Web Serial connection. Information about your controller, your network, or your HVAC system is not sent to Serin Labs. The firmware itself has to be downloaded. Your browser fetches the manifest and the firmware images from our own mirror at serin-labs.com/firmware/ first, then from GitHub, then from the jsDelivr CDN, taking the first host that answers. Whichever host serves the files sees the IP address the request came from, as any web server does. GitHub and jsDelivr handle those requests under their own privacy policies. What our server records is described under Server logs above. ## The product The controller has no Serin Labs account and does not report to us. Once firmware is installed, it communicates with your Mitsubishi indoor unit and the smart home platform selected during setup, and day-to-day control stays on your local network. Nothing about your home, your network, or your HVAC system is sent to Serin Labs. Firmware updates are the exception, because the files have to come from somewhere. When you select Check for Updates in the controller's web interface, the controller downloads from the same hosts the flash tool uses, and whichever host answers sees the IP address of the request, which on a home connection is your router's public address. The Serin Link updates the same way: it asks a controller it is paired with for Wi-Fi credentials over their encrypted connection, joins the network long enough to download and verify a signed image, installs it, and disconnects. Neither device sends us anything about your system, and neither identifies itself to us beyond what an ordinary download request shows. ## Your rights Subject to applicable privacy law, including the GDPR and CCPA, you may request access to or deletion of personal information held by Serin Labs. This information is generally limited to contact-form correspondence and order records. Submit a request through the [contact form](https://serin-labs.com/contact.html). ## Changes If our privacy practices change, we will update this page and its revision date. --- # Safety and Installation > Safety and installation information for Serin Labs products: the Serin Controller and CN105 cable, the wireless room sensor, the Serin Link, and the Multi-Zone Controller. Source: https://serin-labs.com/safety.html Last updated: 2026-10-15 This page collects the safety and installation information for the products Serin Labs makes, in plain language. Read the section for your product before you install it or plug it in. Regulatory, FCC, and trademark information is on the [licenses and compliance](https://serin-labs.com/licenses.html) page. Last updated October 12, 2026. ## Before you start - **Disconnect power first.** Switch the system off at the breaker or disconnect before opening any equipment, and leave it off until every cover is back on. - **Not a safety device.** Our products are convenience accessories. They must not be relied on as safety, protection, or life-support devices. - **Hire a technician if you are not comfortable.** Installation means opening equipment and working next to line-voltage wiring. If you are not comfortable doing that, have a qualified HVAC technician make the connection. - **Warranty.** Connecting third-party accessories may affect the equipment manufacturer's warranty terms; check with your installer or Mitsubishi Electric if you are unsure. ## Serin Controller and CN105 cable - **Low voltage by design.** The controller is powered by the CN105 port's 5 V supply and never connects to mains wiring. - **Disconnect power first.** Always switch the mini-split off at the breaker or disconnect before opening the indoor unit or connecting the controller. CN105 is the only connector that needs to be handled, and the rest of the control board carries line voltage. - **Mind the placement.** The controller installs inside the indoor unit. Keep it and its cable clear of fan blades, heat exchanger fins, and the condensate tray, as shown in the [installation guide](https://serin-labs.com/controller/install.html). - **Follow the manual.** The [installation chapter](https://serin-labs.com/controller/install.html) covers the connection and the cable routing, and the [quick start](https://serin-labs.com/setup.html) takes it from there. ## Wireless room sensor The sensor in the room-sensor bundle is a small battery-powered Bluetooth tag. It sits on a shelf or a table in the room and reports temperature to the controller over Bluetooth. There is nothing to wire and no connection to mains power. **Keep coin and button cell batteries out of reach of children.** If swallowed, a coin cell can cause severe internal burns in as little as two hours and can lead to death. Seek immediate medical attention if a battery is swallowed or placed in any part of the body. Keep new and used batteries away from children, and dispose of used batteries promptly. ## Serin Link - **Indoor desktop use.** The Serin Link belongs on a flat surface indoors, in a dry location. It is not a wall product and is not rated for outdoor or damp locations. - **Power.** The Link is powered from a wall outlet through the USB-C charger and cable supplied with it. Keep the outlet accessible so the Link can be unplugged, and unplug it before cleaning. - **No battery.** There is no battery inside the Link. It runs only while it is plugged in. - **Do not open the enclosure.** There are no user-serviceable parts inside, and the display and its ribbon connection are easily damaged. - **Keep it away from heat and liquids.** Do not place the Link on or beside a stove, a radiator, or a heating vent, and keep drinks away from it. - **The stand is 3D-printed plastic.** It should not sit on a hot surface, because printed plastic can soften and deform. ## Multi-Zone Controller The Multi-Zone Controller connects to the two-wire transmission connection at the outdoor unit or branch box, or on City Multi systems at an indoor unit, and draws its power from that same pair. - **Switch the whole system off first.** Turn the system off at the disconnect before opening the outdoor unit, a branch box, or any panel that carries the transmission wiring. Those enclosures also carry line voltage. - **Involve a qualified technician.** These are often commercial or light-commercial systems, and many are covered by a service contract. Check the contract before anyone works on the equipment, and have a qualified technician make the connection. - **Mount it under cover.** Mount the controller indoors, or inside the outdoor unit's or branch box's own enclosure. It is not rated for rain, condensation, or direct sun. - **Existing controllers stay in place.** The Multi-Zone Controller joins the bus alongside them and does not remove or replace anything already on the system. ## End of life Like all electronics, our products should not go in household trash at end of life. Take them to a local e-waste collection point; most US municipalities and many electronics retailers accept small electronics for recycling. Take used batteries to a battery recycling point rather than putting them in the trash. Browse the manual ↑ --- # Security > How to report a security problem in the Serin Labs site, the browser flash tools, or the firmware we publish, what happens after you report it, and how a fix reaches the people running it. Source: https://serin-labs.com/security.html Last updated: 2026-10-15 [← Back to documentation](https://serin-labs.com/documentation.html) # Security Serin Labs makes hardware and firmware that people put on their home networks, so we want to hear about security problems in it. This page states what we consider in scope, how to reach us privately, what happens after you write, and how a fix reaches the people running the affected firmware. Last updated September 4, 2026. ## What is in scope We will look at a report about any of the following: - This website, serin-labs.com, and the contact API behind the [contact form](https://serin-labs.com/contact.html). - The browser flash tools at [/flash.html](https://serin-labs.com/flash.html) and [/flash-link.html](https://serin-labs.com/flash-link.html). - The firmware builds Serin Labs publishes for the controller and for the [Serin Link](https://serin-labs.com/link.html), together with the manifests that describe them. - The firmware mirror at `/firmware/`, which serves those same binaries from our own server. - The Serin Link update channel and the image signing it depends on. ## How to report privately Send the report through the [contact form](https://serin-labs.com/contact.html). It is the only private channel we operate. The form delivers the message to our mailbox by email, and nothing you send through it is posted anywhere public. Begin the message with the words “Security report” so we can pick it out, and give us an email address we can reply to. Please do not open a public GitHub issue, post in Discord, or write about the problem publicly before we have had a chance to fix it. Those are the right places for an ordinary bug and the wrong place for this one. A report we can act on says which part is affected and which version, how to reproduce the problem step by step, and what an attacker gains from it. The message box holds 5,000 characters of plain text and takes no attachments, so describe a proof of concept rather than sending one. If a file is the only way to show the problem, say so and we will arrange it in the reply. ## What to expect We acknowledge a security report within 2 business days, and we reply to the address you give us. Serin Labs is a one-person shop, so we would rather tell you honestly where a fix stands than promise a schedule we cannot keep. After the acknowledgement we will tell you whether we could reproduce the problem, what we plan to do about it, and roughly when. We are glad to agree a disclosure date with you, and we will let you know once a fix has shipped so you can confirm it. If you would like credit, tell us the name or handle to use and we will name you in the release notes for the fix. If you would rather not be named, we will keep your report to ourselves. ## Good-faith research We will not take legal action against anyone who tests their own equipment and reports what they find in good faith under this policy. We ask you to stay within it. Test only devices and accounts you own or have permission to use, do not access or alter anyone else's data, and stop as soon as you have confirmed a problem instead of digging further into it. Avoid anything that degrades the site or the firmware mirror for other people, such as flooding, denial of service, or spam through the contact form. Give us a reasonable chance to ship a fix before you publish. If you follow these rules and something still goes wrong, tell us what happened and we will treat it as an honest mistake. ## Out of scope Several services we rely on run their own vulnerability programs and are the only ones who can fix their own products. Report problems in Shopify, Etsy, GitHub, Discord, and Resend to those companies rather than to us. Serin Labs does not pay bug bounties. Bugs in the upstream open-source projects our firmware is built on belong upstream, where a fix reaches everyone using the project instead of only our users. The [licenses and compliance](https://serin-labs.com/licenses.html) page lists each of those projects and links its source. If you are not sure whether a problem is ours or upstream's, send it to us and we will pass it along. ## How fixes reach users Controller firmware is redistributed two ways. Anyone can reinstall the current build over USB from the [browser flash tool](https://serin-labs.com/flash.html), and a controller already running our firmware can pull the new version itself through the update check in its web interface. The flash tool reads its list of builds from a manifest rather than from this site, so a new release becomes available without a site update. Before it writes a byte to the board, the flash tool checks the SHA-256 of the application image against the hash in that manifest. If they disagree it discards the download and fetches the whole build again from the next host in its list. That check is what makes it safe for us to serve the same files from our own mirror and from a public CDN. The Serin Link updates over the air. Its firmware images are signed, and a Link installs an update only when the signature on the image verifies against the key already on the device. ## The devices run on your network A controller and a Serin Link talk to your indoor unit and to the smart home platform you chose during setup. They do not report to Serin Labs, and there is no Serin Labs account, cloud service, or remote access channel behind them. We hold no telemetry from your equipment and no remote key that would let us into it, which is also why a fix has to reach a device through an update rather than from us. The controller's web interface has no password. Anyone who can reach it on your local network can change its settings, reset it, or install firmware on it. Keep the controller on a network you trust, and do not make it reachable from the internet. ## Machine-readable policy We publish [/.well-known/security.txt](https://serin-labs.com/.well-known/security.txt) in the format described by RFC 9116. It points at the contact form and back at this page. --- # Serin Controller quick start > Set up your Serin Controller: check compatibility, choose firmware, connect to CN105, and finish setup in your smart-home app. Source: https://serin-labs.com/setup.html Last updated: 2026-10-15 Follow these steps for a new controller. If you have already installed the firmware or connected the controller to Wi-Fi, continue from the first unfinished step. **Using Serin Link without a smart-home app?** Follow the [Link-only setup instructions](https://serin-labs.com/link/manual.html#using-link-without-a-smart-home-app). App pairing is optional for Link control. **Continue an existing setup** Install it in the indoor unit, then finish setup in your app. Skip Wi-Fi or pairing steps you completed in the flash tool. ## 1 Check compatibility and gather what you need [Check your indoor-unit model](https://serin-labs.com/compatibility.html) and confirm its CN105 port is available. - **Hardware:** one controller and CN105 cable per indoor unit, plus a USB-C data cable for flashing. - **Computer:** Chrome, Edge or Brave for the browser flash tool. - **Smart home:** your app and any required hub or Home Assistant installation. Check the platform guide for requirements. The [Serin Controller](https://serin-labs.com/controller.html) is assembled and ready for you to flash. Building your own? Use the [supported boards and parts list](https://serin-labs.com/parts.html). ## 2 Choose and install firmware [Choose the firmware for your smart-home app](https://serin-labs.com/controller/firmware.html), then use the [browser flash tool](https://serin-labs.com/flash.html). Flash with the controller disconnected from CN105 and powered only by USB. The tool can also help with Wi-Fi and show pairing codes. **Already flashed?** Keep the firmware you want and continue to installation. Routine [updates](https://serin-labs.com/controller/updates.html) do not require repeating first-time setup. ## 3 Install the controller in the indoor unit Follow [the installation guide](https://serin-labs.com/controller/install.html) to connect CN105, position the controller, replace the cover, and restore power. ## 4 Finish setup in your app Choose the guide for the firmware you installed. These instructions also work on your phone. Skip Wi-Fi or pairing steps you already completed in the flash tool. [Home AssistantJoin Wi-Fi and adopt the ESPHome controller.](https://serin-labs.com/esphome/setup.html) [Apple HomeJoin Wi-Fi and pair the HomeKit-compatible controller.](https://serin-labs.com/homekit/setup.html) [Google Home, Alexa & SmartThingsAdd the Matter thermostat from your app; it supplies Wi-Fi credentials.](https://serin-labs.com/matter/setup.html) ## 5 Check that control works Send a mode or target-temperature change from the app and confirm the indoor unit responds. Check that a current temperature is reported. If the app connects but the indoor unit does not respond, use [the CN105 troubleshooting steps](https://serin-labs.com/troubleshooting.html#hvac-no-response). **Setup is complete when** the app reports the room temperature and your indoor unit responds to a command. For multiple indoor units, repeat setup for each controller and give each a distinct room name. Then explore [web controls](https://serin-labs.com/controller/web-interface.html), [room sensors](https://serin-labs.com/controller/room-sensors.html), [updates](https://serin-labs.com/controller/updates.html), and [Wi-Fi and reset](https://serin-labs.com/controller/maintenance.html) instructions. Browse the manual ↑ --- # Mitsubishi Mini-Split Controller for SmartThings > Add a Mitsubishi mini-split to SmartThings with a CN105 ESP32 controller. Get local Matter thermostat control and routines without a Mitsubishi cloud account. Source: https://serin-labs.com/smartthings.html Last updated: 2026-10-18 Connect a CN105 ESP32 controller to the service port inside the Mitsubishi indoor unit, install the beta Matter-compatible firmware, and add the heat pump from the SmartThings app. It appears as a thermostat for temperature, mode, scenes, and routines. No Mitsubishi Wi-Fi adapter, Kumo Cloud account, Home Assistant server, or Serin Labs subscription is required. Already have a controller? [Set it up with SmartThings](https://serin-labs.com/matter/setup.html#smartthings). [See the CN105 controller](https://serin-labs.com/controller.html) [Check your Mitsubishi model](https://serin-labs.com/compatibility.html) At a glance - One CN105 ESP32 controller is required for each Mitsubishi indoor unit. - Setup begins in the SmartThings app as a Matter thermostat. - Controls include temperature, Heat, Cool, Auto, power, scenes, and routines. - No Mitsubishi cloud account or vendor app is required. Good to know - A compatible SmartThings Matter hub and an IPv6-enabled network are required. - The firmware is free to install, in beta, and not open source. - The firmware is not Matter-certified; SmartThings may display a warning during setup. - The controller hardware arrives without firmware installed. --- ## How the CN105 ESP32 controller works with SmartThings Most Mitsubishi Electric mini-splits have a five-pin service connector called CN105 on the indoor control board. The Serin Controller combines a supported M5Stack ESP32 board with a tested CN105 cable, giving the firmware a direct, two-way connection to the heat pump. After you install the Matter-compatible firmware, the controller becomes available for setup as a thermostat. Scan its Matter pairing code in SmartThings, allow the app to send your home Wi-Fi credentials to the controller over Bluetooth, and assign the thermostat to a room. Commands between the hub and controller do not depend on Mitsubishi's cloud. ![The Serin CN105 ESP32 controller with its Mitsubishi mini-split cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) Pre-assembled ESP32 controller with the CN105 cable attached --- ## What SmartThings can control Power and modes Turn the unit on or off and select Heat, Cool, or Auto. Target temperature Set the thermostat target from the SmartThings app. Room temperature See the current temperature reported by the controller. Scenes and automations Use the thermostat values and commands in SmartThings scenes and routines. The controller's built-in web interface provides fan speed, vane position, diagnostics, and other controls that are not available through a standard Matter thermostat. --- ## What you need - **A compatible Mitsubishi indoor unit:** check the model number before ordering. One controller is needed for each indoor unit you want to control. - **A CN105 ESP32 controller:** buy the [pre-assembled controller](https://serin-labs.com/controller.html), or use a supported board and cable from the [DIY parts list](https://serin-labs.com/parts.html). - **A USB-C data cable and supported browser:** the initial flash runs in Chrome, Edge, or Brave on a computer. - **The SmartThings app and a compatible Matter hub:** SmartThings requires Matter devices to connect through a compatible hub. Check [SmartThings' current Matter guidance](https://partners.smartthings.com/matter) rather than relying on an old device list. - **IPv6 on the home network:** the firmware depends on IPv6. Confirm it is enabled before troubleshooting the controller. --- ## Set up your controller Setup has three parts: install the Matter-compatible firmware, connect the controller to the indoor unit, and add the thermostat in SmartThings. The app transfers your Wi-Fi credentials over Bluetooth; there is no separate setup-hotspot step for initial pairing. Follow the [SmartThings setup guide](https://serin-labs.com/matter/setup.html#smartthings) for prerequisites, pairing, and a final check that the indoor unit responds. --- ## Limits to understand before buying - **Beta firmware:** it is newer and less tested than the ESPHome and Apple Home firmware. - **Not certified:** the firmware is not Matter-certified, so SmartThings may show an uncertified-device warning during setup. - **Features not available in SmartThings:** dry mode, fan-only mode, fan speed, and vane direction may not appear in SmartThings' thermostat controls. - **Diagnostics are available in the web interface:** compressor frequency, outdoor temperature, runtime, and error codes do not appear in SmartThings. - **One occupied CN105 port:** the controller cannot share CN105 with a factory Wi-Fi adapter or wired wall controller. --- ## SmartThings firmware or another platform? Use the Matter-compatible firmware when SmartThings is your main interface and you do not already run Home Assistant. Use [ESPHome](https://serin-labs.com/esphome/features.html) when Home Assistant is your primary platform and you want the full mini-split feature set, or the [HomeKit-compatible firmware](https://serin-labs.com/homekit/features.html) for Apple Home and Siri. The controller hardware is not locked to one build. You can reflash the same supported board later if your smart-home platform changes. ![The pre-assembled Serin CN105 ESP32 controller](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) [5.0 · 42 reviews](https://shop.serin-labs.com/pages/reviews) ## Get the CN105 controller The ESP32 board and tested cable arrive assembled and ready for you to flash. Free US shipping. [Buy now from $35](https://serin-labs.com/controller.html) ## Already have a board? Install the free beta firmware, then add the controller from the SmartThings app. The firmware source is not published. [Flash the firmware](https://serin-labs.com/flash.html?platform=direct) [Setup guide](https://serin-labs.com/matter/setup.html#smartthings) --- # Terms of Service > The terms for using serin-labs.com, the documentation, the browser flash tool, and the free firmware: what we promise, what we disclaim, and which law applies. Source: https://serin-labs.com/terms.html Last updated: 2026-10-15 These are the terms for using this site and the free tools it hosts, in plain language. By using serin-labs.com, you agree to them. Last updated September 4, 2026. The [store policies](https://serin-labs.com/policies.html) govern purchases and cover ordering, shipping, returns, and refunds, and the [limited warranty](https://serin-labs.com/warranty.html) covers hardware defects. This page covers the site, documentation, browser flash tool, and firmware. ## Who we are Serin Labs is an independent business based in New Jersey, United States. We are not affiliated with, endorsed by, or certified by Apple Inc., Mitsubishi Electric Corporation, or any other company named on this site. Their trademarks belong to them. ## The site and its content The guides, compatibility records, troubleshooting steps, and blog posts on this site are provided for informational purposes. We work to keep them accurate and current, but cannot guarantee that they are complete or error-free. They do not constitute professional HVAC or electrical advice. Model lineups and firmware change, and your indoor unit may differ from those we have tested. ## Working on your HVAC equipment Installing a controller requires opening the front panel of an indoor unit and connecting a cable to a service port. The Multi-Zone Controller connects instead at the outdoor unit or branch box, on the system's two-wire transmission connection. City Multi and P-series systems are often commercial equipment under a service contract, and a qualified technician should do that work. You accept the risks of working on your equipment, including the possibility that a third-party accessory may affect the manufacturer's warranty terms. Turn off power before starting. If you are not comfortable performing the work, hire a qualified HVAC technician. See [safety and installation](https://serin-labs.com/safety.html) for the precautions that apply to every install, and [licenses and compliance](https://serin-labs.com/licenses.html) for regulatory details. ## The firmware The open-source firmware you can install on the controller is free and provided under its own licenses, which are listed with their upstream credits on the [licenses & compliance](https://serin-labs.com/licenses.html) page. Those licenses, not this page, govern your use of the firmware, and like essentially all open-source licenses they provide the software as-is, without warranty of any kind. Serin Labs does not charge for firmware, and no subscription is attached to it. The Google Home and Alexa compatible firmware is free of charge as well. It is not open source and its source code is not published, so it carries no upstream license of its own, and these are its terms. Serin Labs grants you a license to download that build, keep copies of it, and install it on a Serin Controller or on another supported board you own. The third-party components it is built on are listed on the [licenses & compliance](https://serin-labs.com/licenses.html) page under their own licenses, which continue to govern those components. Like every other build, it is provided as-is, without warranty of any kind. The Serin Link runs its own firmware, which is open source under the GNU General Public License, version 3, with its source published at [Serin-Labs/serin-link](https://github.com/Serin-Labs/serin-link) on GitHub. Assembled Links ship with that firmware installed and update over a signed over-the-air channel, and reflashing a Link over USB stays available to you. Installing other firmware on a Link you own is permitted; see the [limited warranty](https://serin-labs.com/warranty.html) for what that does to coverage. ## The browser flash tool The [browser flash tool](https://serin-labs.com/flash.html) installs firmware on a controller through a USB cable, locally in your browser. It is provided as-is. Selecting the wrong firmware, disconnecting the cable, or encountering a software error may require the board to be flashed again. The [troubleshooting guide](https://serin-labs.com/troubleshooting.html) covers recovery. A controller purchased from Serin Labs that cannot be recovered is handled under the [store policies](https://serin-labs.com/policies.html). You assume the risk when installing firmware on hardware obtained elsewhere. ## Purchases Sales are governed by the [store policies](https://serin-labs.com/policies.html) and the [limited warranty](https://serin-labs.com/warranty.html), both of which are part of these terms. Direct orders are processed by Shopify under its own terms; Etsy orders are processed by Etsy under its own terms and Purchase Protection. Joining the waitlist for a product we have announced but not yet released, through the [contact form](https://serin-labs.com/contact.html), creates no order, takes no payment, and binds neither you nor Serin Labs. It records your interest so that we can tell you when the product is available to order. ## Third-party services and links This site links to and relies on services that Serin Labs does not control, including GitHub, Discord, Shopify, Etsy, and Resend, which delivers contact form messages to our mailbox. Each service is governed by its own terms and privacy policy. Serin Labs is not responsible for their content or availability. ## Community spaces Our Discord server and GitHub repositories are open to the public. Treat other participants respectfully, do not post spam or malicious code, and follow each platform's rules. We may remove content or restrict access when necessary to maintain safe and useful community spaces. ## Intellectual property The text, images, and design of this site belong to Serin Labs unless credited otherwise. The open-source firmware belongs to its respective authors under the licenses listed on the [licenses and compliance](https://serin-labs.com/licenses.html) page. You may link to any page on this site. ## Disclaimer of warranties The site, documentation, browser flash tool, and free firmware are provided “as is” and “as available,” without warranties of any kind, express or implied, including implied warranties of merchantability, fitness for a particular purpose, and non-infringement. This disclaimer does not alter the return, replacement, and refund commitments for hardware stated in the [store policies](https://serin-labs.com/policies.html), or the coverage stated in the [limited warranty](https://serin-labs.com/warranty.html). ## Limitation of liability To the fullest extent permitted by law, Serin Labs is not liable for indirect, incidental, special, or consequential damages arising from your use of the site, tools, or firmware, including damage to HVAC equipment, other hardware, or property, or loss of use or data. Our total liability for any claim is limited to the amount paid to Serin Labs for the product involved, or $50 if no purchase was made. Some jurisdictions do not permit certain limitations, so parts of this section may not apply to you. ## Governing law These terms are governed by the laws of the State of New Jersey, United States, without regard to conflict-of-law rules. If a court finds part of these terms unenforceable, the rest still applies. ## Changes If these terms change, this page and its revision date will be updated. Continued use of the site after a change constitutes acceptance of the updated terms. ## Contact Use the [contact form](https://serin-labs.com/contact.html) for questions about these terms. We reply within 2 business days. To report a security problem in our firmware, this site, or our stores, follow the steps on the [security page](https://serin-labs.com/security.html). --- # Mitsubishi Mini-Split Troubleshooting > Learn how to resolve firmware installation, Wi-Fi, CN105 communication, and Home Assistant, Apple Home, or Matter pairing problems with your Mitsubishi heat pump controller. Source: https://serin-labs.com/troubleshooting.html Last updated: 2026-10-15 Use this guide to resolve common problems with firmware installation, setup, and everyday operation. ## The status light is on or blinking With HomeKit-compatible and Matter-compatible firmware, an unlit RGB LED normally means the controller is operating. Solid red indicates that the indoor unit is not responding over CN105; a yellow pulse indicates safe mode. Use the [status lights reference](https://serin-labs.com/controller/status-lights.html) to identify other colors and patterns. ESPHome exposes the LED as a Home Assistant light entity; those status meanings do not apply. **What the light does while you hold the button** The light shows which button action is selected. Serin Link pairing actions happen when you release the button, but holding it for 10 seconds resets Wi-Fi immediately, while the button is still pressed. Check the [button hold reference](https://serin-labs.com/controller/status-lights.html#button-hold-light) before holding it: some actions remove pairings or Wi-Fi credentials. For a planned Wi-Fi change or reset, follow the [maintenance guide](https://serin-labs.com/controller/maintenance.html). **The light is pulsing yellow** - After repeated crashes, the controller starts in safe mode. Wi-Fi and the web interface remain available, and a banner indicates that safe mode is active. - Open the web interface and update the firmware, or install the firmware over USB from the [flash page](https://serin-labs.com/flash.html). - If the controller returns to safe mode after a USB installation, the cause is more likely to be wiring or power than firmware. Check the CN105 connection and [contact support](https://serin-labs.com/contact.html). ## Flashing and USB **Controller is not detected over USB, or no serial port appears** - Use a USB **data** cable, not a charge-only cable. Test the cable by transferring files to a phone or another device. - The NanoC6 and Atom S3 Lite need no driver. A DIY board with a CP210x or CH340 USB chip may need that chip's driver, such as the [SiLabs CP210x driver](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers). - Try a different USB port, preferably directly on the computer, not through a hub. - Ensure you are using Chrome, Edge, or Brave. Web Serial is not supported in Safari or Firefox. **Firmware installation fails or times out** - On the NanoC6, hold the button on top while you connect the USB cable, then start the installation. Other boards have their own download-mode button; follow the board maker's instructions. - Try a shorter USB cable; long cables can cause communication errors. - Close any other serial monitors or programs that may be using the port. - Refresh the [flash page](https://serin-labs.com/flash.html) and try again. **"Browser does not support Web Serial" message** - Use a Chromium-based browser: **Chrome**, **Edge**, or **Brave** on desktop. - Safari and Firefox do not support Web Serial. - Web Serial is not available on iOS or Android browsers; install the firmware from a desktop computer. ## Wi-Fi and connectivity **Setup Wi-Fi network does not appear** These hotspot checks apply to ESPHome and HomeKit-compatible firmware. A newly flashed Matter controller has no setup hotspot; use the [Matter setup guide](https://serin-labs.com/matter/setup.html) to add it over Bluetooth. - Wait at least 60 seconds after turning on the controller. The setup Wi-Fi network may take longer to appear on the first startup. - Make sure the controller is powered by a stable 5 V supply rated for at least 1 A. - **ESPHome:** Look for a Wi-Fi network named `serin-XXXXXX` (password: `serinlabs`). - **Apple Home:** Look for a Wi-Fi network named `Serin-XXXX` (password: `serinlabs`). - If the controller was previously configured, it may already be connected to your Wi-Fi network. Check your router's connected-device list, sometimes called the DHCP client list. **Controller is connected to Wi-Fi, but its IP address cannot be found** - Check your router's connected-device list for a controller named `serin` or similar. - Use a network scanner like [Fing](https://www.fing.com/) or `nmap`. - **ESPHome:** The ESPHome dashboard in Home Assistant displays the controller's IP address automatically. **Controller repeatedly disconnects from Wi-Fi** - Check the signal strength. The controller may be too far from your Wi-Fi router or access point, especially when installed inside the indoor unit. - **Metal air-handler cabinets** (SVZ, MVZ, PEAD, PVA) can weaken or block Wi-Fi signals. Mount the controller outside the sheet-metal cabinet using a longer cable; see the [parts page](https://serin-labs.com/parts.html). - Use a **2.4 GHz** network. ESP32 controllers do not support 5 GHz Wi-Fi. - **Apple Home:** The backup setup network becomes available after the controller has been disconnected for five minutes. **Cannot open the setup page at 192.168.4.1** - Temporarily turn off cellular data so your phone remains connected to the setup Wi-Fi network. - Temporarily disable automatic connections to other Wi-Fi networks. - For the ESPHome or HomeKit setup hotspot, or an already configured Matter controller's recovery hotspot, open `http://192.168.4.1` in your browser. A newly flashed Matter controller receives Wi-Fi credentials through its smart-home app. ## ESPHome and Home Assistant **Controller does not appear as "Discovered" in the ESPHome dashboard** - Verify that the controller is connected to Wi-Fi. Check your router's connected-device list for a controller named `serin`. - Make sure the controller and Home Assistant are connected to the **same local network** (the same subnet or VLAN). - Make sure your router or firewall allows Bonjour (mDNS) traffic. Some enterprise networks and certain UniFi configurations block this traffic. - Try restarting the ESPHome add-on in Home Assistant (Settings → Add-ons → ESPHome → Restart). - If the controller is still not detected, add it manually by IP address in the ESPHome dashboard. **Installation fails or times out after selecting "Adopt"** - Confirm that the controller is reachable on the network by pinging its IP address. - The first firmware build can require significant memory. Make sure the Home Assistant host has enough available resources. - If the wireless update fails, connect the controller over USB and reinstall the firmware from the [flash page](https://serin-labs.com/flash.html). Then select **Adopt** again. **Climate entity is marked "unavailable" in Home Assistant** - Verify that the indoor unit has power. The controller communicates through the indoor unit's control board. - Check that the [CN105 cable](https://serin-labs.com/wiring.html) is firmly seated at both ends. Turn off power at the breaker before unplugging or reseating the CN105 end. - Check the ESPHome logs for serial communication (UART) errors. Open the controller's IP address in a browser or use the ESPHome dashboard logs. - Ensure TX/RX wires are not swapped; refer to the [wiring reference](https://serin-labs.com/wiring.html). **Wireless firmware update fails in ESPHome** - Confirm that the controller is reachable on the network by pinging its IP address. - Make sure the configuration fits within the controller's available flash storage. - If the update still fails, connect the controller over USB and reinstall the firmware from the [flash page](https://serin-labs.com/flash.html). ## Apple Home (HomeKit) **Controller does not appear in Apple Home during pairing** - Make sure your iPhone or iPad is connected to the **same Wi-Fi network** as the controller. - Open the web interface at `http://` and scan the QR code. - If the controller was previously paired, remove it from the Home app, then select **Reset HomeKit Pairing** in the web interface. See [reset pairing](https://serin-labs.com/controller/maintenance.html#pairing). - Restart the Home app and try again. **"Accessory Not Found" or pairing fails** - Reset pairing from the web interface, then try adding the accessory again. - Make sure your router or firewall allows Bonjour (mDNS) traffic. - Restart the controller. If it is already installed, turn the power off and on at the breaker rather than unplugging the CN105 connector while the indoor unit is powered. - Close and reopen the Home app on your iPhone or iPad. **Web interface does not load** - Open `http://Serin-XXXX.local`, using the same **XXXX** shown in the `Serin-XXXX` network name. You do not need to look up the IP address. - If the `.local` address does not open, find the controller's IP address in your router's connected-device list and open `http://`. Some Android devices and networks block mDNS. - Use `http://`, not `https://`. - If the controller lost its Wi-Fi connection, it may have returned to setup mode. Connect to the `Serin-XXXX` network and open `http://192.168.4.1`. ## Google Home, Alexa, and SmartThings (Matter) **The app cannot find the controller during Matter setup** - Confirm you installed the Matter-compatible firmware. HomeKit-compatible and ESPHome builds use different setup routes. - Keep your phone near the controller: initial setup uses Bluetooth. There is no separate setup hotspot on a newly flashed Matter controller. - Check that you have a compatible hub for your app and that IPv6 is enabled on your home network. Follow the requirements in the [Matter setup guide](https://serin-labs.com/matter/setup.html). - Start the app's add-device flow and use this controller's Matter QR code or 11-digit code. The flasher displays it after installation, and the controller prints it in the serial console at startup. **The app warns that the Matter accessory is uncertified** This is expected: the Matter-compatible firmware is a beta build and is not Matter-certified. Confirm that you want to continue in the app's uncertified-accessory prompt. Follow the instructions for [Google Home](https://serin-labs.com/matter/setup.html#google-home), [Alexa](https://serin-labs.com/matter/setup.html#alexa), or [SmartThings](https://serin-labs.com/matter/setup.html#smartthings). **Matter pairing finishes, but the indoor unit does not respond** Pairing confirms the smart-home connection; check that commands reach the indoor unit too. Open the [controller's web interface](https://serin-labs.com/controller/web-interface.html) and try a mode or temperature change. If the indoor unit still does not respond, follow the CN105 checks. Fan and vane controls are available in the web interface even when the app's standard thermostat tile does not expose them. ## Indoor unit and CN105 connection **CN105 is connected, but no data appears or the climate entity is unavailable** - Verify cable orientation; check the [wiring reference](https://serin-labs.com/wiring.html) for correct pin mapping. - Make sure the indoor unit has power at the breaker. - Confirm your unit has a **CN105** port (not CN110). [Check your model](https://serin-labs.com/compatibility.html). - Some indoor units answer only at 9600 baud, including SEZ-KD ducted units sold outside North America. On HomeKit-compatible and Matter-compatible firmware, set **Device** > **Advanced** > **CN105 Baud Rate** to 9600 in the [web interface](https://serin-labs.com/controller/web-interface.html). On ESPHome, set `baud_rate` to 9600 in the `uart` block of your YAML. - Check the controller logs for serial communication (UART) errors. - Try reseating the cable at both ends. Turn off power at the breaker before touching the CN105 end, and restore power only after the connector is fully seated. - If you assembled your own cable, an incorrectly wired or poorly soldered connection is a common cause. Test with a [preassembled cable](https://serin-labs.com/parts.html) to determine whether the original cable is causing the problem. **Temperature readings are incorrect or missing** - Some units report 0°C until the compressor runs for the first time; this is normal. - For more accurate room temperature, use a [remote temperature sensor](https://serin-labs.com/controller/room-sensors.html) with the supported route for your firmware instead of the unit's built-in sensor. - Verify that the indoor unit is compatible and communicating. Other climate controls should respond. **Commands are sent, but the indoor unit does not respond** - Some indoor units require at least 30 seconds after startup before accepting serial commands. - Check TX/RX wiring: the two data wires may be swapped. Turn off power at the breaker before opening the unit, then compare the wiring against the [wiring reference](https://serin-labs.com/wiring.html). - If the controller's web interface loads or its logs are available, the CN105 port is supplying power to the board. This usually indicates a problem with the data wiring rather than the power supply. - If the board operates only when connected over USB, the cable is the likely cause. Test with an [assembled cable](https://serin-labs.com/cable.html) to determine whether the original cable is causing the problem. Turn off power at the breaker before changing the cable. ## Firmware and recovery **How to reset the controller to factory settings** On HomeKit-compatible and Matter-compatible firmware, select **Device** > **Advanced** > **Factory Reset…** in the web interface. The controller can stay in the indoor unit. For ESPHome, or a controller you cannot reach on the network, select **Erase everything first** in the [flash tool](https://serin-labs.com/flash.html) before installing. Either way, stored Wi-Fi credentials and pairings are removed and setup starts over. See [factory reset](https://serin-labs.com/controller/maintenance.html#factory-reset) for the steps and for smaller resets that keep your pairing. **How to switch between firmware versions** Choose the destination in [choose your firmware](https://serin-labs.com/controller/firmware.html), then follow [switching firmware](https://serin-labs.com/controller/maintenance.html#reset). Use USB with the controller disconnected from CN105, erase the previous settings, and complete the new platform's setup. ESPHome, HomeKit-compatible, and Matter-compatible firmware have separate setup guides. **OTA update fails or the controller does not respond** - **Installing the firmware over USB is the standard recovery method.** Follow [USB recovery](https://serin-labs.com/controller/maintenance.html#reset) to disconnect the controller from CN105 safely and use the [flash page](https://serin-labs.com/flash.html). Select **Erase everything first** only if you intend to reset stored settings. - **HomeKit-compatible and Matter-compatible firmware:** The firmware supports automatic rollback. If validation fails after an OTA update, the controller returns to the previous firmware. - If the controller does not respond over USB, put it in download mode: on the NanoC6, hold the button on top while you connect the USB cable, then install the firmware. **The version did not change after an update** Reload the web interface first: **Installed** keeps showing the old version until the page reloads. If it still shows the old version, either the upload did not finish or the new version did not start correctly and the controller returned to the previous one. Try the update again and keep the page open until it shows "Update complete! Restarting...", or [update over USB](https://serin-labs.com/controller/updates.html#usb). If it happens again, contact support with the text from [Copy Diagnostics](https://serin-labs.com/controller/support-info.html#diagnostics). **Check for Updates fails** - A message ending **manifest missing install data, install manually below** means no release is published for this board, which is usual for a DIY build. A custom build shows no **Check for Updates** button at all. Update either one with the [flash tool](https://serin-labs.com/flash.html) or your own firmware file. - A **Check failed** message means your phone or computer could not get the release information. The controller does not need internet access, but the phone or computer you use does. Check its connection and try again, or [install a firmware file](https://serin-labs.com/controller/updates.html#file-upload). ## Still need help? Include the following information when requesting support: - Your **indoor unit model**, found on the sticker under the front panel (for example, MSZ-GL06NA). - The **firmware and version** you installed: ESPHome, HomeKit-compatible, or Matter-compatible. - The step at which the problem occurs: firmware installation, Wi-Fi setup, pairing, or control. - On HomeKit-compatible or Matter-compatible firmware, the text from **About** > **Copy Diagnostics** in the web interface. See [copy diagnostics for support](https://serin-labs.com/controller/support-info.html#diagnostics). - The troubleshooting steps you have already tried. - [Report an ESPHome firmware issue](https://github.com/echavet/MitsubishiCN105ESPHome/issues) - [Report an Apple Home firmware issue](https://github.com/akifbayram/mitsubishi-cn105-homekit/issues) - [Ask a general question in Discord](https://discord.gg/cC2ybSQDZd) - [Use the contact form](https://serin-labs.com/contact.html) Browse the manual ↑ --- # Limited Warranty > Serin Labs warranty terms: a one-year limited hardware warranty against manufacturing defects on every product, with replacement or refund and US shipping covered both ways. Source: https://serin-labs.com/warranty.html Last updated: 2026-10-15 Every product Serin Labs sells carries a one-year limited hardware warranty against defects in materials and workmanship. This page states those terms in plain language. It sits alongside the [store policies](https://serin-labs.com/policies.html), which cover shipping, cancellations, returns, and refunds on every order, and the [terms of service](https://serin-labs.com/terms.html), which cover the site, the documentation, the browser flash tool, and the free firmware. Last updated October 12, 2026. ## Coverage at a glance | Product | What is covered | How long | Remedy | | --- | --- | --- | --- | | Serin Controller | The controller board and the CN105 cable attached to it | One year from delivery | Replacement or refund | | CN105 to Grove cable | The cable and its connectors | One year from delivery | Replacement or refund | | Wireless room sensor bundle | The controller, its cable, and the wireless sensor | One year from delivery | Replacement or refund | | Serin Link | The assembled Link, the USB-C wall charger, and the USB-C cable in the box | One year from delivery | Replacement or refund. A failed charger or cable is replaced on its own. | | Multi-Zone Controller | The controller, the mounting cradle, and the bus cable in the box | One year from delivery | Replacement or refund. A failed cradle or bus cable is replaced on its own. | Serin Labs pays shipping in both directions on a covered claim for an order delivered in the United States. Orders delivered elsewhere are covered under shipping on a claim below. ## What the warranty says Serin Labs warrants that a product sold by Serin Labs, on this site or through our Etsy shop, is free from defects in materials and workmanship under normal use for one year from the date of its original delivery. This is a limited warranty. ### What is covered - The product and every part that ships in its box, as listed in the table above. - A failure caused by a defect in materials or workmanship under normal use, installed and operated as the product's instructions describe. - A unit with no physical damage that official firmware cannot recover. See firmware and updates below. ### What is not covered - Accidental damage and damage caused by the customer, including drops, crushing, liquid, and damage from opening or modifying a product. - Normal wear and cosmetic changes that do not affect how the product works, including scratches, scuffs, and fading. 3D-printed parts show fine layer lines and can differ slightly in color from one unit to the next. That is how the parts are made and is not a defect. - Damage from connecting a product to a port, terminal, or power source other than the one its instructions describe, or from installing it somewhere the [safety and installation](https://serin-labs.com/safety.html) page rules out. - Damage or a malfunction caused by custom or incorrect firmware. Installing firmware does not by itself cancel coverage of an unrelated hardware fault. - Batteries, which are consumables. The wireless room sensor's battery is covered only to arrive in working order. - A product that was not originally sold by Serin Labs. ### Serin Link The terms above apply to the Serin Link, along with these points that are specific to it. - **Screen.** Dead pixels, lines across the display, a screen that stays dark, and a touchscreen that stops responding are covered. Image retention or burn-in that develops gradually with use is a known characteristic of AMOLED displays and is not covered. To keep the screen dark while the Link is idle, set Idle screen to Off in its [settings](https://serin-labs.com/link/settings.html). - **Knob.** A knob that stops registering turns or presses is covered. A change in how the knob feels after use is normal wear. - **Charger and cable.** If the USB-C wall charger or the USB-C cable fails and the Link itself is working, we mail a replacement for that part. There is nothing to send back. ### Multi-Zone Controller The terms above apply to the Multi-Zone Controller, whether the system is in a home or in a commercial building, along with these points that are specific to it. - **Hardware only.** The warranty covers the product and the shipping described below. It does not cover the cost of installing, removing, or reinstalling the controller, a technician's service call, or time the system spends out of service. - **Weather and moisture.** The controller is mounted indoors or inside the equipment's own enclosure, as the [safety and installation](https://serin-labs.com/safety.html) page describes. Damage from rain, condensation, or direct sun is not covered. - **Lightning and power surges.** Damage from lightning, or from a voltage surge on the transmission wiring or the building's electrical supply, is not covered. - **Wrong terminals.** The bus cable connects only to the two-wire transmission terminals. Damage from connecting it to any other terminals, including the line-voltage terminals in the same enclosure, is not covered. - **Faults in the system.** Damage caused by a fault in the equipment the controller is wired to is not covered. - **Cradle and bus cable.** If the mounting cradle or the bus cable fails and the controller itself is working, we mail a replacement for that part. There is nothing to send back. ### Who can make a claim The warranty stays with the product for its one-year period. If the product was a gift, or a contractor bought and installed it for you, you can make a claim yourself with the original order number. A change of owner does not extend the period, which always runs from the original delivery. ### What we will do If a covered defect appears within the one-year period, Serin Labs will replace the product or refund it, at our choice. There is no paid repair service, and replacement parts are not sold separately, so a covered product is made right by replacement or refund rather than by repair. The one exception is a separate accessory: where only the Serin Link's charger or cable, or the Multi-Zone Controller's cradle or bus cable, has failed, we replace that part on its own. A replacement, whether a whole product or a single part, is covered for the rest of the original one-year period or for 90 days from its delivery, whichever is longer. ### Shipping on a claim For an order delivered in the United States, Serin Labs pays shipping in both directions on a covered claim. For an order delivered outside the United States, Serin Labs pays to ship the replacement. In most cases we will not ask for the failed product back. If we do, you pay the return postage. Any duties or import fees charged on the replacement are yours to pay, as the [store policies](https://serin-labs.com/policies.html) describe for international orders. ### How to make a claim Use the [contact form](https://serin-labs.com/contact.html) with the original order number and a description of the problem, including what you have already tried. For an Etsy order, you can also message the shop on Etsy. We reply within 2 business days and will confirm what to send back, if anything, before you ship it. If a controller does not respond, start with the [troubleshooting guide](https://serin-labs.com/troubleshooting.html) first, because a charge-only USB cable is the most common cause. For a Serin Link, start with [Serin Link troubleshooting](https://serin-labs.com/link/troubleshooting.html). ### Firmware and updates The firmware is free, and updates carry no charge or subscription. If an installation through the Serin Labs browser flash tool with the correct official image fails, or an official signed over-the-air update fails, contact us and we will walk you through recovery over USB. Most software failures are recovered this way. If official firmware cannot bring back a unit that has no physical damage, we treat it as a warranty claim. Firmware you install yourself is your choice to make. Running firmware other than an official Serin Labs image does not by itself cancel coverage of an unrelated hardware fault, but damage or a malfunction caused by custom or incorrect firmware is not covered. ### Your legal rights This warranty gives you specific legal rights, and you may also have other rights which vary from state to state. Any implied warranty, including any implied warranty of merchantability or fitness for a particular purpose, is limited to the one-year duration of this written warranty. Some states do not allow limitations on how long an implied warranty lasts, so the above limitation may not apply to you. Serin Labs is not liable for incidental or consequential damages arising from the product or from a breach of this warranty. Some states do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you. This warranty is governed by the laws of the State of New Jersey, United States. ## How this page fits with the store policies and terms The [store policies](https://serin-labs.com/policies.html) apply to every order and are the first place to look for shipping, cancellations, returns, and refunds. Their 30-day return window and their commitment on damaged, defective, or incorrect items stand on their own; this warranty adds a year of coverage on top. Where both a return window and this warranty apply, you may use whichever suits you. The firmware, the documentation, and the browser flash tool are covered by the [terms of service](https://serin-labs.com/terms.html) and the licenses listed on the [licenses and compliance](https://serin-labs.com/licenses.html) page. They are free and provided as-is under their own licenses, and nothing on this page changes that. Adding a third-party accessory to HVAC equipment may affect the equipment manufacturer's warranty terms. ## Contact Use the [contact form](https://serin-labs.com/contact.html) for a warranty claim or a question about this page, and include the original order number. We reply within 2 business days. --- # CN105 to Grove Wiring: Pinout & Diagram > Wiring diagram and pinout for connecting an ESP32 (M5Stack) to the Mitsubishi CN105 port via a Grove HY2.0 connector. Every conductor, both connector housings, and the checks to make before power goes back on. Source: https://serin-labs.com/wiring.html Last updated: 2026-10-18 ![The empty red CN105 serial port on a Mitsubishi indoor unit's control board, with the CN105 label and pins 1 and 5 marked in the silkscreen](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp) CN105, on the control board of a Mitsubishi indoor unit. This reference shows every connection between the CN105 service port on a Mitsubishi indoor unit and the Grove HY2.0 connector on an M5Stack Atom S3 Lite or NanoC6. It identifies each conductor, both connector housings, and the checks to complete before restoring power. Crimp your own from the parts below, or buy the [cable assembled and tested](https://serin-labs.com/cable.html). ## Wiring diagram Scroll sideways to see the full diagram. | Wire | CN105 | Grove | Carries | | --- | --- | --- | --- | | Black | 2 · GND | 1 · GND | Ground reference | | Red | 3 · 5V | 2 · 5V | 5 V from the HVAC | | White | 4 · TX | 3 · RX · GPIO 2 | HVAC → board | | Yellow | 5 · RX | 4 · TX · GPIO 1 | Board → HVAC | | none | 1 · 12V | — | *Leave empty* | Check before you power it on 1. Cavity 1 on the CN105 end is **empty**, and the ▲ lines up with the 1 on the board silkscreen. 2. Black and red are **not swapped**; reversed power is the one mistake that damages a board. 3. Unit power is **off** at the breaker before the connector goes in or comes out. ![The orange Serin CN105-to-Grove cable plugged into the CN105 port on a Mitsubishi MVZ-A18AA7 ducted air handler control board](https://serin-labs.com/assets/gallery/800/serin_cn105_mvz_aa7_1.webp.webp) The finished cable seated in a real CN105 port, here on a Mitsubishi MVZ-A18AA7 ducted air handler. ![The CN105-to-Grove cable plugged into the CN105 port on the control board of a Mitsubishi wall unit](https://serin-labs.com/assets/gallery/800/serin_cn105_mitsubishi_gl06na.jpg.webp) The same connection on a wall unit, where the board sits beside it. ## Pinout reference ### CN105 · JST-PAP-05V-S | Pin | Signal | Description | | --- | --- | --- | | 1 | 12V | *Not used* | | 2 | GND | Ground | | 3 | 5V | 5V Power | | 4 | TX | Data output from HVAC (5V logic) | | 5 | RX | Data input to HVAC (5V logic) | ### Grove · HY2.0-4P Atom S3 Lite, NanoC6 | Pin | Signal | Description | | --- | --- | --- | | 1 | G | Ground (connects to ESP32 GND) | | 2 | 5V | 5V Power (connects to ESP32 5V/VCC) | | 3 | G2 | RX (connects to ESP32 UART RX pin) | | 4 | G1 | TX (connects to ESP32 UART TX pin) | ## Build your own Two connector housings and four conductors. Crimp the pinout above into these: - JST PAP-05V-S · CN105 side [DigiKey](https://www.digikey.com/en/products/detail/jst-sales-america-inc/pap-05v-s/759977) - Grove HY2.0-4P · device side [DigiKey](https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/110990027/5482567) The [parts list](https://serin-labs.com/parts.html) covers the boards these connect to. ### Safety Turn off power to the indoor unit at the breaker, not just at the remote, before connecting or disconnecting any cable, and leave it off until the cover is back on. CN105 is the only connector that needs to be handled; the rest of the control board carries line voltage. ![A five-way JST PAP-05V-S connector at the top and a four-way Grove HY2.0-4P connector at the bottom, joined by four wires: yellow, white, red, and black](https://serin-labs.com/assets/content/746/jst_hy20.jpg.abf88bcdf180.webp) ## References - [SwiCago/HeatPump](https://github.com/SwiCago/HeatPump) - [Hacking a Mitsubishi Heat Pump (chrdavis)](https://chrdavis.github.io/hacking-a-mitsubishi-heat-pump-Part-1/) - [CN105 Connector (casualhacker.net)](https://casualhacker.net/post/2017-10-24-CN105_Connector) - [geoffdavis/esphome-mitsubishiheatpump](https://github.com/geoffdavis/esphome-mitsubishiheatpump) - [echavet/MitsubishiCN105ESPHome](https://github.com/echavet/MitsubishiCN105ESPHome) - [akifbayram/mitsubishi-cn105-homekit](https://github.com/akifbayram/mitsubishi-cn105-homekit) - [muart-group](https://github.com/muart-group) Ready-made alternative ## Buy the cable assembled The same harness, built and electrically tested, from $8, in 20 cm and 50 cm. Or take the [Serin Controller](https://serin-labs.com/controller.html), which is an ESP32 board with this cable already attached, from $35. [CN105 Cable](https://serin-labs.com/cable.html) [Serin Controller](https://serin-labs.com/controller.html) Browse the manual ↑ --- # Mitsubishi to Apple HomeView: Mini-Splits & Air Handlers > Connect a Mitsubishi mini-split or ducted air handler to Apple Home for HomeView. Check CN105 compatibility, install free firmware, and pair your controller. Source: https://serin-labs.com/blog/mitsubishi-mini-split-apple-homeview.html Last updated: 2026-10-13 October 13, 2026 · Serin Labs ![Illustration of a wall-mounted Mitsubishi mini-split above Apple HomeView and an iPhone displaying home climate controls.](https://serin-labs.com/assets/content/800/mitsubishi-apple-homeview-iphone-hero.webp.4252215c31b1.webp) Illustration of a Mitsubishi mini-split with HomeView and iPhone. Apple's new **HomeView** puts a shared smart-home screen on a counter or wall. Your Mitsubishi heat pump can join that home, too: the connection starts with adding it to **Apple Home**. For a compatible Mitsubishi Electric mini-split, ducted unit, or air handler, the route is a **Serin Controller** connected to the indoor unit's **CN105** port. You install the free, open-source HomeKit-compatible firmware, then pair it with the Home app on your iPhone or iPad. Apple says HomeView can manage the accessories already in that app. [Apple's HomeView FAQ](https://www.apple.com/shop/buy-home/apple-homeview) documents that relationship. **Status as of October 13, 2026:** Apple lists HomeView availability beginning November 13. The Apple Home setup below is available now. [See Apple's announcement page](https://www.apple.com/apple-homeview/). **Quick Facts** - **Fits:** compatible Mitsubishi Electric indoor units, including wall units, cassettes, floor units, and ducted air handlers. Check the complete model number first. - **Hardware:** one controller per indoor unit, from $35 with its cable. The board ships without firmware installed. - **Firmware:** free, open-source HomeKit-compatible software that you install through the browser flasher. - **Network:** the controller uses 2.4 GHz Wi-Fi; no Home Assistant server or separate bridge hardware is required. - **Pairing:** add the controller to Apple Home, then use that existing home on HomeView. - **Certification:** this is an independent project, not an Apple-certified accessory. Apple Home shows an uncertified-accessory notice during pairing. ## How Apple HomeView Reaches Your Mitsubishi Heat Pump HomeView brings the Home app to a dedicated display, with temperature controls, scenes, and automations. Apple's [Home app page](https://www.apple.com/home-app/) also lists HomeView as a home hub for away-from-home access and automations. The missing connection is inside the Mitsubishi. The controller exchanges commands and status with the indoor unit through CN105. Its HomeKit-compatible firmware makes that unit available as a thermostat in Apple Home. HomeView then accesses the Apple Home setup. The path is **Mitsubishi indoor unit ↔ CN105 cable ↔ Serin Controller ↔ home Wi-Fi ↔ Apple Home**. HomeView is another way to use that home. CN105 carries information in both directions. The controller reads the unit's reported state, so a temperature change made with the original handheld remote can appear in Apple Home. You don't need Kumo Cloud or MELCloud for this connection. The [HomeKit-compatible firmware overview](https://serin-labs.com/homekit/features.html) explains the local connection and available features. [![Graphics of a Mitsubishi mini-split, Serin Controller, home Wi-Fi, iPhone, and HomeView show the CN105 connection and separate Apple Home clients.](https://serin-labs.com/assets/mitsubishi-apple-homeview-connection-diagram.svg)](https://serin-labs.com/assets/mitsubishi-apple-homeview-connection-diagram.svg) CN105 supplies power and two-way data; the controller joins your home Wi-Fi. [Open the full-size diagram](https://serin-labs.com/assets/mitsubishi-apple-homeview-connection-diagram.svg). ## Which Mitsubishi Mini-Splits and Ducted Air Handlers Work? Start with the model number on the **indoor unit**. An outdoor model such as an MXZ identifies the shared system, but doesn't establish compatibility for each indoor unit. Supported examples include **Mitsubishi MSZ-GL06NA** and **MSZ-FH09NA** wall-mounted mini-splits, plus **SVZ-KP18NA** and **MVZ-A30AA7** air handlers. Ducted models such as the **SEZ-KD09NA4** and **PEAD-A24AA7** are also compatible. Similar model names can have different results, so check your exact unit below. Before you buy ## Will it work with your unit? Enter the complete indoor-unit model number, including its suffix, to check compatibility before choosing a controller. An existing accessory may occupy the port. Check before ordering: the controller cannot share CN105 with another accessory, and splitters aren't supported. If you depend on an existing wall controller, review its connection with your installer first. For metal-bodied air handlers, the [50 cm cable](https://serin-labs.com/cable.html#length) gives you room to position the Wi-Fi board outside the cabinet. The shorter 20 cm option suits many wall-unit installations. Cable reach and Wi-Fi reception matter just as much in a utility closet as they do in a bedroom. ![Serin Controller mounted on the insulated plenum above a Mitsubishi MVZ air handler, with an orange CN105 cable running to the indoor control board.](https://serin-labs.com/assets/gallery/800/serin_cn105_mvz_aa7_2.webp.webp) The 50 cm CN105 cable lets the Serin Controller sit outside the metal cabinet of this Mitsubishi MVZ air handler. ## What You Need Before Starting The [assembled Serin Controller](https://serin-labs.com/controller.html) includes the tested CN105 cable. You can also build your own using a supported board and the [parts list](https://serin-labs.com/parts.html). Both routes use the same free firmware. Have these ready: 1. A compatible indoor unit with an available CN105 connection. 2. One controller and a suitable cable for that unit. 3. A computer running Chrome, Edge, or Brave, plus a USB-C **data** cable for flashing. 4. Your 2.4 GHz Wi-Fi name and password, with coverage at the indoor unit. 5. An iPhone or iPad for Apple Home pairing. For HomeView itself, Apple's [technical specifications](https://www.apple.com/apple-homeview/specs/) require an iPhone with iOS 27.2 or later, or an iPad with iPadOS 27.2 or later, plus Wi-Fi internet access. Those are HomeView requirements; check them before buying the display. There is no Serin Labs account or subscription. Local controller communication stays on your network. Apple's remote access and online services have their own connectivity requirements. ## Install the HomeKit-Compatible Firmware and CN105 Cable Open the [browser flasher with Apple Home selected](https://serin-labs.com/flash.html?platform=homekit). Connect the controller to your computer over USB and install the **Apple Home** build. That's the flasher's label for the HomeKit-compatible firmware; no compiling or development tools are needed. The pre-assembled hardware still needs this step. It doesn't arrive with HomeKit-compatible firmware pre-installed. The [firmware source](https://github.com/akifbayram/mitsubishi-cn105-homekit) is available separately, and the [licenses page](https://serin-labs.com/licenses.html) credits its upstream projects. After flashing, disconnect USB. Turn off HVAC power **at the breaker**, leave it off while the unit is open, and follow the [installation guide](https://serin-labs.com/controller/install.html). Locate the five-pin connector labeled CN105, seat the cable, and secure the board clear of moving parts, condensate, and places the cover could pinch the cable. Replace the cover before restoring power. CN105 supplies the controller's power, so you don't need a USB charger inside the unit. Have an HVAC technician make the connection if opening the cabinet is outside your comfort level. ## Pair with Apple Home, Then Use the Same Home on HomeView First get the thermostat working on your iPhone or iPad. The [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) includes screenshots and troubleshooting; the sequence is: 1. **Join Wi-Fi.** If you didn't configure Wi-Fi in the flasher, join the controller's `Serin-XXXX` setup network using the password `serinlabs`. Open `http://192.168.4.1` if the setup page doesn't appear, and enter your home Wi-Fi credentials. 2. **Return to your home network.** Open `http://Serin-XXXX.local`, using your controller's suffix. Its IP address from your router also works. 3. **Open the HomeKit panel.** Display its pairing QR code on another screen, then use your iPhone or iPad to scan it in Apple Home's **Add Accessory** flow. You can enter the panel's setup code manually instead. 4. **Complete pairing.** Review the uncertified-accessory notice, assign the thermostat to a room, and give it a useful name such as **Bedroom Heat Pump**. 5. **Verify the connection.** Check the reported room temperature, change the target or mode, and confirm the indoor unit responds. A tile alone doesn't prove the cable is carrying heat-pump data. 1. ![Apple Home's Uncertified Accessory notice during pairing, with Add Anyway and Cancel buttons.](https://serin-labs.com/assets/apple-home-uncertified-accessory-add-anyway.webp) 1Review the pairing notice and choose **Add Anyway** to continue. 2. ![Apple Home's Dining room view showing the Heat Pump thermostat tile under Climate.](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp) 2Find the **Heat Pump** thermostat in its assigned room. 3. ![Apple Home's Heat Pump controls showing the temperature dial and Cool mode selector.](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-control.webp) 3Open it to change the target temperature and operating mode. When HomeView is available, use it with your existing home in Apple Home. Based on Apple's documented shared accessory support, the thermostat should then be accessible there. Already controlling this unit through Apple Home? Keep that working setup. There's no documented reason to reset or reflash it just to prepare for HomeView. ## Which Controls Belong in Apple Home? The firmware exposes more than a basic on/off switch. Its [HomeKit control reference](https://github.com/akifbayram/mitsubishi-cn105-homekit/blob/main/docs/homekit.md) distinguishes the thermostat from extra services and the controller's web interface. | Function | Existing HomeKit-compatible firmware behavior | | --- | --- | | Reported room temperature and target temperature | Available through the Apple Home thermostat | | Off, Heat, Cool, and Auto | Thermostat modes, subject to the indoor unit's capabilities | | Fan speed | A separate fan control; automatic fan speed has its own switch | | Fan-only and Dry modes | Separate switches where supported, rather than extra thermostat modes | | Vane direction and swing | Controller web interface | | Compressor frequency, outdoor temperature, runtime, and error codes | Controller web interface, when the unit reports them | HomeView's thermostat dashboard shouldn't be taken as a promise that every Mitsubishi function will fit on one tile. Use the controller's [web interface](https://serin-labs.com/controller/web-interface.html) for the complete control surface and diagnostics. For temperature sensing away from the unit, the firmware supports selected Bluetooth thermometers and the optional Serin Link. Follow the [room-sensor guide](https://serin-labs.com/controller/room-sensors.html#homekit) to configure a supported source. Adding a display to the room doesn't, by itself, change which temperature the heat pump uses. ## Set Up Rooms and Routines for a Multi-Zone System Count **indoor units**, not outdoor condensers or supply vents. Three indoor heads need three controllers. A single ducted air handler serving several rooms gets one controller and one thermostat; this doesn't create independent damper zones. Assign each thermostat to its actual Apple Home room and use distinct names. That makes voice requests such as “Siri, set Bedroom Heat Pump to 70 degrees” easier to direct. Check each thermostat individually before putting several into a scene. Useful starting points are a bedtime scene with bedroom settings and a scheduled change for a home office. Apple documents [scenes and time- or presence-based automations](https://support.apple.com/en-us/102313); use settings you've already confirmed work manually. A shared outdoor system still imposes its own operating limits. Separate Apple Home tiles don't guarantee simultaneous heating in one room and cooling in another. The [multi-zone guide](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html) explains controller counts and shared-system constraints. ## Common Questions About Mitsubishi and HomeView ### Do I need a HomePod or Apple TV as well? Apple lists HomeView itself as a home hub. A separate HomePod or Apple TV isn't a stated requirement for that role. Before HomeView arrives, basic local HomeKit control can work from your iPhone; remote access and automations need a suitable home hub. [Apple describes the hub options here](https://www.apple.com/home-app/). ### Do I need Matter or Thread for this setup? This guide uses the HomeKit-compatible firmware over Wi-Fi. A Thread border router isn't part of the controller's connection. HomeView's Thread support doesn't make this controller a Thread accessory, and you don't need to switch a working HomeKit setup to Matter for the route described here. ### Will Apple's Adaptive Temperature work? Don't assume it will. Apple specifies a **compatible Matter thermostat** for [Adaptive Temperature](https://support.apple.com/guide/iphone/adaptive-temperature-clean-energy-guidance-iphdf6fde3d8/ios). That doesn't establish support for Serin's HomeKit-compatible firmware, or automatically validate the separate Serin Matter build. ### What if Apple Home adds the thermostat but the unit doesn't respond? Check the controller's **Heat Pump · CN105** status and follow [CN105 troubleshooting](https://serin-labs.com/troubleshooting.html#hvac-no-response). Keep Wi-Fi pairing and heat-pump communication separate in your diagnosis. Some SEZ-KD regional models need a different serial speed; use the exact-model advice in the [compatibility list](https://serin-labs.com/compatibility.html#ducted). ## Choose the Route That Fits Your Installation **Choose the Serin Controller** if your Mitsubishi has a supported, available CN105 port and you want local control with feedback from the unit. Ducted equipment belongs in that decision just as much as a wall-mounted mini-split. **Choose an infrared option** if your unit uses a compatible handheld remote and you want to avoid opening it. **Sensibo Air** is a HomeKit-certified alternative according to [Sensibo's product documentation](https://sensibo.com/products/sensibo-air). Check its remote compatibility; it isn't a general solution for ducted equipment without an infrared receiver. **Keep an existing Apple Home integration** if it already controls your Mitsubishi reliably. For HomeView, establishing the thermostat in the right home is the useful preparation. To get started: 1. [Check your full indoor-unit model number](https://serin-labs.com/compatibility.html). 2. Choose the [controller and cable length](https://serin-labs.com/controller.html), or assemble the [DIY parts](https://serin-labs.com/parts.html). 3. [Install the Apple Home firmware](https://serin-labs.com/flash.html?platform=homekit) and [verify thermostat control](https://serin-labs.com/homekit/setup.html#verify). 4. When you set up HomeView, use your existing home in Apple Home. Give the heat pump a connection first. Then give the household a screen. ## Related - [Check your exact Mitsubishi indoor-unit model](https://serin-labs.com/compatibility.html) - [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) - [Serin Controller hardware and cable options](https://serin-labs.com/controller.html) - [Plan a controller for each indoor unit](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Mini-Split Dry Mode, Explained: What It Does and When to Use It > What dry mode actually does on a Mitsubishi mini-split, quoted from the operating manual: it dehumidifies, cools the room slightly, and won't let you set a temperature. When it beats cool mode, and when it doesn't. Source: https://serin-labs.com/blog/mini-split-dry-mode.html Last updated: 2026-09-23 September 23, 2026 · Serin Labs It's a rainy September afternoon, about 72°F outside, and your living room feels like a locker room. The mini-split says 73. The thermometer agrees. You still want to peel your shirt off. So you scroll through the modes on the remote and land on the water droplet. Dry mode. Nobody ever explained what it does, the manual in the drawer is four pages of safety warnings, and the internet is full of people confidently contradicting each other. Here's the honest version, taken from Mitsubishi's own documentation rather than folklore. Dry mode is a real, useful mode. It is also not a dehumidifier with a dial, and the manual is unusually blunt about why. ## Quick Facts - **What Mitsubishi says it is:** "Dehumidify your room. The room may be cooled slightly." That's the whole description in the operating instructions for the MSZ-FS series, document **JG79Y766H01**. - **The catch, same page:** "Temperature cannot be set during DRY mode." Word for word. - **What it targets instead:** the MSZ-FS service manual (**No. OBH872, Revised Edition-A**) says "the set temperature is determined from the initial room temperature" — the unit picks a target from the room as it found it. - **There is no humidity setpoint.** Neither manual offers one, and neither describes a humidity sensor in the indoor unit. - **Mechanically it's cooling,** run gently. Dry mode inherits the same coil-frost and low-outdoor-temperature protections as cool mode, per the same service manual. - **Best case:** the room is roughly the temperature you want but feels clammy — shoulder season, rainy days, humid mornings. - **Worst case:** you need the room several degrees colder, or you need a specific humidity level. Dry mode does neither. - **Model-dependent.** Everything above is cited from named Mitsubishi manuals for specific series. Other manufacturers, and other Mitsubishi series, document their own behavior. ## What Does Dry Mode Actually Do? Strip away the branding and dry mode is the cooling circuit, throttled. Any air conditioner dehumidifies as a side effect. The indoor coil runs colder than the air passing over it, and when a surface is below the air's dew point, water condenses on it. On a mini-split that water beads on the aluminum fins, runs into the drain pan, and leaves through the condensate line. That's why there's a hose coming out of your wall, and it's why cool mode already pulls moisture out of the room whether you asked it to or not. Dry mode leans into that side effect and dials back the temperature drop. The Mitsubishi operating instructions describe the intent in eight words: "Dehumidify your room. The room may be cooled slightly." The service manual is where the mechanics show up. In **No. OBH872**, section 8-2 covers DRY operation, and it's short — three steps and two control behaviors. Coil frost prevention "works the same way as that in COOL mode," and so does low outside temperature operation. Both cross-reference section 8-1, the cool-mode section, which explains that the compressor's operating frequency is controlled by the indoor heat exchanger's temperature to keep the coil from frosting, and that when the coil gets too cold "the indoor fan operates at the set speed and the compressor stops." So it's the same hardware and the same protections as cool mode. The difference is what the unit is aiming at. ## Why You Can't Set a Temperature in Dry Mode This is the part that surprises people, and it's stated plainly rather than buried. In the MSZ-FS operating instructions (**JG79Y766H01**), the mode list gives cool mode a temperature step — press the up or down buttons, each press moves it by 1°F. Heat mode gets the same step. Dry mode doesn't. Instead, under the mode descriptions, the manual says: "Temperature cannot be set during DRY mode." I checked whether that's a quirk of one North American series. It isn't. The operating instructions for the MSZ-LN25–60VG series (**JG79Y486H01**, published on Mitsubishi Electric New Zealand's site) carry the identical sentence, in the identical position, for a completely different R32 lineup sold on the other side of the world. The service manual explains what fills the gap. Section 8-2 lists three steps for starting dry mode, and the third one is: "The set temperature is determined from the initial room temperature." The unit reads the room at the moment you select dry, decides its own target from that, and works to it. Which means the mode is doing something reasonable — just not something you steer. If you switch to dry mode while the room is already 78°F, you get a different outcome than if you switch at 72°F. Same button, different result, and no display tells you which target it picked. ## Dry Mode vs Cool Mode: When to Use Which | Situation | Use | Why | | --- | --- | --- | | Hot · **and** · humid, room needs to be several degrees colder | **Cool** | Only cool mode takes a setpoint. Dry mode's gentle approach won't pull the room down fast. | | Room temperature is about right, air feels clammy | **Dry** | Exactly the case the manual describes: dehumidify, cool slightly. | | Rainy shoulder season — mild outside, sticky inside | **Dry** | Cool mode would overcool a room that isn't actually too warm. | | You want a specific temperature held all day | **Cool** | "Temperature cannot be set during DRY mode." | | You want a specific humidity level held | **Neither** | No humidity setpoint exists on these units. Buy a dehumidifier. | | Damp basement that's already cool | **Dry, cautiously** | Dry mode is still the cooling circuit, and a cold room can fall outside its published range. See below. | | Outside is below 14°F (−10°C) | **Neither** | The manual says don't run cool mode that cold; condensed water "may drip and wet or damage furniture." | | Multi-zone, another head is calling for heat | **Neither wins** | Cooling, dry, and fan can't run alongside heating on one outdoor unit. The head selected last goes to standby. | That last row catches people with multi-head systems every autumn. The operating instructions spell it out: when several indoor units run at once, "cooling/dry/fan and heating operations cannot be done at the same time." Pick dry downstairs while somebody upstairs picks heat, and one of them is standing by, not running. I went through the rest of that arithmetic in the [multi-zone post](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html). ## Where Dry Mode Falls Short Three limits, in the order they'll bite you. **It has no humidistat.** A dehumidifier has one. You set 50%, it runs until it gets there, and it stops. Dry mode has nothing equivalent in either manual I read. The only humidity figure in either service manual is an operating-condition ceiling — maximum humidity 78% — which is a limit on where the unit may be used, not a number you can dial. **It can't tell you how it's doing.** The unit measures return-air temperature at the indoor unit, up near the ceiling. Neither manual describes it measuring room humidity at all, so there's no reading to show you. You run dry mode, and the feedback loop is your own skin. **The room can be too cold for it.** The MSZ-FS operating instructions publish a guaranteed operating range, and the cooling row's indoor lower limit is 67°F (19.4°C) dry bulb, 57°F (13.9°C) wet bulb. That row is labelled for cooling rather than dry specifically, but dry mode runs the same circuit under the same protections — which is the honest answer to "can I use this to dry out a 60°F basement." Not really. That's a dehumidifier's job. **It's still an air conditioner in a damp room.** The MSZ-LN manual carries a warning worth repeating: don't run the unit more than four hours at high humidity (80% RH or more) or with windows and doors open. Mitsubishi's stated reason is condensation inside the air conditioner, which can drip onto furniture and "may contribute to growth of fungi, such as mold." There's a related habit the manual recommends: after running cool or dry, switch to fan mode for a while "to dry inside the indoor unit." ![A Govee BLE thermometer on a coffee table showing 79.8°F and 60% humidity, with a Mitsubishi mini-split on the wall behind it](https://serin-labs.com/assets/content/800/ble-thermometer-mini-split-remote-sensor.webp.9f2019728007.webp) That 60% on the thermometer is the number the mini-split never sees. ## What Changes From Model to Model I want to be careful here, because dry mode is exactly the kind of feature that varies and gets over-generalized. Everything above is sourced from four named Mitsubishi documents: operating instructions **JG79Y766H01** (MSZ-FS06NA through FS18NA) and **JG79Y486H01** (MSZ-LN25VG through LN60VG), plus service manuals **No. OBH872** (MSZ-FS series) and **No. OBH683, Revised Edition-E** (MSZ-FH06NA through FH18NA2). Those four agree with each other. That's a decent spread — two continents, two refrigerants, a mid-range series and a premium one — but it is not every unit ever built, and it is emphatically not every brand. There's one documented wrinkle worth knowing about. The open-source ESPHome component our builds use, [echavet/MitsubishiCN105ESPHome](https://github.com/echavet/MitsubishiCN105ESPHome), lists an experimental read-only sensor for a "target humidity" value that some premium models — it names the MSZ-LN series — put on the wire. The component's own documentation says the value changes automatically when you switch modes, and that these experimental features "rely on protocol bytes or behaviors that are not officially documented by Mitsubishi and may not work on all unit models." Read that carefully and it reinforces the point rather than undermining it. Even where a humidity target exists, the unit picks it based on the mode you chose. You're watching a number, not setting one. If your unit is a different series, different brand, or noticeably older, check your own manual before assuming any of this transfers. That goes double for non-Mitsubishi equipment, where "dry mode" is a shared marketing word for genuinely different control strategies. ## What the Remote Won't Show You Here's where this gets more interesting than a mode explainer usually does. Every limitation above comes back to the same root: you can't see the room. The remote shows a setpoint and a mode. It doesn't show humidity, it doesn't show what target dry mode picked, and it doesn't show whether the compressor is actually doing anything about it. A [CN105 controller](https://serin-labs.com/compatibility.html) changes what's visible. Both firmwares put the heat pump's live state somewhere you can look at it, and both let you add a room sensor that reads the air where you actually sit rather than the air at the ceiling — the [remote temperature sensor post](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) covers why that gap exists in the first place. ![The Serin controller's web UI remote-sensor panel: a Govee BLE thermometer reporting 74.3°F, 54% humidity, 100% battery and -55 dBm signal, with enable, room-temp, and sensor-timeout controls](https://serin-labs.com/assets/content/800/serin-web-ui-ble-remote-sensor.webp.c951618f6abb.webp) On the Apple Home firmware, a Bluetooth thermometer gets scanned and saved from the web UI, and the panel then shows that sensor's temperature and humidity alongside its battery and signal — that's what the [feature list](https://serin-labs.com/homekit/features.html) describes, and it's the screenshot above. On the [ESPHome side](https://serin-labs.com/esphome/setup.html), the controller lands in Home Assistant next to whatever humidity sensors you already own. Which unlocks the move dry mode itself can't make. Once a real humidity reading and a real room temperature are in the same place, you can compute the room's dew point and act on it — nudge the unit into dry mode when the air gets clammy at a comfortable temperature, and back out when it doesn't. That's the automation worth building, and it's automation, not a feature of the heat pump. The unit still has no humidistat. You just gave the system one from the outside. ## So Which Mode Should You Use? - **You're hot.** Cool mode, with a setpoint. Dry mode is not a quieter cool mode, and using it that way is why people conclude it "doesn't work." - **You're not hot, you're sticky.** Dry mode, and this is genuinely what it's for. Mild rainy days, spring and autumn, humid mornings before the day warms up. - **You need a humidity number held.** A standalone dehumidifier. No mini-split mode in these manuals will do it, and I'd rather say that than sell you a workaround. - **You want the decision made for you.** That's the controller-plus-automation path, and it needs a humidity sensor in the room, not in the ceiling. If you're going that route, the sequence is short: 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html) — one per indoor head. 2. Get the [board and cable](https://serin-labs.com/parts.html) or the [pre-assembled controller](https://serin-labs.com/controller.html), and [flash a firmware](https://serin-labs.com/flash.html). 3. Add a room sensor that reports humidity, then let the dew point pick the mode instead of your shirt. ## The Short Version Dry mode dehumidifies, cools the room slightly, and refuses to take a temperature — and Mitsubishi says all three of those things in plain English in the manual that shipped with your unit. It's the right mode for a mild, clammy day and the wrong mode for a hot one. It has no humidistat, no humidity readout, and no way to tell you what it's aiming at. Your mini-split has been quietly wringing water out of the air this whole time. Dry mode just stops pretending that was an accident. ## Related - [Put the temperature sensor where you actually sit](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) - [What the Apple Home firmware exposes](https://serin-labs.com/homekit/features.html) - [Set up the ESPHome firmware](https://serin-labs.com/esphome/setup.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # How to Add a Mitsubishi Mini-Split to Samsung SmartThings > Add a compatible Mitsubishi mini-split to Samsung SmartThings through Matter. Check hub requirements, pair the CN105 controller, and understand the thermostat's limits. Source: https://serin-labs.com/blog/mitsubishi-mini-split-smartthings.html Last updated: 2026-09-22 September 22, 2026 · Serin Labs Your lights and door sensors are already in SmartThings. The Mitsubishi mini-split still has its own remote, so the routine that turns the room off stops short of the heat pump. You can bring a compatible Mitsubishi indoor unit into **Samsung SmartThings** using a controller on its **CN105** service port. Install the Matter-compatible firmware, add it through a compatible SmartThings hub, and the unit appears as a thermostat. No Mitsubishi Wi-Fi adapter or Kumo Cloud account is required. The important purchase check is the hub. Having the SmartThings app on your phone does not, by itself, provide everything this route needs. **Quick Facts** - **Connection:** one CN105 ESP32 controller per compatible indoor unit. - **Hardware:** a supported board and cable, or the pre-assembled **Serin Controller**. Hardware arrives without firmware installed. - **Firmware:** free to install, beta, not Matter-certified, and not open source. - **SmartThings requirement:** the app, your Samsung account, and a compatible Matter hub. - **Network:** 2.4 GHz Wi-Fi with IPv6 enabled; Bluetooth is used during setup. - **Everyday controls:** power, Heat, Cool, Auto, target temperature, and reported room temperature. - **Additional controls:** use the controller's web interface for functions missing from the app. - **Subscription:** no Serin Labs subscription or account is required. ![The Serin Controller with its CN105 cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) The hardware connects to the indoor unit. You choose and install its firmware before pairing. ## How a Mitsubishi Becomes a SmartThings Thermostat The connection starts inside the indoor unit, not with a Samsung appliance integration. CN105 is the service connector used by compatible Mitsubishi equipment. The controller exchanges commands and status with the heat pump over that connection. Matter supplies the other half: a standard way for the controller to present itself to SmartThings. The hub talks to the controller over your home network; the controller talks to the indoor unit through the cable. You do not need a Home Assistant server between them. This is a two-way connection. The controller can read the unit's reported state rather than merely send an infrared command and hope it arrived. The factory handheld remote remains usable, too. After installation, checking that a remote change appears in the controller is a useful part of verifying the connection. It is still a thermostat integration. Adding the heat pump to SmartThings does not turn every Mitsubishi setting into an app button. ## Check the Indoor Unit Before Buying Anything Use the model number from the **indoor unit**, then enter it in the [compatibility checker](https://serin-labs.com/compatibility.html). Mitsubishi Electric model families differ, and some require closer attention to the suffix or an adapter. An outdoor-unit model number cannot settle which connector is available inside each head. The same check matters for Mitsubishi-built Trane and American Standard ductless systems. A familiar-looking cabinet is not enough evidence. This controller is not a universal accessory for Samsung, Daikin, Fujitsu, or other unrelated air conditioners. Count indoor units separately. Three heads on one outdoor system need three controllers if you want independent control of all three rooms. Putting one board in the living room does not expose the bedroom head. Also check whether CN105 is occupied. A factory Wi-Fi adapter or another controller may already use the connection. Do not plan on stacking accessories onto that port; review the [installation guide](https://serin-labs.com/controller/install.html) before replacing an existing connection. ## Which SmartThings Hub Do You Need? Samsung states that Matter devices need a [compatible SmartThings hub](https://partners.smartthings.com/matter). Check the exact model you own against its current guidance before ordering hardware. The SmartThings app and a Samsung phone are not substitutes for that hub. The distinction between Matter and Thread matters here. This firmware uses **Matter over Wi-Fi**. It does not need a Thread border router for its own connection, even if other accessories in your home do. Buying extra Thread hardware does not fix an unsupported SmartThings hub. Keep the hub, app, and phone software updated. The controller needs a usable 2.4 GHz Wi-Fi network, and the [Serin Matter setup guide](https://serin-labs.com/matter/setup.html#prepare) requires IPv6 on the home network. During initial setup, keep your phone close to the board for the Bluetooth exchange. If you are starting without a hub, include that purchase in your comparison. The controller is only one part of the setup. If you already have a suitable Google or Amazon hub, the [Google Home](https://serin-labs.com/blog/mitsubishi-mini-split-google-home.html) or [Alexa route](https://serin-labs.com/blog/mitsubishi-mini-split-alexa.html) may fit the hardware you own better. ## Install the Firmware and Connect the Cable The pre-assembled controller saves you soldering and cable assembly. It still needs firmware. Open the [browser flasher](https://serin-labs.com/flash.html?platform=direct) on a computer with Chrome, Edge, or Brave, using a USB-C cable that carries data. Choose **Google Home, Alexa & SmartThings**, the flasher's label for the Matter-compatible build. Use a board supported by the installer; the [parts list](https://serin-labs.com/parts.html) identifies suitable hardware if you are assembling your own. Save the Matter QR code or manual pairing code shown after installation. There is no separate Wi-Fi form for a fresh Matter setup. SmartThings supplies the network credentials during pairing. Following the HomeKit hotspot instructions at this stage would mix two different firmware workflows. Disconnect USB before connecting CN105. Turn off HVAC power at the breaker, leave it off while the indoor unit is open, and follow the [installation guide](https://serin-labs.com/controller/install.html) to seat the cable and position the board. Replace the cover before restoring power. Have an installer make that connection if opening the unit is outside your comfort level. ![A CN105 cable connected to the control board inside a Mitsubishi MSZ-GL06NA indoor unit](https://serin-labs.com/assets/content/800/serin-cn105-cable-connected-msz-gl06na.webp.a0c9c8ac7920.webp) A connected CN105 cable in an MSZ-GL06NA. Check your own model before opening the unit. ## Add the Controller in SmartThings With the board powered and your phone nearby: 1. Open SmartThings, tap **Add (+)**, and choose **Add device**. 2. Use the QR scanning option to scan the Matter code. Enter the manual code if scanning is inconvenient. 3. Select the compatible hub and room when prompted. 4. Follow the network prompts to supply your 2.4 GHz Wi-Fi credentials. 5. Review any uncertified-device notice. This beta firmware has not been Matter-certified. 6. Give the thermostat a useful name, such as **Bedroom Heat Pump**, and finish setup. Samsung documents the app flow in its [Matter integration instructions](https://support.smartthings.com/hc/en-us/articles/11219700390804-SmartThings-x-Matter-Integration). Labels can vary with app versions; the essential path is adding a Matter device with its pairing code. Then verify more than the presence of a tile. Check the reported room temperature, change the target or mode, and confirm the indoor unit responds. Pairing proves the app can reach the controller; it does not prove the cable is carrying heat-pump data. ## What You Can Control from SmartThings The [SmartThings controller overview](https://serin-labs.com/smartthings.html#controls) describes the supported thermostat controls. Plan your routines around those controls, rather than assuming the entire handheld remote appears in the app. | Function | Where to use it | | --- | --- | | Power, Heat, Cool, and Auto | SmartThings thermostat controls | | Target and reported room temperature | SmartThings thermostat controls | | Scenes and routines using exposed thermostat actions | SmartThings | | Fan speed and vane position | Controller web interface or handheld remote | | Dry and fan-only modes | Use the web interface or remote if absent from SmartThings | | Available diagnostics and logs | Controller web interface | Actual heating and cooling capabilities still depend on the indoor unit. A thermostat card cannot add heating to cooling-only equipment or remove a multi-zone system's operating constraints. To reach the extra controls, find the controller in your router's device list and open its local address in a browser. The [web-interface guide](https://serin-labs.com/controller/web-interface.html) explains the hostname and IP-address options. Keep that address bookmarked for adjustments the SmartThings card does not offer. ## Start with One Simple Routine A useful first routine is a scheduled temperature change in one room. Set it up using the actions SmartThings actually offers for that thermostat, run it manually, and check the result before relying on the schedule. Once that works, consider an away setting or a routine linked to a room's occupancy sensor. Those are examples to configure around your household, not measured energy-saving claims. A sensor going quiet does not necessarily mean everyone has left the room. For multiple heads, choose distinct names and check every action's target. A routine that changes the wrong bedroom can look like a heat-pump problem when it is simply pointing at another thermostat. The Matter connection between hub and controller is local. That does not mean every SmartThings feature is independent of the internet: account access, remote operation, and routines involving cloud services have their own dependencies. Test any particular routine you expect to survive an outage. ## If Pairing Works but the Heat Pump Does Not Separate the network side from the cable side. If SmartThings cannot add the accessory, check the hub's compatibility and availability, the Wi-Fi network, IPv6, and proximity during setup. If the QR code will not scan, try the manual code before reinstalling firmware. If a thermostat appears but reports no useful temperature or cannot change the unit, follow the [CN105 troubleshooting checks](https://serin-labs.com/troubleshooting.html#hvac-no-response). Repeatedly deleting the SmartThings tile will not reseat a connector. If you lost the code, reconnect to the flash tool or use the saved record in the browser that performed the installation. A missing browser record does not mean the board needs erasing. The [Matter troubleshooting guide](https://serin-labs.com/troubleshooting.html#matter) covers recovery without starting with a factory reset. ## Who This Route Fits Choose this route if SmartThings already runs your home, you have a compatible hub, and you want the heat pump in the same routines as the rest of the room. It avoids adding a Mitsubishi cloud account or a separate automation server. Choose a different route if unpublished beta firmware is a deal-breaker. The same supported hardware can run the established, open-source ESPHome or HomeKit-compatible builds, but those serve Home Assistant and Apple Home respectively. For another mini-split brand, investigate a compatible infrared controller or the manufacturer's own integration instead. To get started: 1. [Check the exact indoor-unit model](https://serin-labs.com/compatibility.html). 2. Confirm your SmartThings hub supports Matter. 3. Choose the [assembled controller](https://serin-labs.com/controller.html) or [DIY parts](https://serin-labs.com/parts.html), then follow the [SmartThings setup guide](https://serin-labs.com/matter/setup.html#smartthings). The thermostat belongs in the room's routine. The cable is what gets it there. ## Related - [SmartThings-compatible controller details](https://serin-labs.com/smartthings.html) - [SmartThings setup guide](https://serin-labs.com/matter/setup.html#smartthings) - [The Google Home route](https://serin-labs.com/blog/mitsubishi-mini-split-google-home.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Is It Cheaper to Leave a Mini-Split On All Day? > Inverter heat pumps are most efficient at low speed, which changes the leave-it-on question. What published lab and program guidance actually says, and a decision rule by how long you're gone. Source: https://serin-labs.com/blog/leave-mini-split-on-all-day.html Last updated: 2026-09-16 September 16, 2026 · Serin Labs Anyone who has lived with a furnace learned the same reflex: you're leaving, so turn it down. Then people install a mini-split and keep the reflex, and the argument starts. One of you switches it off on the way out; the other insists that makes the evening more expensive. Neither of you has a meter that settles it. So I went looking for who had measured it. The reflex is roughly wrong for a workday and roughly right for a long absence, with the boundary near half a day. Every claim below is somebody else's published work, linked where it appears. ## Quick Facts - **Short answer:** for a workday absence, holding a steady setpoint on an inverter mini-split is usually cheaper than switching it off and recovering later. Past about 12 hours away, a setback wins. - **Why it differs from a furnace:** an inverter modulates down instead of cycling off, and per [EPRI's field-test report](https://www.bpa.gov/-/media/Aep/energy-efficiency/emerging-technologies/ET-Documents/000000003002003925-Variable-Speed-Heat-Pump.pdf), "when operating at less-than-maximum capacity, the system efficiency tends to increase." - **How deep to set back**, per [BetterBuiltNW](https://betterbuiltnw.com/resources/avoid-deep-thermostat-setbacks-with-variable-capacity-heat-pumps): under 6 hours, none; 6–12 hours, two to three degrees; over 12 hours, five to eight degrees. - **Switching fully off** is right in mild shoulder weather when neither heating nor cooling is needed, per [NEEP's homeowner guide](https://neep.org/sites/default/files/GettingTheMostFromYourHeatPumpConsumerGuideFINAL.pdf) — which says the opposite in very cold weather. - **Deep setbacks force recovery at full compressor speed**, which BetterBuiltNW calls "the most inefficient full power mode." - **The "save 10% by setting back 7°–10°F" figure** is Department of Energy guidance for conventional systems, [quoted here by PNNL](https://basc.pnnl.gov/resource-guides/thermostat-controls). Not a heat-pump number. - **Multi-zone is a special case:** switching off individual indoor units can save nothing, or cost energy, if the remaining load drops below the outdoor unit's minimum capacity. ## Why "On" Means Something Different on an Inverter A single-speed heat pump has two states, and switching between them costs something. EPRI's field-test report: "inherent to this process is some cycling loss as the energy that was built up in pressurizing refrigerant dissipates." Your Mitsubishi doesn't work that way. [NEEP's cold-climate spec](https://neep.org/sites/default/files/resources/NEEP%20cold%20climate%20Air-Source%20Heat%20Pump%20Specification.pdf) requires that the "compressor must be variable capacity," and PNNL's [Building America Solution Center](https://basc.pnnl.gov/resource-guides/ductless-mini-split-heat-pumps) notes that on a ductless system "the inverter compressor allows the system to ramp down to as little as 10% of rated capacity." EPRI again: "Only when the load on the building is lower than the minimum capacity the heat pump can provide does the system cycle. This reduces cycling losses overall." Here's what inverts the furnace intuition: running slowly isn't merely less bad, it's more efficient. At reduced speed, EPRI says, the evaporator and condenser "become effectively 'over-sized' for the operating condition," which "allows more heat transfer per unit of refrigerant in the cycle, improving efficiency at part-load operation." Oak Ridge National Laboratory found the same in a research home: variable capacity units gain from "increased operation at part load conditions that yield higher efficiencies than full-load operation" ( [ORNL/TM-2013/581](https://info.ornl.gov/sites/publications/files/pub47553.pdf), Munk et al., 2014). NEEP puts it to homeowners in one line: "Cold climate heat pumps are designed to run almost continuously, at a very low level. The lower the speed, the more efficient they are." ## So Is It Cheaper to Leave a Mini-Split On All Day? For the eight or nine hours you're at work, the guidance says yes — or close enough not to fuss over. Efficiency Maine's [user tips](https://www.efficiencymaine.com/heat-pump-user-tips/) put it flatly: "Heat pumps operate most efficiently when holding a steady temperature. Turning heat pumps down when you're away or asleep may actually use more energy than leaving them on." And: "adjusting the temperature for short periods of time, such as overnight, will not save money with heat pumps." NEEP's guide has a heading that just reads "Set it and Forget it," and under it: "Avoid frequently adjusting the thermostat; try to keep indoor settings steady." Then the warning that matters here — "unlike conventional heating systems, deep setbacks of cold-climate heat pumps may cost you energy and money." And: "Avoid turning heat pump unit(s) 'on' and 'off' to control the temperature." In summer too — "'Set it and forget it' is effective when air conditioning, too." Now the other side, because it's real. A cooler house does lose heat more slowly, which is why setback works at all. DOE's rule of thumb, quoted by PNNL: "consumers can save as much as 10% per year on heating and cooling by simply turning the thermostat back 7°–10°F for eight hours a day from its normal setting." But that assumes a system whose efficiency is the same whenever it runs. An inverter's isn't. The question is whether the coasting saves more than the recovery costs — and over a workday, the sources say usually not. ## What Recovery From a Deep Setback Costs The penalty is concentrated in the hour after you come home. BetterBuiltNW is blunt: recovery from a deep setback "causes the heat pump's efficiency to plummet," because "the system will run in the most inefficient full power mode to quickly recover a room or house back to the original setpoint." Ductless and variable capacity heat pumps, they note, "are far more efficient when running at low speed than at full power." EPRI agrees: when a unit over-speeds its compressor, "the overall efficiency of the heat pump is reduced by this." Natural Resources Canada adds the timing problem. Their [heat pump guidance](https://natural-resources.canada.ca/energy-efficiency/energy-star/heating-cooling-heat-pump): "heat pumps have a slower response than furnace systems, so they have more difficulty responding to deep temperature setbacks," and the unit "may not be able to supply all of the heat required to bring the temperature back up to the desired level on short notice. This may mean that the supplementary heating system operates until the heat pump 'catches up.'" That last clause is where the biggest money goes — on systems that *have* supplementary heat. Hence PNNL's description of heat-pump thermostats built with "adaptive-recovery technology that directs the heat pump to minimize the use of costly auxiliary heating, which is typically electric resistance heat." Whether that applies to your unit is a question for your manual. What applies to every inverter is the first penalty: recovery runs where the unit is least efficient. Defrost worsens the cold-weather version. In ORNL's instrumented homes — which had electric resistance backup — "the drop in the indoor temperature during the defrost cycle was often enough to trigger supplemental resistance heat when the heat pump switched back to the heating mode after the defrost cycle." Even without resistance heat, a unit already behind loses ground each time it stops heating to clear its outdoor coil. NEEP is unambiguous: "Don't shut your heat pump off in very cold weather! If anything, turn it up a bit." ## Where the Guidance Disagrees, and What Nobody Can Tell You I'd rather show you the seam than pretend it isn't there. Natural Resources Canada does not say "never set back." It recommends "moderated setbacks of not more than 2°C," or a smart thermostat "that switches the system on early, in anticipation of a recovery from setback." And on the same page it argues in the *other* direction: "for variable speed systems, setbacks may allow the system to operate at a lower speed, reducing wear on the compressor and helping to increase system efficiency." Read that against NEEP's "deep setbacks may cost you energy and money" and you have a real split. It resolves mostly on the word *deep* — NRCan's 2°C cap is shallow, and shallow is what a gentle recovery absorbs. But the claim that a setback can be efficiency-*positive* on a variable-speed system is NRCan's, not mine, and NRCan is no fringe source. NEEP leaves its own door open: "It's fine to adjust temperatures up and down as needed for comfort (e.g. turn it down at night if you like it a bit cooler)." Three things nobody here can tell you: - **Your envelope.** A tight house barely drifts in eight hours, so the setback you dial in isn't the setback you get. A leaky house drifts far, saves more while you're out, and pays more to climb back. Same setting, opposite conclusion. - **Your climate and season.** Everything above shifts with outdoor temperature, and EPRI gives the reason: "as the temperature difference between indoor and outdoor increases, the efficiency of the cycle decreases." A January recovery in Vermont isn't an October one in Georgia. - **Your kilowatt-hours.** None of these sources measured your house, and I won't hand you a percentage that pretends otherwise. ## When You Should Actually Turn It Off The exceptions are the useful half of the answer. **Mild shoulder season.** NEEP is direct: "Set the unit to 'off' when outside temperature is mild and no heat or air conditioning is needed." In October and April, "on all day" mostly means chasing a setpoint the weather would have given you free. **Long absences.** A weekend away isn't a setback question, it's a shutdown question. BetterBuiltNW's tiering hands it to a conventional setback. **Multi-zone, carefully.** With several heads on one outdoor unit, shutting off the unused rooms feels thrifty. PNNL says the savings "can range from modest to negative. It can be negative energy savings if turning off indoor units causes the heating or cooling load to drop below the minimum capacity of the outdoor unit, causing it to cycle on and off." Shrink the load too far and you've rebuilt the on/off machine you paid extra to avoid — more on [multi-zone control](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html). **Not in a cold snap.** The one that costs most when you get it wrong. ## The Decision Rule, in Plain Language BetterBuiltNW published the clearest version I found, written for ductless heat pumps and keyed to how long you're gone rather than the season: | How long you're away | What to do | Source | | --- | --- | --- | | Under 6 hours | No setback — hold the setpoint | BetterBuiltNW: "< 6 hours: No setback" | | 6–12 hours (a workday) | Two to three degrees, no more | BetterBuiltNW: "6-12 hours: 2-3 degree setback" | | More than 12 hours | Five to eight degrees | BetterBuiltNW: "12+ hours: 5-8 degree setback" | | Days away, mild weather | Off | NEEP: off "when outside temperature is mild and no heat or air conditioning is needed" | | Days away, cold weather | Setback, not off | NEEP: "Don't shut your heat pump off in very cold weather!" | Two amendments. NRCan caps a routine daily setback at about 2°C (roughly 3–4°F), landing on BetterBuiltNW's workday tier. And if the setback is scheduled, both NRCan and PNNL want recovery started early and ramped gently, not demanded at 5 p.m. sharp. If you remember one thing: **the shorter the absence, the shallower the setback, and under six hours don't bother.** ## Making the Rule Automatic — and Checkable A rule with tiers is the kind of thing nobody executes by hand for long, which is where a controller helps — a small part of the answer, not the answer. The [Serin controller](https://serin-labs.com/controller.html) is an ESP32 board that plugs into the CN105 service port already inside most Mitsubishi indoor units, and you flash one of two free open-source firmwares onto it yourself. Neither is ours; both are separate community projects, [compared here](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html). On the [ESPHome firmware](https://serin-labs.com/esphome/setup.html) the unit becomes a Home Assistant climate entity, so an early, gently-ramped setback is an automation instead of a habit. And the [Apple Home firmware's diagnostics](https://serin-labs.com/homekit/features.html) expose compressor frequency, outside temperature, runtime hours, and sub-mode state — whether your unit is loafing or grinding at full power. Every claim in this post is about compressor speed. You can watch yours. One caveat that undercuts the exercise if you skip it: a mini-split senses return air near the ceiling, so "holding 70" may not be holding 70 where you sit — [why, and how to fix it](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html). ![Cross-section of a living room: warm air (red) collects at the ceiling where the mini-split's sensor reads, while cooler air (blue) settles at couch height where a person sits](https://serin-labs.com/assets/content/800/mini-split-air-temperature-stratification-diagram.webp.1fc65b445047.webp) If you'd rather not add hardware, the rule works fine typed into a handheld remote. It just requires you to be the automation. ## The Short Version - **Out for the day.** Leave it alone, or take it down two or three degrees. This is where the furnace reflex costs you. - **Gone longer, or on vacation.** Set back five to eight degrees, and recover early rather than fast. Off only if the weather is mild. - **Multi-zone owner.** Think twice before shutting individual heads off; below the outdoor unit's minimum, you've reintroduced cycling. Three steps: 1. Pick your tier from the table and set the schedule once, in whatever controls you already have. 2. To enforce it automatically and watch the compressor behind it, [check your unit for a CN105 port](https://serin-labs.com/compatibility.html) and read the [controls comparison](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) first. 3. Make sure the setpoint you're holding refers to the air you sit in, not the air at the ceiling. Your furnace rewarded you for fiddling with it. Your mini-split rewards you for leaving it alone — right up until you leave the house for more than half a day. ## Related - [Every way to make a Mitsubishi mini-split smart](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) - [Fix the wrong-temperature problem](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) - [Set up the ESPHome firmware](https://serin-labs.com/esphome/setup.html) - [What the Apple Home firmware exposes](https://serin-labs.com/homekit/features.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Kumo Cloud Not Working? Five-Minute Triage, Then a Decision > Kumo Cloud offline, stuck loading, or refusing your login? Triage in likelihood order — the Comfort app migration, local control, the Signal screen, adapter LEDs, router settings — sourced from Mitsubishi's own manual. Source: https://serin-labs.com/blog/kumo-cloud-not-working.html Last updated: 2026-09-12 September 12, 2026 · Serin Labs The house is cold, it's quarter past six, and the app that runs your heat pump is showing a grey tile and a spinner. You don't want an essay about cloud architecture right now. You want heat. So here's the triage, in likelihood order. Step two gets your house warm again even when everything else is broken — if you read one section, read that one. Three things sit between your thumb and your heat pump and fail independently: the **app**, the **Wireless Interface** (Mitsubishi's Wi-Fi adapter, on the CN105 port inside the indoor unit), and **Mitsubishi's servers**. A grey offline tile looks identical in all three cases. The fastest split, before you touch anything: **is it one zone or all of them?** Each indoor unit has its own adapter, so one head down while the others are fine points at that adapter. Everything down at once points at your router, your internet, your account, or the far end. ![The Kumo Cloud app dashboard showing several Mitsubishi mini-split zones, one heating and the rest powered off](https://serin-labs.com/assets/kumo-cloud-app-dashboard.webp) **Quick Facts** - **The app changed.** Mitsubishi Electric announced the **Comfort app** on **9 December 2025**, describing it as "a replacement for kumo cloud®." - **Old adapters need the old app.** The first-generation **PAC-WHS01WF-E** doesn't work with Comfort; Mitsubishi keeps a separate **kumo cloud legacy** app for it, and says kumo cloud "will be decommissioned soon." - **Current adapter:** **PAC-USWHS002-WF-2** (Wireless Interface 2), on the **CN105** port — one per indoor unit. - **An internet outage doesn't stop local control.** With your Wi-Fi up you can still change temperature from a phone inside the house; remote access and schedules are what break. - **Network requirements:** 2.4 GHz only, channels 1–11, WPA2-PSK (AES). It will not join a 5 GHz network or an unsecured one. - **Mitsubishi Electric US support:** 800-433-4822. Unless another source is named, every technical claim below comes from the kumo cloud 2.22 [Technician Manual for Installer](https://s3.amazonaws.com/enter.mehvac.com/DAMRoot/Original/10007/kumo_cloud_2.22_technician_manual_ver.13_FINAL-2-update.pdf) (© 2023 Mitsubishi Electric US, Inc.), checked August 2026. ## Step 1: Are You Still on the Right App? On 9 December 2025 Mitsubishi Electric [announced the Comfort app](https://www.mitsubishicomfort.com/press-releases/Comfort-app-by-Mitsubishi-Electric-Delivers-Smart-Heating-and-Cooling) and called it, in their words, "a replacement for kumo cloud®." The App Store listing for **Comfort by Mitsubishi Electric** carries the old kumo cloud app's version history, including a release note stating "Comfort app is the new kumo cloud." The catch is the hardware. Mitsubishi's [kumo cloud® legacy](https://apps.apple.com/us/app/kumo-cloud-legacy/id6739037964) listing spells it out: > "A new version of the kumo cloud app called Comfort app is available in the App store. This version of the kumo cloud app is available just to support the existing old PAC-WHS01WF-E adapters as they do not work with the new Comfort app. […] Please upgrade the adapters to the PAC-USWHS002-WF-2 as soon as possible as the kumo cloud app will be decommissioned soon." So the question that resolves a surprising share of "Kumo Cloud stopped working" reports is: **which adapter do you have, and which app are you holding?** A **PAC-WHS01WF-E** needs the legacy app, because Comfort won't talk to it. A newer Wireless Interface belongs on Comfort — Mitsubishi names only the PAC-WHS01WF-E as the one Comfort leaves behind. The part number is on the adapter's label, with details you'll want in step six. Mitsubishi has not published a date for that decommissioning. The listing says "soon," so treat the legacy app as borrowed time. ## Step 2: Can You Still Control It from Inside the House? Before diagnosing anything, get the heat back on. The manual's FAQ answers this directly: > "If service from the internet service provider (ISP) goes out will kumo cloud still work? > > Yes! As long as the local wireless network is functioning, you can change the temperature using a smartphone/tablet from inside the house." The qualifier: "Remote operations will not work," and programme or zone-name changes won't reach your other devices until the connection returns. Practically, **get your phone onto the same Wi-Fi as the adapter** and try again. Not cellular, not the guest network — the manual says elsewhere that when zones don't appear you should "check that the Wireless Interface and the smartphone/tablet are connected to the same network." After a power cut, the app works again "as soon as power returns to the equipment and the local network," though schedules stay interrupted until internet service returns. And the fallback that never fails — **the handheld remote still works.** Per the manual, "Whichever control was adjusted last takes effect." Whatever the app or the servers are doing, that little white remote sets your temperature. Your house needn't be cold while you work through the rest. ## Step 3: What the Signal Screen Actually Tells You The app ships with a diagnostic that separates local problems from upstream ones, buried where nobody finds it. Open the unit's settings and tap **Signal**. It reports two readings, not one: | Reading | What it measures | What "bad" looks like | | --- | --- | --- | | **Unit to Wi-Fi** | Adapter to your router | "Weak signal to WiFi", "No signal to WiFi" | | **Router to kumo cloud** | Your network to Mitsubishi | "No signal" instead of "Signal live" | That second row tells you whether the problem is even yours. The manual's guidance for each: - **No signal or very weak from the unit to the network** — "consider relocating the Wireless Interface, relocating the router or adding a repeater." Your problem; steps four to six. The manual also names Mitsubishi's **PAC-WHS01IE-E** IT Extender here. - **No signal from the Router to kumo cloud** — "check the local wireless network for problems including connection with the internet." Read it plainly: if the adapter reaches your router but the router-to-cloud row is dead, what's broken is past your front door. No amount of resetting will change that. ## Step 4: Reading the Adapter's Lights Worth a look, with a caveat: Mitsubishi documents a small vocabulary here, not a fault-code table. Three readings, each with the manual's wording and what it means for you: - **No green.** "The green light glows when power is connected." No green means no power — a seating or supply problem at the indoor unit, not a cloud problem. - **Four quick blue flashes you didn't ask for.** "Four quick, blue flashes indicate Bluetooth LE configuration mode." It's waiting to be provisioned, which is the signature of lost Wi-Fi credentials — exactly what a new router or a changed password produces. - **Three slow blue flashes.** "Three slow, blue flashes repeat after connection is complete." It believes it's connected; pair that with step three. There's no documented pattern for "the cloud is down," and amber appears only during a factory reset, step six. Seeing any of this means opening the front panel. Kill power at the breaker first, and if that makes you uneasy, call your installer — the manual is clear this is professional work. ## Step 5: The Router Settings That Actually Break It This is where "it worked for two years and then stopped" almost always lands. You didn't change anything — your router did. The manual repeats one ATTENTION block on nearly every setup page: - "The Wireless Interface 1 and 2 **must connect to a 2.4 GHz Wi-Fi® network**… **will not work on a 5 GHz Wi-Fi network**… can only connect to **Wi-Fi channels 1-11**." - "For the best performance connect the Wireless Interface 1 and 2 to a **2.4 GHz only SSID**, but there are some multi-band Wi-Fi networks that can correctly manage a 2.4 GHz only device." - "kumo cloud® assumes the local network is using common **WPA2-PSK (AES)** security. It will not connect to unsecured networks." As a checklist: 1. **New router, or a changed Wi-Fi password?** That's your answer. It needs re-provisioning, not repair. 2. **One combined 2.4/5 GHz SSID.** Mitsubishi's wording — some multi-band networks *can* manage a 2.4 GHz-only device — does quiet work. If your router can split the bands, split them. 3. **Channel above 11.** Some routers reach 12 or 13 by region. Pin the 2.4 GHz band to 1, 6, or 11. 4. **Security mode.** The manual commits only to WPA2-PSK (AES) and says nothing about WPA3, now a router default. If yours is WPA3-only, try dropping the 2.4 GHz band to WPA2 (AES) — an inference from what the manual does say, not a documented Mitsubishi position. An open guest network it won't join at all. ## Step 6: Resets, in the Right Order Last, deliberately. This is where you can turn a bad morning into a worse one. **Before you reset anything, read the adapter's label** and write down the Adapter ID, MAC address, and WPA key. The first two drive the manual-setup path ("Enter the Adapter ID and MAC Address found on the back of the Wireless Interface"), and the manual warns that a unit removed and later "re-added to a different account" will need "the WPA key from the back of the Wireless Interface." Learning that after you've buttoned the panel back up is a bad afternoon. Then, gentlest first: 1. **Restart the app, then sign out and back in.** Separates an expired session from an offline adapter. 2. **Restart the router**, then **power-cycle the indoor unit** at the breaker. 3. **Back to configuration mode — non-destructive.** "Use the configuration button to switch from the wireless network mode back to the Bluetooth LE configuration mode. Push, hold 5 seconds and release." This hands it new Wi-Fi credentials without erasing anything — the fix for the four-quick-flashes state above. 4. **Factory reset — two procedures, and they are not the same thing.** The manual frames both as something "technical support may suggest," a fair signal about where they belong: - **Revert to factory firmware:** "Push and hold the factory reset button until the amber LED turns on (about 5 seconds), then release." - **Revert to factory firmware *and erase all user settings*:** "push and hold the factory reset button. Wait until the amber LED turns on and then begins to blink (about 8 seconds), then release the button." Five seconds and eight seconds are three seconds and a whole afternoon apart. Watch the amber LED, not the clock. ## When It Isn't Yours to Fix Some of these failures are Mitsubishi-side, and nothing you do at home will fix them. That isn't a dig — it's the arrangement of any cloud service: an account system, an API, and servers in someone else's building, outside your reach by design. The tell is the combination from step three — local control works, unit-to-Wi-Fi reads Strong, router-to-cloud dead. Or a login that fails with credentials you know are right. Your options then: wait, use local control from step two, or pick up the remote. I won't pad this with a list of past outages. I have no dated primary record of specific Kumo Cloud incidents, so anything I wrote would be hearsay you couldn't check. What I can report is what I could and couldn't verify: - I found **no public Mitsubishi service-status page** for either app — no dashboard, no incident feed. - The homeowner help centre at `help.mitsubishicomfort.com` **requires a login**, so you can't consult it while you're locked out. - The support line in the technician manual is **800-433-4822**. Which leaves the phone, and a phone queue at 6 a.m. is not a fix. ## The Fork: Fix It Again, or Stop Depending on It If step one sorted it — wrong app, right adapter — you're done. Go and enjoy the heat. But if this is the second or third time you've worked a list like this, the question stops being "how do I fix it" and becomes "how many of these failure modes do I want to keep owning?" Of the six steps above, two are about the heat pump. The rest are about an app version, an account, and a server you'll never see. The alternative is to put the control loop inside your house — the same CN105 port takes a small ESP32 board running open-source firmware instead, argued in full in [the Kumo Cloud alternative post](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html). Three things it costs you: - **It's one port, so it's a swap.** Most units have exactly one CN105 and the adapter is in it, so you'd give up the Comfort app rather than run both — [the full comparison](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) covers that trade. - **You give up the support line.** The firmware is community open source, not Serin Labs' own work; [the licences page](https://serin-labs.com/licenses.html) records who wrote what. - **Multi-zone multiplies.** One board per head at $35 [pre-assembled](https://serin-labs.com/controller.html), each needing a [browser flash](https://serin-labs.com/flash.html) — [the multi-zone post](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html) does the arithmetic. ## Where to Go From Here - **Your zones came back at step one or two.** Nothing more to do. Note your adapter's part number while it's on your mind. - **You're on a PAC-WHS01WF-E.** Move to the legacy app today, and treat the hardware upgrade as a when, not an if. - **Router-to-cloud is dead but local control works.** It isn't your network. Use the local path or the remote. - **You've reset this adapter more than once.** That pattern is worth acting on. Any single outage isn't. The short version, in order: 1. Confirm which adapter you have and which app it needs. 2. Get on your home Wi-Fi and try again — local control survives an internet outage. 3. Read the Signal screen. It tells you whether the problem is even yours. 4. Then work outward: LEDs, router settings, resets — gentlest first. 5. If you land here often, [check your unit for CN105](https://serin-labs.com/compatibility.html). A thermostat that needs an account, an app migration, and someone else's servers to change the temperature in your own house is a lot of moving parts for one job. Today, get it working. Then decide how many of those parts you want to keep owning. ## Related - [The best Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [The Serin controller](https://serin-labs.com/controller.html) - [Every way to make a Mitsubishi mini-split smart](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Mitsubishi Model Numbers, Decoded: MSZ, MSY, GL, FS, FH, and the Letters That Matter > What every part of a Mitsubishi mini-split model number means, decoded from Mitsubishi's own reference guides — plus the letters they never published a key for. Source: https://serin-labs.com/blog/mitsubishi-model-numbers-explained.html Last updated: 2026-10-02 September 9, 2026 · Serin Labs You've got the front flap open and a label staring back at you that reads something like **MSZ-FH12NA**. Seven characters, and every one of them means something. Search for what they mean and you'll find a dozen forum posts, each stated with total confidence, half of them contradicting each other. Here's the thing: Mitsubishi publishes a model reference guide. Most of that string decodes cleanly from it. And the parts that don't decode are worth knowing too, because the letters people argue hardest about on forums are exactly the letters Mitsubishi never published a key for. So this is the honest version. Sourced where I could source it, and explicitly blank where I couldn't. ![The model-number label on a Mitsubishi Electric indoor unit, reading MSZ-FH12NA, a wall-mounted single-zone heat pump](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) **Quick Facts: Reading a Mitsubishi Model Number** - **First letter, M or S:** Mitsubishi's M-Series Model Reference Guide lists both as "Mini-split." - **Second letter is where it mounts:** `S` wall-mounted, `E` horizontal-ducted, `F` floor-mounted, `L` ceiling cassette, `V` multi-position air handler, `U` single-zone outdoor, `X` multi-zone outdoor. - **Third letter is what it does:** `Z` = heat pump (inverter-driven), `Y` = cooling only (inverter-driven). MSZ heats and cools. MSY only cools. - **The number is nominal capacity, BTU/H × 1,000.** MSZ-FH12NA is rated 12,000 BTU/h cooling on its Mitsubishi submittal sheet. Nominal is a size class, not the rated figure — MSY-GL15NA is rated 14,000. - **`N` = 208/230V, `W` = 115V.** The `A` that usually follows is the control-method position. - **The two-letter series code — FH, GL, FS, GS, EF — has no published key.** Mitsubishi names the position and doesn't say what the letters stand for. - **The trailing suffix is what decides CN105 compatibility** on several series. MSZ-FE09NA-8 has the port; MSZ-FE09NA doesn't. ## What Each Position in a Mitsubishi Model Number Means Mitsubishi Electric Trane HVAC publishes an [M-Series Model Reference Guide](https://cdn.designair.com/Resources/MitsubishiElectricTraneHVAC_00914_6_40-42_CAT.pdf) in its M-Series catalog (pages 40–42; the copy I worked from is distributor-hosted). It's one annotated diagram, and it does most of the work. The guide's worked example is an outdoor unit, `MXZ-2C20NAHZ2-U`, with twelve labelled fields. Applied to an indoor unit, MSZ-FH12NA falls out like this: | Position | Mitsubishi's field name | In · `MSZ-FH12NA` | | --- | --- | --- | | 1 | Family | `M` · — Mini-split | | 2 | Type | `S` · — Wall-mounted Indoor Unit | | 3 | Cooling Only / Heat Pump | `Z` · — Heat Pump (INVERTER-Driven) | | 4–5 | System generation / series | `FH` · — · **no published key** | | 6–7 | Capacity (Nominal) | `12` · — BTU/H × 1,000 | | 8 | System Voltage | `N` · — 208/230V | | 9 | Control Method | `A` · — Control | | trailing | Model Version, Service Reference Number | none on this model | Two things stand out. The guide gives `M` and `S` the same definition — "Mini-split" — so the first letter tells you little on its own. And characters four and five, the two letters that name the series everybody shops by, sit in a position the guide labels but never enumerates. That second point is the whole reason this post exists, so I'll come back to it. ## MSZ vs MSY: The Letter That Decides Whether It Heats This is the highest-stakes character in the string, and it's the third one. The reference guide's Cooling Only / Heat Pump field is unambiguous: `Z` = Heat Pump (INVERTER-Driven), `Y` = Cooling Only (INVERTER-Driven). An **MSZ-GL12NA** is a heat pump. An **MSY-GL12NA** is the same wall-mounted body that only makes cold air. Same shape on the wall, same install, one of them useless in February. The pattern holds across the range, which is the best evidence it's a rule rather than a coincidence. Outdoor units follow it: MUZ heats, MUY doesn't. Mitsubishi Electric Sales Canada's [P-Series guide specification](https://www.mitsubishitechinfo.ca/sites/default/files/Guide%20Spec%20P-Series%20N%28K%29%28H%29A7_201904_v01.pdf) covers the light-commercial outdoor line as "PUZ/PUY" under a heading that reads "Heat Pump and Cooling Only." Same letters, same meaning, different product family. For local control it changes nothing. Our [compatibility data](https://serin-labs.com/compatibility.html) records MSY units as running the same control board as their MSZ equivalents, so the CN105 answer follows the series, not the Z-or-Y. MSY-GL and MSY-GS are fine. MSY-GE and MSY-D are suffix-dependent. MSY-A has no usable control port at all. ## Where Does It Mount? The Second Letter The Type field is the one that tells you what you're looking at without seeing the unit. Straight from the guide: | Letter | Type | Prefixes you'll see | | --- | --- | --- | | `S` | Wall-mounted indoor unit | MSZ, MSY | | `E` | Horizontal-ducted indoor unit | SEZ | | `F` | Floor-mounted unit | MFZ | | `L` | Ceiling cassette indoor unit | MLZ, SLZ | | `V` | Multi-position air handler | SVZ, MVZ | | `U` | Single-zone outdoor unit | MUZ, MUY, SUZ | | `X` | Multi-zone outdoor unit | MXZ | Those last two rows matter more than they look. Second letter `U` or `X` means you're reading the outdoor unit, and it has no CN105 port for a controller. Go back to the indoor head. On a [multi-zone system](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html) that's one label per head, not one for the whole system. P-Series and City Multi use a different family letter but the same idea. The [City Multi Indoor Unit Model Number Reference Guide](https://www.trane.com/content/dam/Trane/Commercial/global/products-systems/equipment/ductless/literature-web/city-multi-pages-r2-series,-y-series,-controls,-accessories/CMOutdoor_ModelNumberGuide_T.pdf) (Mitsubishi Electric Trane HVAC US, SKU ME-50-1005-01, 2019) publishes the key: Model Family `P` = Packaged AC, then an Application letter — `K` Wall Mounted, `L` Ceiling Cassette (4-way), `M` Ceiling Cassette (1-way), `C` Ceiling Suspended, `E` Ceiling Concealed Ducted, `F` Floor Standing, `V` Multi-position Air Handler. So **PEFY** is P + E (concealed ducted) + FY (the guide's "Indoor Unit" code). The P-Series guide spec confirms the same mapping by name for the Mr. Slim line: "PCA Ceiling Suspended Type, PEAD Ducted Type, PKA Wall Mounted Type, PLA Ceiling Cassette Type, PVA Ducted Air Handler." ## What Do the Numbers in a Mitsubishi Model Number Mean? Capacity, in thousands of BTU per hour. The reference guide states it plainly: "Capacity (Nominal) BTU/H (X 1,000)." So `09` is a nine, `12` a twelve, `18` an eighteen. Nominal is doing real work in that sentence, and it's where a lot of spec-sheet arguments start. The word means *size class*, not measured output. Two examples from Mitsubishi's own tables: - The [MSZ-FH12NA submittal sheet](https://www.mitsubishitechinfo.ca/sites/default/files/SB_MSZ-FH12NA_%26_MUZ-FH12NAH%28-1%29_201910.pdf) (Mitsubishi Electric Sales Canada, doc SB_MSZ-FH12NA_&_MUZ-FH12NAH(-1)_201910) lists cooling rated at exactly 12,000 Btu/hr. The code matches. - The M-Series catalog's own performance table lists **MSY-GL15NA** rated at 14,000 Btu/h and **MSY-GL24NA** at 22,500. The codes don't match, and they aren't meant to. The P-Series numbers land on the nose more often. That guide spec's capacity table runs PUZ(Y)-A12 at 12,000, A18 at 18,000, A24 at 24,000, A30 at 30,000, A36 at 36,000, A42 at 42,000 Btu/h cooling. Practical upshot: use the number to know roughly what size box you own. Use the submittal sheet if you need the actual figure. ## GL, FS, FH, GS: The Letters Mitsubishi Never Decoded Here's the part where most write-ups on this topic quietly start guessing. The reference guide has a position for those two letters. It does not publish a table saying `GL` means one thing and `FH` another. I checked the M-Series catalog, the P-Series guide spec, a submittal sheet and the City Multi nomenclature guide. None decodes a series code letter by letter. So I won't tell you that G stands for anything, because I can't show you where it came from. What *is* documented is what specific series are, as products: - **MSZ-FH** is Hyper-Heat. Mitsubishi's own announcement introduces "the Hyper-Heating INVERTER® (H2i®) MSZ-FH models" ( [May 2014](https://www.mitsubishicomfort.com/press-releases/slash-energy-costs-boost-comfort-control-with-industry-s-most-efficient-cooling-and-heating-system)). Its submittal sheet backs the behavior up: 13,600 Btu/h rated heating at 5°F, with a low-ambient heating cut-out down at -18°F. - **MSZ-FS** is the newer hyper-heating pairing. Mitsubishi describes H2i plus™ delivering "100 percent capacity in outdoor temperatures as low as -5° F," and states that "the new MUZ-FS heat pumps pair with MSZ-FS Wall-mounted Indoor Units" ( [May 2024](https://www.mitsubishicomfort.com/articles/introducing-deluxe-wall-mounted-h2i-plus-system)). - On outdoor units specifically, hyper-heating gets its own documented position. The reference guide's Hyper-Heating Designation field reads `Z` = H2i® Hyper-Heating — that's the `HZ` you see on a model like MXZ-2C20NAHZ2, not the Z in MSZ. That distinction is worth holding onto. The `Z` in **MSZ** means heat pump; the `Z` in a trailing **HZ** means Hyper-Heat. Same letter, different position, different meaning — and conflating them is how forum threads go sideways. Everything else — GL versus GS, EF, AP, LN, HR, SF, and the 2025 low-GWP FX/GX/HX/WX/EX/JX generation — I can tell you which one is which product and whether it takes a controller. I can't tell you what the letters stand for, and neither, as far as I can find, can Mitsubishi's published literature. ## The Suffix Is the Part That Actually Decides Compatibility If you're decoding a model number to answer "will a controller work on this," the front of the string tells you less than the tail does. Several North American series carry a CN105 port on some trims and not others. Same series name, same capacity, different suffix, different answer. These four rows come straight out of our compatibility data, which sources them from Mitsubishi's official M-Series controls compatibility table: | Series | Has CN105 | Doesn't | | --- | --- | --- | | MSZ-FE | FE09NA-8, FE12NA-8, FE18NA | FE09NA, FE12NA | | MSZ-GE, MSY-GE | GE09NA-8, GE24NA, GE25VA | GE06NA–GE18NA, no suffix | | MSZ-D, MSY-D | `-NA-8` · trims | base · `-NA` · trims | | SEZ-KD | KD09NA4, KD12NA4R1, KD25VAQ | KD09NA | I can't source what `-8` itself stands for. The reference guide names Model Version and Service Reference Number as positions without enumerating their values, so anyone telling you `-8` means a specific thing is going past the documentation. What I can tell you is which trims Mitsubishi lists as controls-compatible — the question you actually care about. And a handful of wall units are marked "NO" outright in that table — **MSZ-FD**, **MSZ-HE**, **MSZ-A / MSY-A**, and **MS-WA**. Some MSZ-A boards physically have a CN105 connector fitted that isn't wired for control. The port being present doesn't overrule the table. If that's your unit, [there are still options](https://serin-labs.com/blog/mitsubishi-no-cn105-port-options.html), and a controller on CN105 isn't one of them. ## Every Prefix on the Compatibility List, Decoded Putting the two halves together — the letters from Mitsubishi's guides, the verdicts from our own [compatibility data](https://serin-labs.com/compatibility.html): | Prefix | Decodes as | Compatibility summary | | --- | --- | --- | | MSZ | Mini-split · wall-mounted · heat pump | Most series compatible; FD, HE, A are not; D, FE, GE are suffix-dependent | | MSY | Mini-split · wall-mounted · cooling only | Same board as the MSZ equivalent, same caveats | | MSXY | **not covered** · by the guides I could source | Starmex-branded, Asia-Pacific; confirmed compatible | | MFZ | Mini-split · floor-mounted · heat pump | KX, KJ, KA compatible; KT — verify CN105 is present | | MLZ / SLZ | Mini-split · ceiling cassette · heat pump | Compatible | | SEZ | Mini-split · horizontal-ducted · heat pump | SEZ-M compatible; SEZ-KD suffix-dependent | | SVZ / MVZ | Mini-split · multi-position air handler · heat pump | Compatible | | PEAD / PVA | Packaged AC · ducted / air handler | PVA compatible; PEAD suffix-dependent on the NA · `AA` · trims | | PKA / PCA / PLA | Packaged AC · wall / ceiling-suspended / cassette | Suffix-dependent; the newest trims have CN105, several older ones don't | | PEFY | Packaged AC · concealed ducted · indoor unit | Newer units native; older may need a PAC-IT51AD-E adapter | | MUZ / MUY / SUZ / MXZ | outdoor units | No CN105 for a controller — read the indoor label | Trane and American Standard ductless models — NAXWST, NTXWPH, NTXWST, NTYWST, NTXWMT, NTXWEL and the rest — don't follow this scheme at all, because they're [badged differently on the same Mitsubishi hardware](https://serin-labs.com/blog/trane-american-standard-ductless-smart-control.html). ## What the Model Number Won't Tell You Honest limits, because a decoder that overpromises is worse than no decoder: - **Series letters stay undecoded.** GL, GS, FS, EF, AP, LN, HR, SF, YK and the rest. Products, not puzzles. - **European and Asia-Pacific suffixes aren't covered.** The `VGK`, `VG2`, `VE`, `VF` tails on models like MSZ-AP25VGK or MSZ-LN25VG2 sit outside every North American document I used. They don't change the CN105 answer, but I can't decode them. - **MSXY and MS-WA don't fit the scheme.** MSXY has a fourth letter the guide has no slot for, and MS-WA has no cooling/heating letter at all. - **The label doesn't know about wiring.** A `Z` tells you it's a heat pump. It doesn't tell you whether that board's CN105 is wired for control. - **This is Mitsubishi *Electric*.** SRK, SRC and SRF are Mitsubishi Heavy Industries, a different company with a different protocol. Ecodan and Zubadan air-to-water units have a CN105 connector that speaks a different dialect. ## Decode Your Own Number in Four Steps Which of these you are decides what to do next: - **You're checking whether a controller will fit.** The prefix gets you 80% of the way; the suffix decides it. Skip straight to the checker. - **You're comparing two units before buying.** Third letter first — Z or Y — then the capacity code, then pull the submittal sheet for the real numbers. - **You inherited the system and want to know what you've got.** Second letter for where it mounts, capacity code for how big, series code for which generation. - **You're staring at an outdoor unit.** Second letter `U` or `X` means you're at the wrong end. Open the indoor head. Then: 1. Find the label on the indoor unit, usually on the right side behind the front flap. The [CN105 port walkthrough](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html) shows where to look and what to look for. 2. Read the whole string, suffix included. `-8`, `NA4`, `VA` — those characters are the answer, not clutter. 3. Type it into the [model checker](https://serin-labs.com/compatibility.html) for a straight verdict on your exact trim. 4. Compatible? [Get the board and cable](https://serin-labs.com/parts.html), one set per indoor head. Mitsubishi documents most of that label, and the parts it doesn't document are the parts the internet is most confident about. Decode what's written down, look up the rest. ## Related - [Check your model — instant compatibility answer](https://serin-labs.com/compatibility.html) - [Does your Mitsubishi have a CN105 port?](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html) - [No usable CN105 port? What still works](https://serin-labs.com/blog/mitsubishi-no-cn105-port-options.html) - [Multi-zone systems, one board per head](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # How to Add a Mitsubishi Mini-Split to Alexa > Two working routes from a Mitsubishi mini-split to Alexa: a $35 CN105 controller paired through an Echo, or ESPHome through Home Assistant. Which Echo models qualify, and what the Alexa app can control. Source: https://serin-labs.com/blog/mitsubishi-mini-split-alexa.html Last updated: 2026-09-05 September 5, 2026 · Serin Labs Ask Alexa to turn the bedroom heat pump down and the answer is that no device by that name exists. Not a phrasing problem. There really is no device. A Mitsubishi mini-split arrives with a handheld remote and, if someone paid for it, a factory Wi-Fi adapter. Neither is an Alexa device. The gap between a good heat pump and a house full of Echo speakers is why this search exists. Two things close it. A $35 board on the indoor unit's **CN105** service port can pair into Alexa through an Echo you probably already own. Or, in a house already running Home Assistant, the same board on ESPHome reaches Alexa through it. There's also a factory answer worth taking seriously first. ![The pre-assembled Serin controller beside the Alexa app thermostat card for a Mitsubishi mini-split, showing a 72 degree target and the current 68 degree room temperature](https://serin-labs.com/assets/content/800/alexa-mini-split-hero.webp.0f144ea526ab.webp) A $35 board on the service port, and the mini-split as an Alexa thermostat. **Quick Facts: Mitsubishi mini-splits in Alexa, as of August 2026** - **Direct route:** an ESP32 board on the indoor unit's CN105 port running the firmware, added from the Alexa app. One board per indoor unit. - **Cost:** about $35 pre-assembled, or roughly $15 in DIY parts. - **The firmware:** version 0.4.0, free to install, beta, and not open source. Boards ship unflashed. - **Alexa-side requirement:** a compatible Echo, which does the pairing locally, plus the Alexa app. - **Flashing:** from a browser over USB, about two minutes. No app, no compiler. - **Pairing:** Alexa hands the board your Wi-Fi credentials over Bluetooth while it is being added. - **What Alexa gets:** on and off, heat, cool and auto with setpoints, and the current room temperature. - **What it doesn't:** dry mode, fan-only mode, fan speed, and vane direction don't come through this route. - **Factory alternative:** Mitsubishi publishes a Kumo Cloud skill for Alexa, for households that already own the Wireless Interface. Cloud and account based, not local. ## Can Alexa Control a Mitsubishi Mini-Split? Yes, and this question has three real answers rather than one grudging workaround. Start with the factory option, because for some readers it's free and it's better. Mitsubishi Electric Trane HVAC US released a **Kumo Cloud** skill for Amazon Alexa. Enable it in the Alexa app, link the account, and voice commands can turn a zone or the whole system on and off, change the mode for a zone or a group, set a setpoint, and ask for zone status including current temperature and humidity. A genuine feature list, and wider voice reach than the route this site sells. The requirement is the expensive part. Every indoor unit needs a Mitsubishi Electric Wireless Interface fitted, the adapter that runs about $227 new in North America. Already on the wall? Enable the skill and stop reading. Buying them for voice control is a strange way to spend money. The other two answers start with the same $35 board on the unit's service port. One pairs it straight to Alexa. The other runs it on ESPHome inside Home Assistant, which hands a thermostat to Alexa. ## Route 1: Pairing Through an Echo The factory Wi-Fi adapter has to plug into something. On nearly every Mitsubishi Electric indoor unit that something is **CN105**, a small serial connector on the control board, and the protocol crossing it is no secret. Put a different device on that connector and the heat pump answers it exactly the same way. The **Serin controller** is that different device: an M5Stack ESP32 module, off the shelf, with a CN105 cable on the end. Hardware alone gets nobody to Alexa. The Alexa part arrives afterward, as firmware selected on a web page and written to the board over USB. Three firmware options run on it, and the newest one is the one that pairs straight into Alexa. That's version 0.4.0 today, for the M5Stack Atom S3 Lite and the NanoC6, and it costs nothing to install. Its source, unlike the other two options, isn't published. The flasher labels it beta, which is honest arithmetic: months on customer walls against years for the ESPHome and Apple Home firmware. What makes this pleasant on Alexa specifically: no bridge, no hub purchase, no skill to enable. Amazon's documentation describes a compatible Echo as the thing that discovers and connects a new device to Alexa locally. The speaker on the shelf is the infrastructure. ## Which Echo Models Can Do the Pairing This step decides whether Route 1 exists for a given house, so it deserves a straight answer rather than a confident-sounding list. The capability arrived on Echo hardware as a software update rather than a new product line, so an Echo bought in the last several years and kept updated is likely on the right side of it. Amazon publishes the current model list in its own documentation, and that's what to check before ordering a board. I'm not printing a table, because that list moves and a snapshot ages badly. The Alexa app answers the question too: if adding a device offers to scan a pairing code, the path exists. There's also a purpose-built option. The **Echo Hub** is a dedicated smart home controller rather than a speaker, bridging Wi-Fi, Bluetooth, Zigbee, Sidewalk, and Thread devices. For a house with a lot of local gear in it, that's the tidier center. And the consequence, because a post that only lists happy paths is useless: no qualifying Echo means no direct route. The pairing needs a controller, Alexa's controller is the Echo, and nothing on the board substitutes for one. The remaining choices are an Echo purchase, Home Assistant, or the Kumo skill. ## Pairing Walkthrough Anyone who has set up an ESP32 before is bracing for a temporary hotspot and a network password typed into a form. Neither one shows up. The flasher never asks which Wi-Fi the board should join. The app runs that errand from the other end, over Bluetooth, while the device is being added. Flash first, mount second, and let Alexa put the board on the network last. 1. Flash the board at [the browser flasher](https://serin-labs.com/flash.html) in Chrome or Edge. Boards ship unflashed, so this is required, and it takes about two minutes. Pick the Google Home and Alexa firmware, click install, and accept the erase option when switching firmware. 2. Mount the board, connect the cable to CN105 on the indoor unit, restore power. 3. In the Alexa app, add a device and choose the path for an accessory with its own pairing code. Scan the QR code the flasher displayed, or type the manual code under it. The code never changes, and the flasher keeps a copy in that browser. Reconnect over USB any time to read it back. 4. Let Alexa hand over the credentials, approve the notice below, and assign the device to a room. ![The Alexa app confirming that the Serin hub and its devices were found and connected](https://serin-labs.com/assets/alexa-add-device.webp) The Echo finds the controller and adds it to your Alexa account. About that notice in step four. Alexa isn't inventing it and neither am I: **this firmware has not been certified.** A one-time prompt calls the accessory uncertified and asks for confirmation before continuing, and confirming is the right move. Certification is a compliance program with a fee attached rather than a verdict on whether the pairing holds, and Alexa stops raising it once the device is in. ## What the Alexa App Can Control Alexa has one description for a thermostat, and that description is where the ceiling sits. Not an Alexa limitation, not a firmware limitation. The shape of the category. **Reliable:** power on and off, heat, cool, and auto modes each with a setpoint, and the current room temperature reported back. Those setpoints have been core to what a thermostat means for years, and they cover nearly every real interaction with a mini-split. **Not reliable:** dry mode, fan-only mode, fan speed, and vane or swing direction. Dry and fan-only do appear in the underlying mode list, but no standardized way exists for a device to advertise which of them it supports, so apps apply their own assumptions and often show neither. Fan speed and vane are a flatter gap: a thermostat has no representation for them at all. There is a separate room air conditioner category that carries fan control, but pairing a mini-split as a thermostat doesn't produce it. **Absent completely:** compressor frequency, outside air temperature, runtime, and error codes. The thermostat model has nowhere to put them. Which makes for an uncomfortable comparison, better made here than discovered later. The Kumo skill reaches further by voice: whole-system modes, groups of zones, humidity. The direct route trades all three for a heat pump answering to an Echo in the same house, with no Mitsubishi account and no adapter purchase in the path. ![The Alexa app thermostat card for a Mitsubishi mini-split, showing a 72 degree target, the current 68 degree room temperature, and Cool mode](https://serin-labs.com/assets/alexa-thermostat-card.webp) The paired mini-split in the Alexa app: setpoint, current room temperature, and mode. ## Voice Commands Voice can't exceed the card. Whatever the app can't show, no phrasing will reach, so treat "Alexa, ..." as spoken access to the same short list. That list is setting a target temperature, switching among heat, cool, and auto, turning the thermostat off, and asking the current temperature. Whatever the card exposes, voice reaches, keyed off the name and room assigned during pairing. Naming the device something a person would say out loud is the best move at setup time. Requests for dry mode, a fan speed, or a vane position have nothing to bind to and will fail. The bundled remote still does all three, and so does an ESPHome install. Routines are the compensation: once the mini-split is an Alexa thermostat it can sit in a routine with everything else, triggered on a schedule, by a sensor, or by voice, with no vendor cloud in between. ## Route 2: ESPHome Through Home Assistant If Home Assistant is already running, the calculus changes, and the extra hop buys a lot. Same board, same port, different firmware. Flashed with **ESPHome**, the controller becomes a Home Assistant climate entity with everything the serial port exposes: every mode including dry and fan-only, fan speed, vane position, and the compressor diagnostics a thermostat card has no words for. Home Assistant can then expose selected entities onward to Alexa by one of two documented paths: a Home Assistant Cloud subscription, which spares the dynamic DNS, certificate, and router-port work, or a self-built Alexa Smart Home skill, which needs an Amazon developer account, an AWS account, and Home Assistant reachable over HTTPS. What survives the hop is the thing to weigh. Home Assistant keeps the rich entity, Alexa receives a thermostat. Voice and the Alexa card land close to where Route 1 leaves them, while every Home Assistant dashboard and automation gets the full heat pump. The comparison of the ways into Home Assistant, with verified project status for each, is already written up in [every way to get a Mitsubishi mini-split into Home Assistant](https://serin-labs.com/blog/mitsubishi-home-assistant-integration-options.html). No sense repeating it. Route 2 costs a dependency. Home Assistant has to be running and reachable or Alexa loses the mini-split entirely. Route 1 has no such box in the middle, only an Echo that was going to be plugged in anyway. ## Which Route Should You Take? What's already in the house decides this, more than any feature list. - **Echo speakers, no Home Assistant, no factory adapter.** Take Route 1. Confirm the Echo qualifies, flash the firmware, and pair it in the Alexa app. It is beta and the only route with nothing between the Echo and the unit. - **Home Assistant already running.** Take Route 2. ESPHome is the deeper integration and Home Assistant forwards a thermostat to Alexa. What Alexa shows is similar either way, so decide based on what the dashboard should hold. - **Wireless Interface already fitted, voice control is the entire goal.** Enable the Kumo Cloud skill first. It costs nothing extra, and its voice coverage beats the direct route on modes, groups, and humidity. - **No qualifying Echo in the house.** There is no direct route. Add an Echo, go through Home Assistant, or use the Kumo skill. - **Fan speed, vane direction, or dry mode from the Alexa app specifically.** Nothing delivers that today, and no firmware update will, because the limit is in what a thermostat means to Alexa. If Route 1 is the one, it's three steps. 1. [Check that the unit has a CN105 port](https://serin-labs.com/compatibility.html). Five minutes, and the only step that can rule a unit out. 2. Get the [board and cable](https://serin-labs.com/parts.html), one set per indoor unit, or the [pre-assembled CN105 ESP32 controller](https://serin-labs.com/controller.html). 3. [Flash the firmware](https://serin-labs.com/flash.html), then add it in the Alexa app and scan the code. Full walkthrough in the [setup guide](https://serin-labs.com/setup.html). Amazon is never going to teach Alexa about Mitsubishi heat pumps, and it doesn't have to. The missing piece was a device on the wall willing to answer as a thermostat. That turns out to cost $35 and one open service port. ## Related - [Alexa-compatible controller details](https://serin-labs.com/alexa.html) - [The Google Home route](https://serin-labs.com/blog/mitsubishi-mini-split-google-home.html) - [The browser flasher](https://serin-labs.com/flash.html) - [ESPHome or Apple Home](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) - [Every way into Home Assistant](https://serin-labs.com/blog/mitsubishi-home-assistant-integration-options.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Can a Nest or ecobee Run a Mitsubishi Mini-Split? Yes — Here's What It Costs You > Mitsubishi's Thermostat Interface (PAC-US444CN-1, PAC-US445CN-1, PAC-US446CN-1) lands R/C/G/W1/Y1 on CN105 so a Nest or ecobee can drive a mini-split. What the manual says you keep, and what you give up. Source: https://serin-labs.com/blog/nest-ecobee-mitsubishi-thermostat-interface.html Last updated: 2026-09-05 August 26, 2026 · Serin Labs In [my thermostat roundup](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html) I opened with the wall: you buy a Nest, open the box, and there's nowhere to wire it. That's still true at the wall. It's not the whole story at the unit. Mitsubishi sells the missing wires. It's called the **Thermostat Interface**, it plugs into the same **CN105** port this entire site is about, and it presents R, C, G, W1, and Y1 to a conventional thermostat. So the answer to the headline is a straight yes. Your Nest or ecobee can run a Mitsubishi mini-split. The interesting part is the bill. And after reading the manual cover to cover, the thing most people assume you lose isn't actually the thing you lose. ## Quick Facts: The Mitsubishi Thermostat Interface - **What it is:** a Mitsubishi-made module that converts a 24V thermostat's dry contacts into commands on the indoor unit's **CN105** serial port. - **Part numbers:** **PAC-US444CN-1** (original), **PAC-US445CN-1** (Thermostat Interface 2), and **PAC-US446CN-1**, which retailers listed as the current part in August 2026. - **Terminals:** TC, C, TR, R, G3, G2, G1, Y2, Y1, W2, W1, G. A single-stage install uses R, C, G, W1, Y1. - **Thermostats tested by Mitsubishi:** ecobee, Honeywell, Nest, Lyric, and INNCOM with fan speed control. - **Modulation:** the unit still varies capacity on a stage-1 call. The [PAC-US445CN-1 submittal](https://s3.amazonaws.com/enter.mehvac.com/DAMRoot/Original/10006/M_Submittal_PAC-US445CN-1.pdf) states "W1/Y1: Capacity is adjusted automatically based on room (default)" and "W2/Y2: Full capacity." - **Requires:** a field-supplied 24VAC circuit and thermostat wiring. One interface per indoor unit. - **Street price:** $229.99 at RFWEL and $283.50 at Acme Controls as of August 2026, before the thermostat, transformer, or labor. - **Hard limit:** with the interface fitted, Mitsubishi's own MA/ME wall controllers are "not supported as they will interfere with the correct operation." ## How Does the Interface Get a Nest onto a Mini-Split? It sits between two things that don't speak the same language and translates in one direction. On one side are ordinary thermostat terminals. On the other is a pigtail that, per the [PAC-US445CN-1 installation manual](https://hvacdirect.com/media/pdf/M_PAC-US445CN-1_TstatInterface_IM_K001_Ver2.pdf) (MEUS DOC# MD-1622-K001 Ver. 2, April 2022), you "connect… to the connector CN105 on the indoor unit control board." That's the same five-pin port the Kumo Cloud adapter uses, the same one the MHK2 wires into, and the same one a [local CN105 controller](https://serin-labs.com/controller.html) clips onto. One port, one occupant. If the interface is on CN105, nothing else is. ![The CN105 port on a Mitsubishi mini-split indoor unit control board, the connector every wired control option uses](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp) Here's the full terminal list, straight out of section 3 of that manual (MD-1622-K001): | Terminal | Purpose | | --- | --- | | TC | C: common (in) | | C | C: common (out) | | TR | R: 24 VAC (in) | | R | R: 24 VAC (out) | | G3 | High fan speed | | G2 | Medium fan speed | | G1 | Low fan speed | | Y2 | Stage 2 cooling | | Y1 | Stage 1 cooling | | W2 | Stage 2 heating | | W1 | Stage 1 heating | | G | Fan | Note what TR and TC are doing there. The interface doesn't generate 24V — you feed it. The manual lists a 24VAC circuit as a field-supplied requirement and offers a transformer as an accessory. A mini-split has no furnace transformer to borrow from, so that's a real part and a real install step. The manual also carries a warning that surprises people: "Thermostat should be configured for use with a conventional system (not heat pump)." You set your Nest up as if it's driving a gas furnace and an AC condenser. ## Does It Kill Inverter Modulation? This is where I expected to write the bad news, and the manual didn't cooperate. The common claim — I've seen it on forums, and I half-believed it going in — is that a 24V thermostat reduces an inverter heat pump to a dumb on/off box. That's not what Mitsubishi documents. On the PAC-US445CN-1, DIP switch SW2-6 "adjusts indoor unit operation during stage 1 heating (W1) and stage 1 cooling (Y1)," and the default position is OFF: > **OFF** — The capacity is adjusted so that the room temperature is adjusted (heated or cooled) at a fixed rate (default). **ON** — Full capacity The [PAC-US445CN-1 submittal](https://s3.amazonaws.com/enter.mehvac.com/DAMRoot/Original/10006/M_Submittal_PAC-US445CN-1.pdf) (© 2023 Mitsubishi Electric Trane HVAC US LLC) says the same thing in plainer words: "W1/Y1: Capacity is adjusted automatically based on room (default)" and "W2/Y2: Full capacity." So on a stage-1 call, the compressor still modulates. What the second stage does is give up on modulating and go flat out. That's the opposite of the folklore, and it's worth saying clearly: **the interface does not turn your inverter into a single-speed unit.** There's a second nuance in the manual that I liked. Temperature sensing is a hybrid: "The PAC-US445CN-1 relies upon both the 24 VAC thermostat and the indoor unit's thermistors in order to monitor room temperature. The thermostat's temperature sensing is used to set the room temperature. The indoor unit thermistor is used when calculating cooling and heating rates of change." Your Nest becomes the room sensor. That's a genuine upgrade over the unit's own thermistor up at the ceiling — the same argument I make for the [MHK2 and remote sensors](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html). ## So What Do You Actually Give Up? Not modulation. Something subtler, and in some ways worse: **resolution and visibility.** A thermostat wire carries a closed contact or an open one. Nothing else. Your Nest knows you asked for 71°F, but that number never reaches the heat pump — it reaches the interface as "W1 is energized." The manual confirms the division of labor bluntly, listing Mode 2, the indoor unit's room-temperature detection location, as "Unused (room temperature detected by the connected thermostat)." The concrete losses, all from the manual: - **No Mitsubishi wall controller, ever.** "During normal operation, the connection of Mitsubishi Electric remote controllers (e.g. MA/ME) is not supported as they will interfere with the correct operation of the PAC-US445CN-1." It's the interface or an MHK2. Not both. - **No vane or swing control.** The terminal list has fan speed and stage calls. Louvers aren't on it. - **No diagnostics coming back.** Compressor frequency, outside air temperature, error codes — a dry contact can't carry any of it. The wire only goes one way. - **A two-hour hold by default.** SW1-1 in its default OFF position means the system will "stay in heating or cooling mode for 2 hours once W1 or Y1 is no longer active," which "does not respond to fan request changes (G) during the 2 hours." - **Setpoint clamping.** "The indoor unit will limit the internal temperature control set point based on the indoor unit specification." - **Modes are coarse.** Cool, Heat, Fan, Off, plus Auto. That's the menu. - **One per head.** "The connection of more than one PAC-US445CN-1 to a single set of thermostat dry-contacts is not supported." A three-zone system needs three interfaces and three thermostats. - **Some Nests need surgery.** The submittal footnotes that "Non-learning Nest thermostats require installation of 2.2k mW resistors between terminals TC-Y1 and C-W1." The unit label there is garbled in Mitsubishi's own sheet, so confirm the resistor spec with your distributor rather than guessing. And one that isn't technical: "Only a dealer or qualified technician should install, relocate, reinstall or repair the device." Budget for a contractor. ## PAC-US444CN-1, PAC-US445CN-1, or PAC-US446CN-1: Which Is Current? Three part numbers are in circulation and the search results are a mess, so here's what I could verify on 2026-08-06. The **PAC-US444CN-1** is the original. Its [Canadian spec sheet](https://www.mitsubishitechinfo.ca/sites/default/files/SB_PAC-US444CN-1_Thermostat_Interface_201801.pdf) (Form # SB_PAC-US444CN-1_201801) lists tested thermostats as Nest, Honeywell, Lyric, and INNCOM — **no ecobee**. It also carries a long compatibility chart of OK and NO rows by model and revision, which is worth pulling if you have an older unit. The **PAC-US445CN-1**, branded Thermostat Interface 2, added ecobee to the tested list and added support for the PAA intelli-HEAT indoor unit, which the 444 doesn't work with. This is the one I could retrieve full Mitsubishi documentation for, and every specification quoted above comes from it. The **PAC-US446CN-1** is the wrinkle. RFWEL lists the 445 as "DISCONTINUED/END-OF-LIFE (EOL)" replaced by the 446, and Parts Town flags the 445 as "Obsolete, replaced by MITPAC-US446CN-1." RFWEL and Acme Controls both listed the 446 in stock when I checked. I could not retrieve a Mitsubishi-hosted submittal or manual for it, so I'm not quoting 446 specifications — reseller material describes the same CN105 connection and the same W1/Y1 automatic capacity behavior, but that's their wording, not Mitsubishi's. Practical advice: order by asking your distributor which interface is current for your indoor unit, and get the compatibility chart for your specific model and revision before you buy anything. ## What Does It Cost, All In? You already own the thermostat — that's the premise of this post, and it's the interface's best argument. Everything below it is new money. | Line item | Cost | Notes | | --- | --- | --- | | Thermostat Interface | $229.99–$283.50 | RFWEL and Acme Controls listings, August 2026 | | 24VAC transformer | Extra | Field supplied; Mitsubishi lists one as an accessory | | Thermostat wire + run | Extra | 18 AWG, unit to wall, per the manual | | Installation | Extra | "Only a dealer or qualified technician" | | Per additional zone | ×N | One interface and one thermostat per indoor head | Set that against the alternatives, using the figures from [my multi-zone cost breakdown](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html): the wired **PAC-SDW01RC-1** wall controller runs about **$179**, the **MHK2** about **$415–$475**, and Mitsubishi's **Kumo Cloud** Wi-Fi adapter about **$227**. A [local CN105 controller](https://serin-labs.com/controller.html) is **$35** pre-assembled, or **$15–20** in [parts](https://serin-labs.com/parts.html). That's the uncomfortable arithmetic. The interface by itself costs more than Mitsubishi's own wall controller, and roughly what the OEM Wi-Fi adapter costs — and you still have to add wire, a transformer, and a truck roll. ## Three Ways to Land Control on CN105 | | Interface + Nest/ecobee | Mitsubishi wall controller | CN105 controller board | | --- | --- | --- | --- | | **Hardware cost** | $230–$284 + thermostat | PAC ~$179, MHK2 ~$415–$475 | $35, or $15–20 DIY | | **Wiring to the wall** | Yes, 18 AWG thermostat wire | Yes | None — Wi-Fi | | **Needs 24VAC supply** | Yes, field supplied | No | No | | **Signal to the unit** | Dry contacts (staged calls) | Native CN105 | Native CN105 | | **Modulates on stage 1** | Yes, per manual | Yes | Yes | | **Senses temp at the wall** | Yes, the thermostat does | Yes | Optional remote sensor | | **Vane / swing control** | No | Yes | Yes | | **Reads unit state back** | No | Error codes | Yes, live | | **Keeps MA/ME controllers** | No, explicitly unsupported | It is one | Yes, remote keeps working | | **App / Home Assistant** | Your thermostat's app + cloud | None without adapter | Yes, local | | **Per additional zone** | Interface + thermostat each | Controller each | Board each | ![Two Mitsubishi wall controllers mounted side by side: the PAC-SDW01RC-1 wired controller with a color screen and the MHK2 with its Vane, Mode, Menu, and Fan display](https://serin-labs.com/assets/content/800/mitsubishi-mhk2-pac-sdw01rc-wall-controllers.webp.d41476e42ad3.webp) ## Who Should Actually Buy the Interface? - **You have a ducted Mitsubishi air handler and thermostat wire already in the wall.** This is the interface's home turf. An SVZ, PVA, or PEAD install with an existing stat location makes the wire run trivial, and a conventional thermostat is what the space was built around. Buy it. - **You run ecobee or Nest everywhere and want one app, one schedule, one sensor ecosystem.** Standardization is a legitimate reason to spend $230+. You'll trade vane control and diagnostics for it, and you should know that going in. - **You're on a PAA intelli-HEAT dual-fuel system.** The 445 and later are built for it and ship with the PAA harness; the 444 isn't compatible. This is the case where a conventional stat is the design intent, not a workaround. - **You want a screen on the wall and no cloud.** Skip the interface. The **PAC-SDW01RC-1** is $179, needs no transformer and no thermostat purchase, and keeps full native control. [The wall-controller comparison](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) covers the trade. - **You want app control, Siri, or Home Assistant for the least money.** A [CN105 controller board](https://serin-labs.com/controller.html) is $35 and keeps everything the interface throws away — vane, live diagnostics, the factory remote. You flash it from your browser and pick one of two free, open-source firmwares: **ESPHome** for Home Assistant, or an **Apple Home compatible** build for Siri. Neither is MFi-certified, so the Home app shows an "Add Anyway" prompt once. Both run fully local, no account. - **Your Nest is the one thing you refuse to give up, and you have one head.** Be honest with yourself about the total: interface, transformer, wire, labor. Then compare it to $35 and a different app. ## The Short Version Yes, a Nest or an ecobee can run a Mitsubishi mini-split. Mitsubishi builds the adapter, documents it properly, and even keeps the compressor modulating on stage-1 calls — which is more than the internet gives it credit for. What you're really buying is a translation layer that only speaks in on and off. The heat pump keeps its intelligence; your thermostat just loses the vocabulary to direct it, and you lose the wall controller and every diagnostic the port can carry. If you're weighing it: 1. [Check your model against the compatibility data](https://serin-labs.com/compatibility.html) — the interface needs a working CN105 port, and so does everything else here. 2. Ask your distributor which part number is current for your unit, and get the compatibility chart for your model revision. 3. Price the whole job — module, transformer, wire, labor — not just the module. 4. Compare that number against a [$179 wall controller](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) and a [$35 board](https://serin-labs.com/controller.html) before you commit. The interface doesn't teach your Nest to speak heat pump. It teaches your heat pump to answer to a furnace's vocabulary — and charges you $230 for the translation. ## Related - [The best smart thermostat for a mini-split](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html) - [Every smart-control option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [The local CN105 controller](https://serin-labs.com/controller.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # How to Add a Mitsubishi Mini-Split to Google Home > Add a compatible Mitsubishi mini-split to Google Home as a thermostat. Compare the direct $35 controller route with ESPHome through Home Assistant. Source: https://serin-labs.com/blog/mitsubishi-mini-split-google-home.html Last updated: 2026-08-27 August 25, 2026 · Updated August 27, 2026 · Serin Labs For compatible Mitsubishi-family mini-splits Add the heat pump to Google Home as a thermostat for temperature, Heat, Cool, Auto, voice commands, and routines. The simplest route uses one small controller inside each indoor unit—without Kumo Cloud or a Home Assistant server. Check my mini-split [See the controller](https://serin-labs.com/controller.html) - From $35 - No subscription - One per indoor unit - Free beta firmware ![The pre-assembled Serin Controller beside the Google Home thermostat card for a Mitsubishi mini-split, showing a 74 degree target and 68 degree indoor temperature](https://serin-labs.com/assets/content/800/google-home-mini-split-hero.webp.83996411ea9e.webp) Plugs into the indoor unit, then pairs from Google Home ## Can You Add a Mitsubishi Mini-Split to Google Home? Yes. A compatible Mitsubishi mini-split can appear in Google Home as a thermostat even when it did not leave the factory with Google Home support. The direct route uses a controller plugged into the service connection inside the indoor unit. You install the free Google Home-compatible firmware from a browser, connect the controller with the breaker off, and add it from the Google Home app. No Mitsubishi cloud account or Home Assistant server sits in the middle. If you already run Home Assistant, the same controller can use ESPHome instead. Home Assistant holds the complete mini-split controls and sends a simpler thermostat onward to Google Home. ## Choose Your Route Recommended without Home Assistant ### Pair directly with Google Home - Nothing else needs to stay running - No Mitsubishi or Serin account - Google Home gets the standard thermostat controls - Firmware is free, beta, and not open source Best if it is already in your house ### ESPHome through Home Assistant - Full controls and diagnostics remain in Home Assistant - Google Home still receives a simpler thermostat - Home Assistant must remain available - Cloud subscription or manual Google setup is required for the bridge There is also a good no-purchase answer for some households: if the factory Mitsubishi Wi-Fi adapter is already installed, try its **Kumo Cloud Google Assistant integration** first. It is cloud-dependent, but it may already provide the voice control you wanted. Buying another controller would add cost without necessarily improving the Google Home card. ## Will the Direct Route Work with Your Mini-Split? The Serin Controller is for compatible **Mitsubishi Electric** indoor units and many Mitsubishi-built **Trane** and **American Standard** ductless systems. It does not fit Daikin, Fujitsu, LG, Gree, Midea, or other unrelated mini-split brands. Compatible units have a small service connection commonly labelled **CN105** on the indoor control board. The controller plugs into that connection and talks to the heat pump in both directions. Check the exact model before ordering because a few older and regional model families are exceptions. Before you buy ## Check your indoor-unit model Find the model number on the label under the front cover or on the side of the indoor unit. Enter it for an instant compatibility verdict. ![The Serin Controller with its tested CN105 cable attached](https://serin-labs.com/assets/gallery/800/serin-controller-20cm-braided-cable.webp.webp) Hardware for the direct route ## Serin Controller The ESP32 board and tested cable arrive assembled. You install the free beta firmware from a supported browser before connecting it to the mini-split; the controller normally arrives without firmware installed. From $35 · Free US shipping · 5.0 from 42 reviews [See the Serin Controller](https://serin-labs.com/controller.html) [Prefer to build it yourself?](https://serin-labs.com/parts.html) ## What You Need for Direct Google Home Control 1 ### A compatible indoor unit One controller is needed for every indoor unit you want to control. A three-head system needs three controllers. 2 ### The controller and cable Use the pre-assembled Serin Controller or a supported board and cable from the [DIY parts list](https://serin-labs.com/parts.html). 3 ### A computer and USB data cable The one-time firmware installation requires Chrome, Edge, or Brave on a desktop or laptop. 4 ### A compatible Google or Nest hub Google requires a supported hub, and IPv6 must be enabled on the home network. Check [Google's current guidance](https://support.google.com/googlenest/answer/13127223?hl=en). There is no soldering, wire cutting, separate power supply, Serin account, or recurring Serin fee. You do need to turn off the breaker and open the indoor unit once. If you are not comfortable doing that, ask an HVAC technician to make the connection. 1. ![The model-number label on a Mitsubishi Electric indoor unit, reading MSZ-FH12NA](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) 1 ### Check your model The model number is on a label on the indoor unit, usually on the right side behind the front panel. 2. ![The controller cable seated in the CN105 connector on the control board of a Mitsubishi MSZ-GL06NA indoor unit](https://serin-labs.com/assets/content/800/serin-cn105-cable-connected-msz-gl06na.webp.a0c9c8ac7920.webp) 2 ### Plug in the controller Turn off the breaker, then plug the cable into the CN105 connector. It only fits one way. 3. ![Illustration of a Mitsubishi mini-split appearing as a Heat Pump thermostat in Google Home, set to cool to 72 degrees](https://serin-labs.com/assets/content/620/google-home-mini-split-thermostat-illustration.webp.64ce034b374c.webp) 3 ### Add it to Google Home Scan the pairing code once and the mini-split becomes a thermostat for temperature, voice, and routines. The direct route at a glance. The Google Home panel is an illustration; the exact app layout can change between Google Home versions. ## How the Direct Google Home Route Works The hardware itself is a generic controller. It becomes Google Home-compatible only after you install the free firmware. That distinction matters: the product does not normally arrive with Google Home software pre-installed, and it does not carry a Works with Google Home certification badge. After the browser installation, the controller plugs into the indoor unit. The Google Home app then adds it as a thermostat and passes the home Wi-Fi details to it over Bluetooth. There is no Wi-Fi form in the browser installer and no temporary hotspot to join. The firmware is currently **beta**, newer and less tested than the ESPHome and Apple Home-compatible options. It is free to install, but its source code is not published. Those are meaningful trade-offs if open-source firmware or long field history is a requirement. ## Pairing Walkthrough 1. **Install the free beta firmware.** Connect the controller to a computer over USB and open the [browser installer](https://serin-labs.com/flash.html?platform=direct). Choose the Google Home and Alexa-compatible option. Nothing needs to be downloaded or compiled. 2. **Save the pairing code.** The installer displays a QR code and a manual code after flashing. Keep either one available for the Google Home app. Reconnecting the board over USB lets the installer show it again. 3. **Connect the controller to the mini-split.** Turn off HVAC power at the breaker, open the indoor unit, and plug the keyed cable into its service connector. Follow the [wiring guide](https://serin-labs.com/wiring.html) for placement and photos. 4. **Add it from Google Home.** Choose the add-device path for an accessory with a pairing code, scan the code, approve the one-time uncertified-accessory notice, and assign the thermostat to a room. 1. ![The Google Home app's Add a device screen, with the camera pointed at the pairing code shown by the browser installer](https://serin-labs.com/assets/google-home-add-device-scan.webp) 1Point Google Home at the pairing code the installer shows when flashing finishes. 2. ![The iOS accessory setup sheet asking for a name, pre-filled with Serin Controller](https://serin-labs.com/assets/google-home-accessory-name.webp) 2Accept the suggested name or type your own. 3. ![The iOS accessory setup sheet confirming the accessory was added to Google Home](https://serin-labs.com/assets/google-home-accessory-added.webp) 3Done. The controller is now a Google Home device. The uncertified-accessory message is not a recurring alert. It appears because this free beta build has not been through the applicable certification program. Approving it completes pairing; it does not change the controls the thermostat exposes afterward. ## What Google Home Can Control Google Home receives a standard thermostat rather than a complete mini-split remote. That keeps the common controls simple, but it also leaves several Mitsubishi features outside the app. Available in Google Home - Turn the unit on and off - Heat, Cool, and Auto modes - Target temperature - Current room temperature - Voice commands and household routines Not reliably available there - Dry and fan-only modes - Fan speed - Vane direction and swing - Compressor and runtime diagnostics - Error codes and live logs The controller's built-in web interface retains controls and operating information that Google Home's thermostat card has nowhere to display. The factory handheld remote also continues to work for fan and vane adjustments. ![Google Home thermostat controls for a Mitsubishi mini-split, showing a 74 degree target, 68 degree indoor temperature, and Heat mode](https://serin-labs.com/assets/google-home-mini-split-thermostat-card.webp) The paired mini-split in Google Home: target temperature, current room temperature, and mode. ## Voice Commands and Routines Voice follows the same thermostat controls. You can turn the room on or off, set a target temperature, switch between Heat, Cool, and Auto, or ask for the current temperature. Use the room name assigned during pairing, just as you would with a Nest thermostat. Requests for dry mode, a particular fan speed, or vane direction have nothing to control in Google Home's thermostat view. No alternate wording fixes that limitation. Use the handheld remote or the controller's web interface for those settings. Once paired, the thermostat can join Google Home routines alongside lights, plugs, and other devices. The routine can run without adding a Mitsubishi cloud account. ## Route 2: ESPHome Through Home Assistant If Home Assistant already runs the house, install **ESPHome** on the same controller instead. Home Assistant receives the full climate entity: additional modes, fan speed, vane position, and operating diagnostics. Its Google Assistant integration then exposes a thermostat to Google Home. Google Home still receives the simpler thermostat controls listed above. The benefit is everything that remains available in Home Assistant for dashboards and automations—not a richer Google Home card. This route also adds a dependency. Home Assistant must remain running and reachable for Google Home to control the mini-split. Home Assistant Cloud provides the easier bridge; the manual Google Assistant configuration is more involved. The [Home Assistant integration guide](https://serin-labs.com/blog/mitsubishi-home-assistant-integration-options.html) compares the available routes in detail. ## What If You Already Have Kumo Cloud? Use it before buying anything else. Mitsubishi's Kumo Cloud integration can link its account to Google Assistant, and an already-installed adapter may cover the voice commands you need. That route is cloud-to-cloud and depends on the factory adapter, Mitsubishi account, internet connection, and vendor services. It also has one practical advantage over the direct thermostat route: Mitsubishi documents voice control for features including vane direction. If you already own the adapter and voice is the only goal, keeping it is the sensible recommendation. ## The Honest Limits - **The controller only fits compatible Mitsubishi-family equipment.** Other mini-split brands need a universal infrared controller or their own platform-specific hardware. - **You open the indoor unit once.** Power must be off at the breaker. There is no soldering or wire cutting, but it is still work inside HVAC equipment. - **The firmware is beta and not open source.** It is newer and less field-tested than the other supported firmware choices. - **The build is not certified.** Google Home shows a one-time uncertified-accessory notice during setup. - **A compatible hub and IPv6 are required.** Confirm both before ordering, especially on managed or older home networks. - **Google Home does not expose every mini-split feature.** Fan speed, vane direction, diagnostics, and some modes remain outside its thermostat card. - **The service connection is occupied.** It generally cannot be shared with a factory Wi-Fi adapter or wired Mitsubishi wall controller. The handheld remote is unaffected. ## Which Route Should You Take? - **Google Home is your main platform and you do not run Home Assistant:** pair directly. It is the shortest local route and has no server in the middle. - **Home Assistant already runs your smart home:** use ESPHome and bridge the resulting thermostat to Google Home. - **The factory Wi-Fi adapter is already installed:** try Kumo Cloud's Google Assistant integration before spending more money. - **You cannot open the mini-split or own another brand:** use a compatible infrared controller and accept the one-way-control trade-off. - **Fan speed, vane direction, or dry mode must appear inside Google Home:** none of these routes reliably delivers that today. For the direct route: 1. [Check your indoor-unit model](https://serin-labs.com/compatibility.html). 2. Get the [pre-assembled Serin Controller](https://serin-labs.com/controller.html) or the [DIY parts](https://serin-labs.com/parts.html), one per indoor unit. 3. Install the free beta firmware in the [browser installer](https://serin-labs.com/flash.html?platform=direct). 4. Connect it with the breaker off and finish pairing with the [setup guide](https://serin-labs.com/matter/setup.html). The result is the mini-split you already own, now available beside the rest of your home in Google Home—without putting another vendor account between the app and the thermostat. ## Related - [Google Home-compatible controller details](https://serin-labs.com/google-home.html) - [Check your Mitsubishi model](https://serin-labs.com/compatibility.html) - [See the Serin Controller](https://serin-labs.com/controller.html) - [Every way into Home Assistant](https://serin-labs.com/blog/mitsubishi-home-assistant-integration-options.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Every Way to Get a Mitsubishi Mini-Split into Home Assistant > Four real routes from a Mitsubishi mini-split to a Home Assistant climate entity: the HACS Kumo integration, the built-in MELCloud integration, CN105 with ESPHome, and the beta firmware. Verified status, setup effort, and what breaks. Source: https://serin-labs.com/blog/mitsubishi-home-assistant-integration-options.html Last updated: 2026-09-07 August 25, 2026 · Serin Labs You have a Mitsubishi mini-split on the wall and Home Assistant on a box in a closet. Somewhere between them is a `climate.living_room` entity that ought to exist and doesn't. Four routes cross that gap, and they're genuinely different animals. Two go through a Mitsubishi cloud account and need no new hardware if you already own the factory Wi-Fi adapter. One talks to the indoor unit's own serial port and needs a $35 board. A fourth runs a different firmware build on that same board, added from the app. Which is right for you is mostly what's already screwed to your wall. I sell the hardware both local routes use, so read the first two with that in mind. Everything below was verified against the projects' own repositories and docs in **August 2026**. These facts age in months, not years — check the dates in the table before trusting them. **Quick Facts: Mitsubishi mini-splits in Home Assistant, as of August 2026** - **Four practical routes:** Kumo (North America), MELCloud (Europe and most other markets), and a CN105 adapter running either ESPHome or the beta firmware (anywhere). - **Kumo** is *not* a built-in Home Assistant integration. It's `dlarrick/hass-kumo`, MIT-licensed, installed through HACS and listed in the HACS default store. Latest stable release v0.4.6, 29 May 2026. - **MELCloud** *is* a built-in Home Assistant integration (`melcloud`), configured from the UI with your MELCloud email and password. IoT class: cloud polling. - **CN105 + ESPHome** uses `echavet/MitsubishiCN105ESPHome`, an ESPHome external component, ~1,050 stars, committed as recently as 4 August 2026. It carries **no license file**. - **The firmware** is the newest of the three options on that same board, version **0.4.0**, flashed from our browser flasher with binaries published via `Serin-Labs/serin-cn105`. Local, free to install, not open source, and beta. Home Assistant adds it through a built-in integration, no ESPHome involved. - **Hardware cost:** Kumo and MELCloud need a Mitsubishi Wi-Fi interface — **$0** if your unit already has one, roughly **$227** new in North America, priced regionally elsewhere. The CN105 route needs an ESP32 board and cable per indoor unit, from about **$15 DIY** or **$35** pre-assembled. - **What breaks:** the cloud routes break when Mitsubishi changes its API or your account; the local route breaks where a firmware quirk meets a community-maintained protocol implementation. ## Route 1: The Kumo Integration (North America) If you're in the US or Canada and your unit already has a Kumo Cloud Wi-Fi interface fitted, this is your cheapest first move. It costs nothing. The integration is **Mitsubishi Kumo Cloud**, maintained by `@dlarrick` at [`dlarrick/hass-kumo`](https://github.com/dlarrick/hass-kumo). MIT-licensed, and *not* shipped with Home Assistant — there is no `kumo` component in core. Its own README is blunt about it: "Kumo is not included in Home Assistant as an official integration." It's in good shape. Latest stable release **v0.4.6** (29 May 2026), **v0.4.7-beta** on 20 June 2026, commits landing as recently as 1 August 2026. It depends on `pykumo`, the same author's Python library, also MIT and last updated 26 July 2026. ![The Kumo Cloud app dashboard showing several Mitsubishi mini-split zones, one heating and the rest powered off](https://serin-labs.com/assets/kumo-cloud-app-dashboard.webp) **The setup sketch:** 1. Install HACS if you haven't. Search its Integrations panel for "Kumo," open **Mitsubishi Kumo Cloud**, Install, restart Home Assistant. It's in the HACS default store, so there's no custom repository to add. 2. Go to **Settings ▸ Devices & Services ▸ Add Integration** and search for **Kumo**. 3. Enter your KumoCloud email and password. The integration pulls your units, their IP addresses, and their local security keys from Mitsubishi's service. 4. Assign each discovered unit to an Area. With Home Assistant's DHCP integration enabled, Kumo finds adapter IPs automatically from known MAC prefixes; otherwise you type them in. 5. Set DHCP reservations for each indoor unit on your router. The README calls this "**strongly** recommended," and it is — the integration reaches the adapters by IP. ## Is the Kumo Integration Actually Local? More than its name suggests. The manifest declares its IoT class as **local polling**, not cloud polling: once Kumo has credentials, it talks to each Wi-Fi adapter directly on your LAN, and a `prefer_cache` option skips the startup call to Mitsubishi's servers entirely. The cloud is a credential broker here, not a relay for every command. The catch is that the broker is still a single point of failure at the moments you need it: first install, and any reconfiguration. ## Route 2: The MELCloud Integration (Europe and Most Other Markets) Outside North America, Mitsubishi's app is MELCloud, and this route is the easiest of the three by a distance: you install nothing. **MELCloud is a built-in Home Assistant integration.** The `melcloud` component ships in core, has a UI config flow, and its current code owner is `@erwindouna`. It's under active development — changes landed through 2 August 2026, including new `select` and `number` entities for air-to-water zones in late July. MELCloud's history is the messy one, and it's worth knowing how it resolved. The integration originally ran on `pymelcloud`, which is now **archived** — last commit February 2024. Home Assistant replaced it with `python-melcloud` in April 2025, and that library has been maintained since, most recently in June 2026. So if you read that MELCloud was riding a dead dependency: true once, not any more. **The setup sketch:** 1. Go to **Settings ▸ Devices & Services ▸ Add Integration** and search for **MELCloud**. 2. Enter the email address and password for your MELCloud account. 3. Your units appear. Air-to-air heat pumps get a climate entity plus sensors; air-to-water systems get per-zone climate entities, a water heater entity, and more. The honest limitation is in the manifest: MELCloud's IoT class is **cloud polling**. Unlike Kumo, there's no local path. Every state read and every command goes to Mitsubishi's servers and back. Internet down, MELCloud down, or account trouble, and your climate entity is a decoration. Open issues in Home Assistant core report authentication loops and setup errors that don't retry — not universal, but the shape of failure to expect here. ## Route 3: CN105 and ESPHome (Local, Anywhere) Every Mitsubishi Electric indoor unit that works with Kumo Cloud or MELCloud has a **CN105** serial port on its control board. That port is how the factory adapter talks to the unit — the MAC-587IF-E's own installation manual routes its cable to CN105. An ESP32 board on the same port speaks the same protocol, with no Mitsubishi account in the picture. ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) The software is [`echavet/MitsubishiCN105ESPHome`](https://github.com/echavet/MitsubishiCN105ESPHome), an ESPHome external component with about 1,050 stars and commits as recently as 4 August 2026, the latest adding a setpoint table for the MSZ-A24NA. Its most recent tagged release is 2026.5.2, 11 May 2026. **The setup sketch, DIY:** build a level-shifted circuit per the SwiCago README, write an ESPHome YAML with `external_components: - source: github://echavet/MitsubishiCN105ESPHome`, a `uart:` block at 2400 baud, and `climate: - platform: cn105`, then compile and flash. **The setup sketch, the way we package it:** 1. [Confirm your unit has a CN105 port](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html). If it runs Kumo Cloud or MELCloud today, it almost certainly does. 2. [Flash the ESPHome firmware](https://serin-labs.com/flash.html) from your browser over USB. Nothing to install, nothing to compile. 3. Join it to Wi-Fi, then **Adopt** it in the ESPHome dashboard inside Home Assistant and click Install. Home Assistant discovers the adopted device; you click Configure. 4. Power down the indoor unit at the breaker, clip the cable onto CN105, close the cover, power back up. 5. Use the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) to add a remote temperature sensor, dual setpoints, or compressor-frequency diagnostics, and push it over Wi-Fi. Full walkthrough: the [ESPHome setup guide](https://serin-labs.com/esphome/setup.html). ![The controller's built-in web interface showing thermostat, fan, and vane controls in a browser](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) One board per indoor unit, because there's one CN105 port per indoor unit. On a multi-head system that's a real cost multiplier — [here's what it looks like across five zones](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html). ## Who Maintains the ESPHome Route? Three things about its provenance, none of them in the marketing: - It's an adaptation of `geoffdavis/esphome-mitsubishiheatpump`, now **archived** — the upstream stopped, the fork carried on. So the maintained project and the one most old forum posts link to aren't the same repository. - It builds on **SwiCago/HeatPump**, the Arduino library that reverse-engineered the CN105 protocol in the first place. Credit belongs there. That library ships GPL-3.0 in its repo while its README says LGPL-3.0; full picture on our [licenses page](https://serin-labs.com/licenses.html). - `MitsubishiCN105ESPHome` itself **declares no license**. Its README cautions that it's an unofficial implementation of a reverse-engineered protocol, that not all units support every feature, and that you use it at your own risk. It's an *external* component, not managed by the core ESPHome project. ESPHome itself is a different story: the `esphome` integration ships in Home Assistant core, is local push rather than polled, and carries HA's **platinum** quality scale — the top tier. ## Route 4: The Firmware (Local, No ESPHome) Same $35 board and CN105 port as Route 3. Only the firmware changes. The [browser flasher](https://serin-labs.com/flash.html) offers this **firmware** alongside ESPHome, version 0.4.0 in its manifest. The mechanics are shorter. No ESPHome dashboard, no adoption step, no YAML. Home Assistant adds the board through a built-in integration that runs its own controller app. Home Assistant OS is the only supported way to run it. The board is added from the Home Assistant companion app rather than the browser. Hold the phone near it and it takes your Wi-Fi credentials over Bluetooth. There's no hotspot to join, and pairing shows a one-time uncertified accessory notice. Now the honest part. The firmware is beta, less tested than ESPHome, and free to install but not open source. A plain thermostat entity also expresses less. Heat, cool, and auto setpoints pair reliably; dry mode, fan mode, fan speed, and vane control don't, and compressor diagnostics are gone. If you're all-in on Home Assistant, ESPHome stays the deeper route. The firmware earns its place when the same board must also answer to Apple Home, Google Home, or Alexa without a bridge. Those get their own posts. ## The Comparison, Date-Stamped | | Kumo (HACS) | MELCloud (built-in) | CN105 + ESPHome | CN105 + firmware | | --- | --- | --- | --- | --- | | **Region** | North America | Europe and most other markets | Anywhere | Anywhere | | **In Home Assistant core?** | No — custom component via HACS | Yes | No — ESPHome external component | Yes, a built-in integration (runs its own controller app) | | **Project** | `dlarrick/hass-kumo` | `homeassistant/core` · ▸ · `melcloud` | `echavet/MitsubishiCN105ESPHome` | Binaries via · `Serin-Labs/serin-cn105` · ; source not published | | **License** | MIT | Apache-2.0 (HA core) | None declared | Free, not open source | | **Status, Aug 2026** | v0.4.6 stable (29 May 2026); commits to 1 Aug 2026 | Commits to 2 Aug 2026 | Commits to 4 Aug 2026; release 2026.5.2 | v0.4.0 (manifest); beta | | **IoT class** | Local polling (cloud for credentials) | Cloud polling | Local | Local | | **Mitsubishi account** | Required at setup | Required, always | None | None | | **Extra hardware** | None if the Kumo adapter is fitted | None if the Wi-Fi interface is fitted | ESP32 board + CN105 cable, per indoor unit | Same board and cable | | **Hardware cost** | $0, or ~$227 for the adapter (NA) | $0, or the interface at regional pricing | ~$15 DIY, $35 pre-assembled | $35 pre-assembled | | **Setup effort** | HACS install, restart, sign in | Sign in | Flash, adopt, open the unit's cover | Flash, commission in the app, open the cover | | **Opening the indoor unit** | No | No | Yes, once | Yes, once | | **Works with internet down** | Yes, with · `prefer_cache` | No | Yes | Yes | | **Diagnostics beyond climate** | RSSI, outdoor temp on Kumo Station, filter/defrost attributes | Energy and temperature sensors; more on air-to-water | Compressor frequency, outside air temp, runtime, error codes | None; no compressor data on this route | Verified 6 August 2026 against each project's repository, manifest, and README. Wi-Fi interface pricing comes from our [smart-control comparison](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html); ours is on [the product page](https://serin-labs.com/controller.html). ## Which Route Breaks When the Vendor Changes Something? Nobody asks this until it's too late, and each route answers it differently. **Kumo breaks at the API.** In May 2026 the integration shipped a release titled "Update to use Kumo Cloud v3 API only" — a change its maintainer flagged in the beta as "a major change so I will wait for feedback before releasing as latest." It followed Mitsubishi's API because it had no choice. There's an open issue right now where a user can't regenerate their credential cache because the Kumo API isn't returning the fields the integration needs. That's the dependency in one line: a local connection you can't re-establish without a cloud that cooperates. **MELCloud breaks at the account and the library.** The swap from an archived `pymelcloud` to a maintained `python-melcloud` is exactly this failure mode, caught and fixed. That it happened inside Home Assistant core is the argument for this route — a built-in integration has a code owner, a review process, and a release train behind it. **ESPHome breaks at the protocol edges.** No vendor can revoke your access, but nobody can guarantee your specific unit either. The August 2026 commits included a setpoint-table fix for one model and a rounding fix for its temperature encoding — a long tail of per-model quirks, fixed as owners report them. Common unit, uneventful. Unusual unit, and you may be the person filing the report. ## Do You Actually Need to Buy Anything? Not necessarily, and this is where I'd rather lose the sale than mislead you. If your indoor unit already has a Mitsubishi Wi-Fi interface fitted, Kumo or MELCloud gets you a climate entity this evening for nothing, without opening anything or touching a breaker. Try that first. If it works and you're content, you're done. Buy hardware when one of these is true: - **You don't have the adapter.** New, it's about $227 in North America. A CN105 board is $35 pre-assembled, or about $15 in [parts](https://serin-labs.com/parts.html) if you'd rather build it. - **You want the cloud out of the loop entirely.** Kumo gets close; MELCloud doesn't get there at all. - **You want the data.** Compressor frequency, outside air temperature, runtime hours, and error codes come off the serial port. No cloud API exposes that set. One thing to check first: the factory adapter and a CN105 board both want the CN105 port, and most indoor units have exactly one. Some newer units carry a separate CN110 for the factory Wi-Fi module alongside CN105, so [check yours](https://serin-labs.com/compatibility.html) rather than assuming. On a single-port unit you're choosing one occupant, not stacking two. ## Who Should Take Which Route - **North America, adapter already fitted, and you'd rather not open the unit.** Install Kumo through HACS. It polls locally once set up, and `prefer_cache` keeps it running through an outage. Zero cost. - **Europe or another MELCloud market, interface already fitted.** Add the built-in MELCloud integration. Nothing to install, maintained inside Home Assistant core. Accept that it's cloud-polled. - **No adapter, or you want it genuinely local.** CN105 with ESPHome. Cheapest per zone, the only route that shows you what the compressor is doing, and the only one where nobody can change the terms on you. - **You want one board in Home Assistant and a non-Apple voice ecosystem, no bridge.** Flash the firmware instead of ESPHome. It's beta and gives up the compressor diagnostics. - **You're on Apple Home rather than Home Assistant.** Different question, [answered separately](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) — including bridging one into the other. If the third route is yours: 1. [Check your unit for a CN105 port](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html). Five minutes, and it's the only step that can disqualify you. 2. Get the [board and cable](https://serin-labs.com/parts.html), one set per indoor unit, or the [pre-assembled CN105 ESP32 controller](https://serin-labs.com/controller.html). 3. [Flash the ESPHome firmware](https://serin-labs.com/flash.html) from your browser, then follow the [setup guide](https://serin-labs.com/esphome/setup.html) to adopt it. If the flash stalls, [it's usually the cable](https://serin-labs.com/blog/esphome-flashing-troubleshooting.html). 4. Regenerate your config in the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) once you know what your unit supports. Still weighing whether to leave the factory app at all? That's [a separate argument](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html). Two of these routes borrow Mitsubishi's cloud to reach a heat pump ten feet away. The other two just pick up the wire that was already there. ## Related - [ESPHome setup guide](https://serin-labs.com/esphome/setup.html) - [The ESPHome YAML generator](https://serin-labs.com/esphome/generate-yaml.html) - [The Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) - [Every smart-control option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Your Mitsubishi Is Blinking. Here's How to Read It. > What a blinking light on a Mitsubishi mini-split actually means, with blink counts and error codes traced to named Mitsubishi service manuals — and when to stop and call a technician. Source: https://serin-labs.com/blog/mitsubishi-blinking-light-error-codes.html Last updated: 2026-08-23 August 23, 2026 · Serin Labs You walked past the indoor unit and the little light is blinking. It wasn't doing that last week. Now you're on your phone at 10pm working out whether this is a $0 problem or a $2,000 one. Here's the first thing nobody leads with: on a lot of Mitsubishi wall units, a blinking light is *normal*. It means the room is nearly at your setpoint. When it isn't normal, the blink count means something specific — and which specific thing depends on your model's manual. So I read those manuals. Every table below carries the number it came from, and I'll say plainly where this post stops. **Quick Facts: Mitsubishi Blinking Lights** - **A blinking light is often normal.** On MSZ-FS units, service manual **OBH872A** lists a blinking operation indicator as "the room temperature is approaching the set temperature," about 2 to 4°F (1 to 2°C) from setpoint. - **A fault blink comes with the fan stopping.** The manuals state that on detecting an abnormality, "the indoor fan motor turns OFF and OPERATION INDICATOR lamp blinks." - **Fault blinks are counted in groups**, separated by a 2.5-second pause: 2 = thermistor, 3 = indoor fan motor, 4 = indoor control system, 5 = outdoor power system, 6 = outdoor thermistors, 7 = outdoor control system, 14 or more = other. A continuous 0.5-second on/off blink means miswiring or serial signal. - **Count at least two full cycles** before you decide what you saw. The manuals say so directly. - **Letter codes (P1, P5, E6, U2) come from a wired remote controller**, not from the blinking lamp. Ceiling cassettes such as the SLZ-KF series list them in manual **TCH118**. - **Codes vary by model.** Find your own model number and its service manual before acting on any table, including this one. ## Why Is My Mitsubishi's Operation Light Blinking? Mitsubishi's documentation calls it the **OPERATION INDICATOR lamp**. Plenty of people search for it as the green light. On the **MSZ-FS** series (manual [OBH872A](https://www.mitsubishitechinfo.ca/sites/default/files/SH_MSZ-FS06_18NA_OBH872A.pdf), covering MSZ-FS06NA through MSZ-FS18NA), the indicator has three normal states. Lit means the unit is working to reach your setpoint, about 4°F (2°C) or more away. **Blinking means the room temperature is approaching the set temperature**, roughly 2 to 4°F (1 to 2°C) out. Not lit means standby, and the manual notes that state only occurs during multi-system operation. So a blinking light on a unit that's running normally is the most boring possible outcome. ## Normal Blink or Fault Blink? One Question Settles It Ask yourself whether the unit is still blowing air. OBH872A opens its check table with this: "When the indoor unit has started operation and detected an abnormality of the following condition (the first detection after the power ON), the indoor fan motor turns OFF and OPERATION INDICATOR lamp blinks." A fault blink and a dead fan arrive together. That gives you a clean split. Blinking, fan running, room close to setpoint? Normal. Blinking with the fan stopped, or nothing responding at all? Now the count matters. One detail before you count. In the MSZ-FS and MSZ-FH manuals the fault appears on "the left lamp of the OPERATION INDICATOR lamp." In the MSZ-GE and MSY-GE manual it's the **upper** lamp. Same numbering, different geometry. ## What Each Blink Count Means on a Wall-Mounted MSZ Unit This is section 9-4, "TROUBLESHOOTING CHECK TABLE." I checked three manuals and the numbering is identical in all three: [OBH872A](https://www.mitsubishitechinfo.ca/sites/default/files/SH_MSZ-FS06_18NA_OBH872A.pdf) (MSZ-FS06–18NA), [OBH683E](https://www.mitsubishitechinfo.ca/sites/default/files/SH_MSZ-FH06_18NA%282%29_OBH683E.pdf) (MSZ-FH06–18NA), and [OBH548D](https://www.mitsubishitechinfo.ca/sites/default/files/SH_MS%28Y%29%28Z%29-GE-NA_OBH548D_16.pdf) (MSZ-GE and MSY-GE series). | Blink pattern | Abnormal point | What the manual says triggers it | | --- | --- | --- | | Continuous, 0.5 s on / 0.5 s off | Miswiring or serial signal | Serial signal from the outdoor unit not received for 6 minutes. Indoor and outdoor units don't operate. | | 2 blinks, 2.5 s pause | Indoor coil thermistor or room temperature thermistor | Thermistor short or open circuit | | 3 blinks, 2.5 s pause | Indoor fan motor | Rotational frequency feedback signal not emitted during fan operation | | 4 blinks, 2.5 s pause | Indoor control system | Can't read data in the indoor control board's nonvolatile memory | | 5 blinks, 2.5 s pause | Outdoor power system | Compressor stopped 3 times in a row for overcurrent or start-up failure protection, within 1 minute of start-up | | 6 blinks, 2.5 s pause | Outdoor thermistors | Outdoor thermistor short or open circuit during compressor operation | | 7 blinks, 2.5 s pause | Outdoor control system | Can't read data in the inverter or outdoor control board's nonvolatile memory | | 14 or more blinks, 2.5 s pause | Other abnormality | Something outside the list above | | Lamp lit steady, outdoor unit dead | Outdoor control system | Can't read data in the inverter or outdoor control board's nonvolatile memory | The pause is your delimiter. Count the blinks between two 2.5-second gaps, then confirm on a second cycle. The manuals tell servicers to "check at least 2 consecutive blinking cycles," and that holds from your sofa too. Note what's missing: no 1-blink, nothing from 8 through 13. If you counted one of those, you were reading a different table — which is what ruins most answers online. ## The Second Blink Table That Makes Forum Answers Wrong Mitsubishi wall units have a second diagnostic mode. Section 9-2 of OBH872A and OBH683E describes a **failure mode recall function**: the unit memorizes a fault that already happened, and a technician plays it back with a button sequence on the handheld remote. It uses the same lamp. It uses different numbers. The manual flags this itself, in a note directly under the table: "Blinking patterns of this mode differ from the ones of TROUBLESHOOTING CHECK TABLE (9-4.)." | Blinks in recall mode | Abnormal point (per OBH872A / OBH683E) | | --- | --- | | Not lit | Normal | | 1 blink every 0.5 s | Room temperature thermistor | | 2 blinks | Indoor coil thermistor | | 3 blinks | Serial signal | | 6 blinks | i-see sensor (listed separately, units with one) | | 11 blinks | Indoor fan motor | | 12 blinks | Indoor control system | Put the two tables side by side and the problem is obvious. **Three blinks means the indoor fan motor in the live table and the serial signal in the recall table.** Six means outdoor thermistors in one and the i-see sensor in the other. A blink count with no table attached is worth nothing. I'm describing recall mode rather than walking you through it. It's a service procedure that changes the unit's state, and the manual warns: "Make sure to release the failure mode recall function after it is set up, otherwise the unit cannot operate properly." Leave it to your technician. ## Wired and Cassette Units Show Letter Codes Instead If you searched "Mitsubishi error codes" and expected P5 or U2, you have a different class of unit in mind. Those are **check codes**, and they come from a wired remote controller rather than a blinking lamp. Take the **SLZ-KF** ceiling cassettes. Technical & service manual [TCH118](https://www.mitsubishitechinfo.ca/sites/default/files/SH_SLZ-KF09_18NA1_TCH118A.pdf), Revised Edition-A, August 2023, covers SLZ-KF09NA1 through SLZ-KF18NA1. It states that "present and past check codes are logged, and they can be displayed on the wired remote controller or controller board of outdoor unit." On the wireless remote, the unit self-checks and reports the same code as a count of blinks and beeps. Here's the indoor-unit half of that table, TCH118's "Output pattern A": | Blinks / beeps | Check code | Symptom | | --- | --- | --- | | 1 | P1 | Intake sensor error | | 2 | P2, P9 | Pipe (liquid or 2-phase pipe) sensor error | | 3 | E6, E7 | Indoor/outdoor unit communication error | | 4 | P4 | Float switch connector open | | 5 | P5 / PA | Drain pump error / forced compressor error | | 6 | P6 | Freezing (cooling) or overheating protection (heating) | | 7 | EE | Assembly error (system error) | | 8 | P8 | Pipe temperature error | | 9 | E4, E5 | Communication error between wired remote controller and indoor unit | | 11 | PB (Pb) | Indoor unit fan motor error | | 12 | FB (Fb) | Indoor unit control system error (memory error, etc.) | | 14 | PL | Refrigerant circuit abnormal | Faults the outdoor unit raises sit in a second table, "Output pattern B," distinguished by a 3-second lamp-on before the count starts. That's where the U codes live: **U2** for abnormal high discharge temperature or insufficient refrigerant, **U1/Ud** for abnormal high pressure, **U5** for heat sink temperature, **U6** for compressor overcurrent or power module trouble, **U3/U4** for open or short outdoor thermistors. TCH118 adds its own caveat, and it's the same one I'd give you: "The supported check codes may vary depending on the connected outdoor unit." Notice that "3 blinks" now means indoor/outdoor communication — a third meaning for the same count, on the same brand. That's why every table on this page carries a manual number. ## What You Can Safely Check Yourself, and Where to Stop A short list any owner can check without opening anything. **Clean or check the filters.** They lift out from behind the front panel on every wall unit I've handled, and restricted airflow is one of the few causes an owner can remove. **Clear the airflow path.** Nothing draped over the unit, nothing blocking the outdoor unit's coil, no snow or leaves packed against it. **Check the breaker.** If the unit is completely dead rather than blinking, start there. **Replace the remote's batteries.** If the unit ignores the remote but runs, that's a remote problem, not a fault code. OBH872A notes that "weak batteries may cause the remote controller malfunction," and that you should press RESET after swapping them. **Try a power cycle, once.** Off at the breaker, wait, back on. If the same code returns, it's real, and repeating the cycle won't change that. That's the list. Everything past it is a technician's job, and the manuals say so in their own remedy column: replace the indoor electronic control board, check the stop valve, check the 4-way valve, replace the inverter board. Multimeter, gauge set and license territory. OBH872A's servicing precautions start with turning the unit off at the remote, confirming the horizontal vane is closed, then killing the breaker and unplugging it. If a fix opens with that sequence, it's not a homeowner fix. **Diagnose, don't disassemble.** ## How to Find the Service Manual for Your Own Model I verified four manuals for this post. Mitsubishi has hundreds, so the useful skill is finding yours. ![The model-number label on a Mitsubishi Electric indoor unit, reading MSZ-FH12NA](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) Start with the model number on the **indoor** unit — usually on a label behind or beside the front flap, not on the remote. Then search [mitsubishitechinfo.ca](https://www.mitsubishitechinfo.ca/) for it. The manuals are public PDFs, and troubleshooting gets its own chapter: section 9 in the three wall-unit manuals above, section 8 in the cassette manual. Two things to expect. Indoor manuals hand off outdoor faults — mine repeatedly say "refer to outdoor unit service manual" for the 5, 6 and 7 blink codes, so a full diagnosis needs both documents. And manuals get revised: OBH548 is on Revised Edition-D, OBH683 on E. Quote the revision letter when you pass a finding on. ## Reading the Code Without Counting Blinks Everything above exists because the indoor unit's only output channel is one lamp. Clever, given the constraint. It's also 2026, and counting a lamp in a dark hallway is a strange way to learn your compressor tripped. Most Mitsubishi indoor units have a **CN105** service port on the control board — the same port Mitsubishi's own Wi-Fi adapter and its [MHK2 and PAC-SDW01RC-1 wall controllers](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) plug into. It's a two-way serial link, so whatever hangs off it can ask the unit questions instead of watching a light. ![The empty red CN105 serial port on a Mitsubishi indoor unit's control board, with the CN105 label and pins 1 and 5 marked in the silkscreen](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp) The [Serin controller](https://serin-labs.com/controller.html) is a small ESP32 board on that port. Both firmwares you can flash to it — ESPHome, or the Apple Home compatible build — expose an error-code field alongside compressor frequency and runtime hours. The code becomes a value in the web UI, or an entity you can log and alert on in Home Assistant, whether or not you were standing there when it tripped. Be clear about what that does and doesn't buy you. It reports the code your unit hands it; it doesn't diagnose the fault, and you'll still open the service manual to find out what the code means. What it removes is the counting, the guessing, and the "it was doing it earlier, I swear" conversation with your technician. The [full diagnostics list](https://serin-labs.com/homekit/features.html) and our [controller troubleshooting notes](https://serin-labs.com/troubleshooting.html) cover the rest. ## Who Should Do What - **Blinking, and the fan is still running.** Almost certainly normal — the room is close to setpoint. Check again in an hour and get on with your evening. - **Blinking with the fan stopped, first time it's happened.** Count two full cycles, note the number, check filters and airflow, power cycle once. If it returns, you have a code to hand over. - **You counted a code in the 5, 6, 7 or 14+ range.** That's the outdoor unit or the refrigerant circuit. Call a technician and give them the count, your indoor model number, and the manual number if you found it. - **You have a wired controller or a cassette.** Read the code off the screen — it's more precise than any blink count. Then look it up in your model's own manual. - **You'd rather never count blinks again.** [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html), then put something on it that logs the code for you. If you're going that route: 1. [Confirm your indoor unit has a CN105 port](https://serin-labs.com/compatibility.html). 2. Get the [board and cable](https://serin-labs.com/parts.html), one per indoor unit, or the [pre-assembled controller](https://serin-labs.com/controller.html). 3. [Flash the firmware](https://serin-labs.com/flash.html) from your browser — ESPHome for Home Assistant, or the Apple Home compatible build for Apple households. A blink count is a fault code with the label torn off. Find the manual that puts the label back on. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [The controller that reports the code](https://serin-labs.com/controller.html) - [Cheaper alternative to the MHK2](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) - [Controller troubleshooting](https://serin-labs.com/troubleshooting.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # ratgdo, HeishaMon, and the Case for Controlling Your Own Appliances > Garage doors have ratgdo, Panasonic has HeishaMon, Mitsubishi has CN105. The same pattern keeps recurring, and the same things keep breaking it. Source: https://serin-labs.com/blog/open-source-appliance-controllers.html Last updated: 2026-08-19 August 19, 2026 · Serin Labs The first time I took the front cover off a Mitsubishi indoor unit, I wasn't looking for a hack. I was looking for a connector the manual doesn't mention, on a board the manual doesn't show. It's right there in the silkscreen, five pins, usually empty: **CN105**. That connector isn't an oversight, and it isn't a debug header somebody forgot to remove. It's where Mitsubishi's own Wi-Fi adapter plugs in. Once you notice that, you start seeing the same arrangement in appliances that have nothing to do with each other. Here's the pattern. A manufacturer builds an accessory port into the product, because its own add-on has to attach somewhere. It sells you a dongle that plugs into that port and routes your commands through its servers. Somebody buys the dongle, watches the wire, and writes down what they see. Then somebody else builds a small board that speaks the same language and answers to nobody. Garage doors have **ratgdo**. Panasonic has **HeishaMon**. Mitsubishi has CN105. This post is about what they share, and — the more useful half — where the pattern tends to break. **Quick Facts** - **The recurring shape:** OEM accessory port, plus OEM cloud dongle, plus somebody's protocol notes, equals a local replacement - **ratgdo (Chamberlain / LiftMaster):** Paul Wieland. Handles **Security+ 2.0**, Security+ 1.0, and dry contact. GPL-2.0 - **HeishaMon (Panasonic Aquarea):** connects to the **CN-CNT** or **CN-NMODE** socket. Replaces Panasonic's **CZ-TAW1** Wi-Fi module. No license file in the repo - **CN105 (Mitsubishi):** **SwiCago/HeatPump** is the reference implementation. Ships GPL-3.0 license text; its README says LGPL-3.0 - **Where it breaks:** abandonment, protocol drift, missing licenses, and your warranty ![Close-up of a Mitsubishi mini-split indoor unit control board with the red CN105 serial connector labeled on the silkscreen, surrounded by ribbon cables and an integrated circuit](https://serin-labs.com/assets/content/800/cn105-serial-port-mitsubishi-indoor-unit.webp.dc5bf5f158a5.webp) ## The Four Steps, Every Time Step one: the port exists before anyone hacks anything. Manufacturers need a place to attach their own optional accessories, so they design one in and label it on the board. Step two: the manufacturer sells an adapter for that port, and the adapter talks to a cloud service. You get an app, an account, and a dependency on somebody else's servers staying up. Step three: one person reverse-engineers the protocol and publishes what they found. This is the step that costs real time, and it's almost always uncompensated. Step four is the easy one. Once the protocol is written down, replacement hardware is a microcontroller and a cable. The hard part was never the electronics. ## Three Projects, One Shape | Project | Appliance | Where it connects | What it displaces | License | Hosted on | | --- | --- | --- | --- | --- | --- | | [**ratgdo**](https://github.com/PaulWieland/ratgdo) | Chamberlain, LiftMaster, Merlin openers | The opener's own control-board terminals | The myQ app | GPL-2.0 | GitHub | | [**HeishaMon**](https://github.com/heishamon/HeishaMon) | Panasonic Aquarea heat pumps | CN-CNT or CN-NMODE socket | The CZ-TAW1 Wi-Fi module | No license file | GitHub | | [**SwiCago/HeatPump**](https://github.com/SwiCago/HeatPump) · and its forks | Mitsubishi Electric indoor units | CN105, a 5-pin JST connector | The Kumo Cloud / MELCloud adapter | GPL-3.0 text, LGPL-3.0 README | GitHub | One honest asterisk on that table. ratgdo isn't quite a service-port project — it wires to the red, white and black terminals on the opener's own control board, the same ones the wall button uses. Same outcome, slightly different door in. ## Why the Port Is There in the First Place It's worth being clear that none of this is an exploit. The manufacturer put a labelled connector on the board and sold an accessory for it. The community just built a different accessory. Mitsubishi's **MAC-587IF-E** adapter, the one that makes Kumo Cloud and MELCloud work, plugs into CN105. Panasonic's CZ-TAW1 plugs into the Aquarea's service socket — HeishaMon's own documentation notes that swapping is "only a matter of plugging the cable out from CZ-TAW1 and reconnecting to your HeishaMon device." The physical interface was designed to be used. ![Mitsubishi's MAC-587IF-E Wi-Fi adapter connected inside a Mitsubishi Electric indoor unit with the front panel opened](https://serin-labs.com/assets/content/800/mitsubishi-mac-587if-e-wifi-adapter.webp.ea09b08dbc81.webp) What the community changed is where the commands go. The port stayed the same. The server on the other end disappeared. ## ratgdo, and What Happens When the Cloud Closes The garage-door version of this story is sharper, because you can date it. In November 2023, Chamberlain Group said publicly it would "prevent unauthorized usage of our myQ ecosystem through third-party apps." Home Assistant removed its myQ integration in the 2023.12 release, on 6 December 2023. The [Home Assistant announcement](https://www.home-assistant.io/blog/2023/11/06/removal-of-myq-integration/) is quotable: "We are playing a game of cat and mouse with MyQ and right now it looks like the cat is winning." That's what a cloud API dependency looks like when the vendor decides it's done. What survived was the wire. The same post pointed readers at ratgdo, describing it as "a fully local, ESPHome-based, solution that is compatible with MyQ's security+ protocol and can be installed on an existing MyQ system by connecting three wires." The hardware is Paul Wieland's, GPL-2.0, and the [ESPHome firmware](https://github.com/ratgdo/esphome-ratgdo) is a separate GPL-2.0 repo under the ratgdo organisation. One vendor closed a documented API and thousands of integrations died the same week. The physical terminals on the opener were unaffected, because there was nobody to switch them off. ## CN105, the Oldest Lineage and the Most Forked The Mitsubishi side has the longest paper trail, and it's worth naming the people in it. **SwiCago/HeatPump** is the Arduino library that made CN105 usable, and every ESPHome component on this port descends from it. It's a 5-position JST connector carrying serial, and it can also power the board it's talking to. SwiCago's own README credits earlier work, and the detail there is a small warning in itself. It thanks "Hadley in New Zealand" for a blog post "describing baud rate and details of cn105," then links the original URL — followed immediately by a Wayback Machine link, because the site no longer exists. The lineage runs SwiCago/HeatPump, then [**geoffdavis/esphome-mitsubishiheatpump**](https://github.com/geoffdavis/esphome-mitsubishiheatpump), then [**echavet/MitsubishiCN105ESPHome**](https://github.com/echavet/MitsubishiCN105ESPHome), which is the component our own ESPHome builds use. We didn't originate any of it. The full chain, with licenses, is on our [licenses page](https://serin-labs.com/licenses.html), and I'd rather over-attribute than under-attribute here. ## Where It Tends to Break This is the part the enthusiastic version of this article skips. The pattern works, but it fails in predictable ways, and you should know which one is coming for you. | How it breaks | What you'd see | A concrete example | | --- | --- | --- | | **Abandonment** | The repo's still open, but nothing's landed in a long time | SwiCago/HeatPump has had no pushes since September 2024, though its forks stay active | | **Protocol drift** | A newer model speaks something the project doesn't | Chamberlain's Security+ 1.0 and 2.0 needed separate support work in ratgdo | | **License ambiguity** | No LICENSE file, or one that disagrees with the README | HeishaMon and MitsubishiCN105ESPHome ship no license file at all | | **Warranty exposure** | Your installer asks what that board is | Not a project failing — but it's yours to carry | Abandonment is the one people underestimate. These projects usually have one person who understands the protocol and a queue of issues nobody else can close. That isn't a criticism of the maintainers; it's arithmetic. Protocol drift is slower and quieter. A manufacturer ships a new generation, the framing changes, and last year's notes describe last year's firmware. Chamberlain's two Security+ generations are the visible version of this — each one was separate work for the project, not a free upgrade. And warranty is genuinely on you. Our own compliance page says it plainly: connecting third-party accessories may affect your equipment warranty, and you should check with your installer or the manufacturer if you're unsure. That's not boilerplate we can wave away, and neither can anyone else in this article. ## The Licensing Is Softer Than It Looks For a category built on open source, the licensing here is inconsistent. ratgdo is the clean one: a GPL-2.0 license file sitting in the repository where you'd expect it. HeishaMon has no license file at all. Neither does MitsubishiCN105ESPHome, the component a lot of Mitsubishi installs are running right now. SwiCago's HeatPump has a subtler problem: the repository ships the GPL-3.0 license text, while the README says LGPL-3.0. Those are different in a way that matters if you're linking against it commercially. We hit this ourselves, which is why [our licenses page](https://serin-labs.com/licenses.html) is longer than it probably should be. The Apple Home compatible firmware isn't Serin Labs copyright — it's built on Espressif's **esp-homekit-sdk**, under the Espressif MIT License with mu_srp under Apache-2.0, on top of ESP-IDF under Apache-2.0. We package and flash things other people wrote. Saying so costs nothing and it's the accurate description. If you're picking a project to depend on, read its LICENSE file before you read its feature list. It takes thirty seconds and it tells you what you're actually signing up for. ## Where This Leaves You Every entry here is somebody choosing to keep a physical connection instead of a revocable one. That's the whole argument, and it holds up better than most smart-home arguments do. - **You have a Chamberlain or LiftMaster opener.** ratgdo, three wires, GPL-2.0. Home Assistant recommended it themselves when myQ closed. - **You have a Panasonic Aquarea.** HeishaMon replaces the CZ-TAW1 on the same socket. Note the missing license file before you build on it. - **You have a Mitsubishi mini-split.** That's the CN105 stack above, and Serin Labs is one packaging of it — a board and cable you flash yourself from a browser. The firmware is other people's work, and we say so on every page. - **Your appliance isn't on this list.** Search the connector, not the brand. "CN105", "CN-CNT" — those queries find projects that a brand name never will. If you want to check whether your own hardware is in this pattern: 1. Kill power at the breaker, take the cover off, and photograph the control board. Every labelled connector is a lead. 2. Search that label alongside "ESPHome", "MQTT", or "Home Assistant" before you buy anything. The port is worthless without somebody's protocol notes. 3. Open the project's LICENSE file and its commit history. One tells you what you can do with it, the other tells you whether anyone's still home. 4. Check your warranty terms, and decide with your eyes open rather than after the fact. The connector was always yours. Somebody just had to write down what it says. ## Related - [Firmware licenses and attribution](https://serin-labs.com/licenses.html) - [ESPHome vs Apple Home firmware](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) - [Leaving Kumo Cloud behind](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Why IR Smart Controllers Fall Short on Mitsubishi (and When They're Still Right) > Sensibo and Cielo drive a Mitsubishi mini-split blind: infrared is one-way, so the app's state is a guess it maintains. What that breaks, and when IR is still the right buy. Source: https://serin-labs.com/blog/ir-smart-controllers-mitsubishi-limits.html Last updated: 2026-09-05 August 16, 2026 · Serin Labs You set the app to heat, 70, before bed. In the morning it still says heat, 70, running. The room is cold and the unit is off, because somebody picked up the handheld remote at midnight and turned it off. Nothing failed. No error, no offline badge, no push notification. The app is showing you exactly what it believes, and what it believes is the last command it sent — which stopped being true six hours ago. ![A universal IR mini-split controller mounted on the wall beside a light switch, with a wall-mounted mini-split in the background](https://serin-labs.com/assets/content/800/sensibo-ir-controller-mini-split-wall.webp.919d36abb774.webp) That's the whole story of infrared control in one paragraph. An IR controller is a remote that never loses its batteries and never leaves the room. It's genuinely useful. But it can only talk, never listen, and everything below follows from that one fact. I've covered where IR sits among [all four smart-control options](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) and among [the thermostats that actually fit a mini-split](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html). This post goes one level down: *why* it's one-way, what specifically drifts, and who should still buy one anyway. Because plenty of people should. **Quick Facts: One-Way vs Two-Way** - **Infrared is transmit-only in practice.** Your indoor unit has an IR receiver. It has nothing pointed back at the room to answer with. - **Every button press sends the whole state.** A Mitsubishi IR frame is 18 bytes — 144 bits carrying power, mode, temperature, fan, and vane together, not a single "temp up" instruction. - **So the app's "current state" is dead reckoning.** It's a model the controller maintains from what it last sent, not a reading it took. - **The handheld remote breaks that model silently.** There's no collision, no warning. The two pictures just quietly disagree. - **CN105 is a request-and-response link.** A board on that port polls the unit and reads back real settings plus compressor frequency, outside air temperature, runtime, and error codes. - **IR still wins on installation.** Nothing opened, any brand, five minutes, roughly **$79–$164** depending on the model. ## What "One-Way" Actually Means Here The published posts both say infrared is one-way, and then move on. It's worth slowing down, because "one-way" isn't a firmware limitation somebody could patch. It's the wiring of the room. Your remote has an IR LED. Your indoor unit has an IR receiver behind that little tinted window, plus a beeper and a couple of status lights. That's the entire return channel: a beep and an LED, both meant for a human standing there, neither readable by a plastic box on the opposite wall. So there is no protocol here in the two-party sense. There's a broadcast, and a hope. **Sensibo**, **Cielo**, and **Mysa** are all in the same position on this, and no amount of money moves them out of it — a $164 IR thermostat is exactly as deaf as a $79 one. ## Your Remote Sends 18 Bytes of State, Every Time I went and read the frame format rather than paraphrasing it. In [IRremoteESP8266](https://github.com/crankyoldgit/IRremoteESP8266), the open-source library most of the hobbyist world uses to decode these signals, a Mitsubishi A/C transmission is defined as `kMitsubishiACStateLength = 18` — eighteen bytes, 144 bits, sent as one block. Look at what's packed into that block and the design becomes obvious. The library's Mitsubishi protocol struct carries power, mode, temperature, fan speed, vane, wide vane, clock, and timer fields in the same frame. Press "fan up" on the handheld and you don't send a fan-up command. You retransmit all eighteen bytes, with every other setting alongside it. Which means the remote in your drawer is itself a little state machine. It holds a complete picture of what it thinks the unit should be doing, and it overwrites the unit with that picture on every press. An IR smart controller has to do the same thing. It has no choice — the frame format demands a full state, so it must maintain one. That maintained state is what the app draws on your screen. It is a guess with a nice UI on it. ## Three Ways the Guess Drifts The comparison post mentions the handheld remote. That's the famous one, but it's one of three, and the other two are the ones that surprise people. **Someone uses the handheld remote.** The unit obeys, because it can't tell a remote from a robot. The IR box never hears about it, because nobody told it and nobody can. Turn the unit off from the couch and your app will still be showing "cooling, 72" tomorrow. **A transmission doesn't land.** Infrared needs line of sight, so a closed door, a person walking through, a box on a shelf angled slightly wrong, or a bright afternoon on the receiver window can all eat a frame. The controller has no acknowledgement to wait for, so it can't retry intelligently. It sent, therefore it assumes it worked. **The unit changes state on its own.** This is the one nobody plans for. Heat pumps shut down on error codes, run defrost cycles, and act on timers you set months ago from the remote. Every one of those is invisible to a device that only transmits. Your unit can be sitting on a fault code for a week while the app cheerfully reports "heating, 70." There is a genuine consolation here, and it comes straight from the 18-byte frame. Because every transmission is absolute state rather than a delta, any single command resyncs everything at once. Drift doesn't accumulate — it persists until the next command, then vanishes completely. That's why IR controllers feel fine day to day and feel broken at 6 a.m., which is exactly when a schedule fires into a state nobody has corrected since midnight. ## What an IR Controller Can Actually See Here's where the honest version diverges from the sales pitch, in both directions. An IR controller is blind about the *unit*. It is not blind about the *room*. The **Sensibo Air** product page lists a "High accuracy temperature & humidity sensor" on board, and every serious IR controller in this category has the equivalent. So the box does close a loop — just a different one. It measures the room, compares against your setpoint, and fires commands until the number moves. For most households that's the loop that matters. You don't care what the compressor is doing; you care whether the bedroom is 68 or 74. Measuring the room directly is arguably a better signal than the unit's own sensor, which sits up at the ceiling reading return air — the reason we [sell a remote temperature sensor](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) for the CN105 board at all. What you can't do is reason backwards from room temperature to unit state with any confidence. A room that's warming might mean the unit's heating, or it might mean afternoon sun on a west window. That's inferring a cause from an effect, and it's guessing dressed up as sensing. One more thing worth knowing if you're heading for Home Assistant: as I covered in [the thermostat roundup](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html), Sensibo's and Cielo's official integrations are cloud-polling only — roughly once a minute and once every two minutes respectively, through the vendor's servers. So Home Assistant isn't reading the unit. It's reading a copy, over the internet, of the vendor's copy of a guess. ## What Two-Way Looks Like on the CN105 Port ![Close-up of a Mitsubishi mini-split indoor unit control board with the red CN105 serial connector labeled on the silkscreen, surrounded by ribbon cables and an integrated circuit](https://serin-labs.com/assets/content/800/cn105-serial-port-mitsubishi-indoor-unit.webp.dc5bf5f158a5.webp) **CN105** is the service port on the indoor unit's control board — the same one Mitsubishi's own Wi-Fi adapter and wall controllers use. It's a serial connection, which means frames go both directions. A controller can ask, and the unit answers. That changes the vocabulary entirely. The [HomeKit-compatible firmware](https://serin-labs.com/homekit/features.html) exposes a poll interval as an ordinary device setting, alongside the device name and log level, because polling is the basic verb of the thing. It doesn't hold a model of your unit. It asks your unit, on a schedule you choose, and shows you the reply. The reply carries more than the settings. The firmware's diagnostics list compressor frequency, outside temperature, runtime hours, error codes, and sub-mode information — values that exist nowhere in an IR frame because the remote was never meant to receive them. ![The Serin controller's built-in web interface showing thermostat, fan, and vane controls in a browser with no app or cloud](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) The clearest illustration is a small feature that simply couldn't exist open-loop. When the firmware is feeding a Bluetooth room sensor's temperature to the heat pump, and that sensor goes quiet, it falls back to the unit's internal thermistor after a stale timeout. Detecting that something stopped arriving requires expecting arrivals. Transmit-only devices don't get to have that idea. ## Open Loop vs Closed Loop, Side by Side | | IR controller (Sensibo, Cielo, Mysa) | Local CN105 board (Serin) | | --- | --- | --- | | **Direction** | Transmit only | Request and response | | **What "current state" is** | The last command it sent | The last reading it took | | **Sees a handheld-remote change** | No | Yes, at the next poll | | **Sees a lost command** | No, assumes it landed | Yes, the reply disagrees | | **Sees the unit shut down on a fault** | No | Yes, error code reported | | **Compressor frequency, outside air temp** | No | Yes | | **Room temperature** | Yes, its own onboard sensor | Return air, or an optional room sensor | | **Drift recovery** | Next command overwrites it | No drift to recover from | | **Needs line of sight** | Yes | No | | **Works on non-Mitsubishi brands** | Yes, any brand | No | | **Installation** | Plug in, nothing opened | Open the indoor unit once | ## Where IR Is Genuinely the Better Buy I sell the CN105 board, so read the next few sentences with that in mind — and then take them at face value, because they're true. If you rent, buy the Sensibo or the Cielo. Opening a landlord's HVAC equipment to plug something into a service port is not a fight worth having over compressor frequency graphs. IR touches nothing, leaves nothing behind, and comes with you when you move. If you won't open the indoor unit, same answer. Some people are fine pulling a plastic cover after killing the breaker, and some people are not, and the second group isn't wrong. There's also a real warranty conversation to have with your installer before adding anything to CN105. If you have mixed brands — a Mitsubishi in the living room and a Fujitsu in the bedroom — IR covers both from one app. The CN105 board only works on Mitsubishi, and no amount of wanting changes that. And if what you actually want is a thermostat that holds a room at a temperature, IR does that competently. The blind spots I've spent this post describing are about the *unit's* state, and plenty of households genuinely never need to know it. ## Who Should Buy What - **You rent, share the unit with a landlord, or won't open the cover.** Get a **Sensibo** or **Cielo**. The state drift is real, and it's a fair price for touching nothing. For an Apple household the Sensibo Air is the one with real HomeKit; [the roundup](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html) has the model-by-model breakdown. - **You have several brands of mini-split.** Get IR. It's the only category here that doesn't care what's on the badge. - **You want the app to be right, every time, without a resync ritual.** Get on **CN105**. Two-way is the only way to be sure, and the household using the handheld remote is exactly who needs it. - **You want diagnostics, or automations you trust.** Get on CN105. An automation firing into an unknown state is a coin flip; one firing off a fresh reading isn't. - **You want a wall screen and no network at all.** Neither category. That's the **MHK2** or **PAC-SDW01RC-1**, covered in [the full comparison](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html). ## The Short Version Infrared didn't fall short by being cheap. It fell short by being a monologue — the frame format has no room for a reply, and the unit has nothing to reply with. Everything else is downstream of that. If your household is one person who only ever uses the app, IR's guess will be right almost always, and $79 is a good price for almost always. If two people share the unit, or somebody likes the handheld, or you want automations you don't have to babysit, buy the connection that can listen. If that's you: 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html) — five minutes, and it's the only hard requirement. 2. Get the [board and cable](https://serin-labs.com/parts.html), one per indoor unit, or the [pre-assembled controller](https://serin-labs.com/controller.html) at $35. 3. [Flash the firmware yourself](https://serin-labs.com/flash.html) from your browser — ESPHome for Home Assistant, or the Apple Home compatible build for Siri. A remote that never loses its batteries is still a remote. It talks to your heat pump; it has never once heard it answer. ## Related - [Every smart-control option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) - [The best smart thermostat for a mini-split](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [The pre-assembled Serin controller](https://serin-labs.com/controller.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # How to Control Your Mini-Split with Apple HomeKit in 2026 > Add a Mitsubishi-family mini-split to Apple Home and Siri. Check compatibility, see what you need, and follow the 20-minute setup. Source: https://serin-labs.com/blog/how-to-control-mini-split-apple-homekit.html Last updated: 2026-08-27 August 12, 2026 · Updated August 27, 2026 · Serin Labs For Mitsubishi-family mini-splits Add your heat pump to the Apple Home app as a thermostat, control it with Siri, and keep everything on your home Wi-Fi. A small controller plugs into the indoor unit; there is no Serin account, cloud service, or subscription. Check my mini-split [See the controller](https://serin-labs.com/controller.html) - From $35 - About 20 minutes - No soldering - No monthly fee ![The pre-assembled Serin Controller with its CN105 cable attached](https://serin-labs.com/assets/gallery/800/serin-controller-20cm-braided-cable.webp.webp) Plugs into the indoor unit ![A mini-split appearing as a Heat Pump thermostat tile in the Apple Home app](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp) Becomes a thermostat in Apple Home ## Can You Add a Mini-Split to Apple HomeKit? Yes. Most mini-splits do not connect directly to Apple Home, but a controller can bridge the gap. The right controller depends on the brand printed on your indoor unit. For most **Mitsubishi Electric** mini-splits, plus many **Trane** and **American Standard** ductless units built by Mitsubishi, the best route is a direct connection inside the indoor unit. The [Serin Controller](https://serin-labs.com/controller.html) plugs into a service connector already on the control board and talks to the heat pump in both directions. That last part matters. Apple Home can show what the unit is actually doing, and changes made with the handheld remote stay in sync. The controller appears as a thermostat tile with temperature, operating mode, fan control, Siri, scenes, and automations. ## Which Mini-Split Brands Work with HomeKit? Best fit for this guide ### Mitsubishi Electric Most wall units, floor units, cassettes, and ducted air handlers from roughly the last 15 years have the required service connector. Often compatible ### Trane and American Standard Many of their ductless systems are rebadged Mitsubishi units with the [same internal connection](https://serin-labs.com/blog/trane-american-standard-ductless-smart-control.html). Use a different route ### Daikin, Fujitsu, LG, Gree, Midea... The Serin Controller does not fit these brands. Use a HomeKit- or Matter-compatible infrared controller such as Sensibo, Mysa, or Klima instead. The quick proxy for a Mitsubishi unit: if it can use Kumo Cloud or MELCloud, it probably has the connector. A model check is still worth doing because a few older series have exceptions. Before you buy ## Will it work with your unit? Most Mitsubishi Electric units made since about 2006 do. Enter the model number from the label on the indoor unit for an instant verdict before you buy anything. ## Why Use a Direct Connection Instead of an IR Controller? An infrared controller is a smart version of the handheld remote. It sends commands across the room, but the mini-split does not answer. If someone uses the original remote, the app can lose track of the current setting. The Mitsubishi service connection is different. It lets the controller ask the unit for its current temperature, mode, fan state, and operating data. Think of it as a conversation instead of a remote shouting across the room. Typical infrared controller - Sends remote-control commands - Needs line of sight and a power outlet - Can drift out of sync with the handheld remote - Works with many mini-split brands Serin direct connection - Reads and controls the actual unit - Installs out of sight and is powered by the unit - Stays in sync with the handheld remote - Works with compatible Mitsubishi-family units Infrared ### Sends only Out of sync It can send a command, but nothing comes back. Apple Home keeps showing the last setting the controller sent, not the one the unit is running. Direct connection ### Sends and reads back In sync The same wire carries commands out and the unit's own state back, so a change made on the handheld remote shows up in Apple Home. Both routes can turn the unit down. Only one of them finds out when someone else does. If opening the indoor unit is not something you want to do, an IR controller is the honest answer. It is easier to install and works across more brands. The [detailed IR comparison](https://serin-labs.com/blog/ir-smart-controllers-mitsubishi-limits.html) covers the trade-offs. ![The Serin Controller with its attached CN105 cable](https://serin-labs.com/assets/gallery/800/serin-controller-20cm-braided-cable.webp.webp) Pre-assembled option ## Serin Controller The controller and tested cable arrive assembled. Nothing to crimp or solder; you install the free HomeKit-compatible firmware from a supported browser before connecting it to the mini-split. From $35 · Free US shipping · 5.0 from 42 reviews [See the Serin Controller](https://serin-labs.com/controller.html) [Prefer to build it yourself?](https://serin-labs.com/parts.html) ## What You Need 1 ### A compatible indoor unit Check the model number first. One controller is required for each indoor unit. 2 ### The controller and cable Buy the pre-assembled version, or source a supported board and cable from the [DIY parts list](https://serin-labs.com/parts.html). 3 ### A computer and USB-C data cable The one-time software installation needs Chrome, Edge, or Brave on a desktop or laptop. It cannot be done from an iPhone or iPad. 4 ### An Apple Home Hub, optionally An Apple TV or HomePod is only required for remote access and automations. At home, your iPhone can control the unit directly. There is no soldering, wire cutting, separate power supply, Serin account, or recurring fee. You do need to turn off the breaker and open the indoor unit's cover to make the plug-in connection. If you are not comfortable doing that, an HVAC technician can connect it. 1. ![The model-number label on a Mitsubishi Electric indoor unit, reading MSZ-FH12NA](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) 1 ### Check your model The model number is on a label on the indoor unit, usually on the right side behind the front panel. 2. ![The controller cable seated in the CN105 connector on the control board of a Mitsubishi MSZ-GL06NA indoor unit, with the board's status lights on](https://serin-labs.com/assets/content/800/serin-cn105-cable-connected-msz-gl06na.webp.a0c9c8ac7920.webp) 2 ### Plug in the controller Turn off the breaker, then plug the cable into the CN105 connector. It only fits one way. 3. ![A mini-split shown as a Heat Pump thermostat tile in the Apple Home app, reading 73 degrees](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp) 3 ### Pair with Apple Home Scan the pairing code once and the mini-split becomes a thermostat you can ask Siri about. The setup as you experience it. The full sequence, including the one-time firmware installation, is in the steps below. ## How to Set Up Mini-Split HomeKit Control, Step by Step Start to finish takes about 20 minutes for the first unit. The browser software installation itself is usually around two minutes. 1. **Install the free firmware.** Connect the controller to your computer with a USB-C data cable and open the [browser installer](https://serin-labs.com/flash.html) in Chrome, Edge, or Brave. Select the Apple Home-compatible build. Nothing needs to be downloaded or compiled. 2. **Connect it to the mini-split.** Turn off power at the breaker, open the indoor unit, and plug the cable into the small service connector labelled CN105. It only fits one way. The [wiring guide](https://serin-labs.com/wiring.html) has photos for common unit types. 3. **Join it to your Wi-Fi.** When first powered, the controller creates a temporary setup network. Join it from your phone and enter your home Wi-Fi details. The [setup guide](https://serin-labs.com/homekit/setup.html) provides the QR code and screenshots. 4. **Add it to Apple Home.** Open the Home app, tap **Add Accessory**, and scan the pairing QR code. Name the thermostat and assign it to a room; Siri picks up that room name automatically. ![The one-time Uncertified Accessory message shown while pairing, with Add Anyway selected](https://serin-labs.com/assets/apple-home-uncertified-accessory-add-anyway.webp) One message Apple will show ### Tap “Add Anyway” once during pairing The open-source firmware is not enrolled in Apple's MFi certification program, so Apple Home displays an “Uncertified Accessory” message. It appears during pairing; it is not a recurring alert. The firmware source and component licenses are public on the [licenses page](https://serin-labs.com/licenses.html). ## What Can You Do with a Mini-Split in HomeKit? ![Apple Home thermostat control for a mini-split, set to cool to 76 degrees](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-control.webp) **Ask Siri.** “Set the bedroom to 70.” “Turn off the office AC.” Pairing is all the setup Siri needs. **Create scenes.** Add the heat pump to Good Night or Leaving Home alongside lights, locks, and shades. **Run automations.** Warm the house before an alarm, set back when the last person leaves, or resume when the first person returns. **Keep the handheld remote.** It continues to work, and the direct connection sees the changes it makes so Apple Home stays in sync. **Use a room-height sensor.** An optional Bluetooth thermometer can regulate from where you sit instead of from the warm return air near the ceiling. The [room-sensor guide](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html) explains why that helps. ## Do You Need a HomePod or Apple TV? Only for remote access and automations. While you are at home, your iPhone communicates with the controller over your home network without a hub. An Apple TV 4K, HomePod, or HomePod mini acting as an Apple Home Hub adds: - **Control away from home**, such as changing the temperature before you return. - **Automations that run on their own**, including schedules and location triggers. There is no additional Serin service or fee. ## Frequently Asked Questions **Does this replace Mitsubishi's Kumo Cloud adapter?** Yes. They use the same service connection, so it is one or the other on a given indoor unit. **Will the handheld remote still work?** Yes. It does not use the internal service connector, and the Serin Controller sees the changes it makes. **Does it work with multi-zone systems?** Yes, with [one controller per indoor unit](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html). Each room appears as its own thermostat in Apple Home. **Does the pre-assembled controller arrive with Apple Home firmware installed?** Normally, no. The generic controller can run several free firmware options, so you select and install the Apple Home-compatible build from the browser. The controller-and-room-sensor bundle is the current exception: it arrives with firmware installed and the sensor linked. **What if I get stuck?** The site has illustrated [setup](https://serin-labs.com/homekit/setup.html), [wiring](https://serin-labs.com/wiring.html), and [troubleshooting](https://serin-labs.com/troubleshooting.html) guides. You can also use the [contact form](https://serin-labs.com/contact.html) or ask in the Serin Labs Discord. **What if my unit does not have a usable CN105 connection?** The Serin Controller will not work with it. Use an IR controller or review the [remaining Mitsubishi options](https://serin-labs.com/blog/mitsubishi-no-cn105-port-options.html). ## The Honest Limits - **It is for Mitsubishi-family systems.** Daikin, Fujitsu, LG, Gree, Midea, and other brands need a different controller. - **You open the indoor unit once.** Power must be off at the breaker while you make the connection. There is no soldering or wire splicing, but it is still work inside HVAC equipment. - **You install the firmware yourself.** The browser flow is short, but it requires a desktop or laptop, a USB-C data cable, and Chrome, Edge, or Brave. - **Apple shows an “Add Anyway” message.** The HomeKit-compatible firmware is open source and not MFi-certified. - **The controller uses the service port.** It generally cannot share that connection with a Mitsubishi wired wall controller. The handheld infrared remote is unaffected. ## Who Should Do This - **You own a compatible Mitsubishi, Trane, or American Standard ductless unit and use Apple Home.** This is the direct, local route: a thermostat tile, Siri, scenes, and no cloud account. - **You own another mini-split brand or do not want to open the indoor unit.** Buy a HomeKit- or Matter-compatible IR controller and accept the one-way-control trade-off. - **You already run Home Assistant as the center of your smart home.** Use the ESPHome build on the same hardware and expose it to Apple Home through Home Assistant's bridge. The [three-route comparison](https://serin-labs.com/blog/mitsubishi-mini-split-apple-home-homekit-siri.html) explains that path. The shortest path from here: 1. [Check your indoor-unit model](https://serin-labs.com/compatibility.html). 2. Get the [pre-assembled Serin Controller](https://serin-labs.com/controller.html) or the [DIY parts](https://serin-labs.com/parts.html), one per indoor unit. 3. Install the free firmware in your browser and follow the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html). The result is the mini-split you already own, now sitting beside your lights and locks in Apple Home—and still working when the internet does not. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [Get the hardware](https://serin-labs.com/controller.html) - [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) - [Compare three Mitsubishi-to-Apple-Home routes](https://serin-labs.com/blog/mitsubishi-mini-split-apple-home-homekit-siri.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Your Mitsubishi Doesn't Have a Usable CN105 Port. Here's What Still Works. > The model checker said no. What that verdict means on MSZ-FD, MSZ-HE, MSZ-A and MS-WA, why a connector you can see doesn't overturn it, and the IR controller to buy instead. Source: https://serin-labs.com/blog/mitsubishi-no-cn105-port-options.html Last updated: 2026-09-26 August 12, 2026 · Serin Labs You typed your model number into [the checker](https://serin-labs.com/compatibility.html) and got a red answer back. Not supported. Maybe you'd already had the front panel off and seen a connector labeled CN105 sitting right there on the board, which makes the verdict feel like a mistake. It isn't. On a handful of Mitsubishi series the connector is fitted but isn't wired for control, and finding it doesn't overturn anything. Here's what that actually means, how to be sure you're really in that group, and what to buy instead. That last part is an infrared controller, and Serin Labs doesn't sell one. ![Close-up of a Mitsubishi mini-split indoor unit control board with the red CN105 serial connector labeled on the silkscreen, surrounded by ribbon cables and an integrated circuit](https://serin-labs.com/assets/content/800/cn105-serial-port-mitsubishi-indoor-unit.webp.dc5bf5f158a5.webp) **Quick Facts: What the "No Control" Verdict Means** - **Four wall-mounted series are marked "No":** **MSZ-FD**, **MSZ-HE**, **MSZ-A / MSY-A**, and **MS-WA**. - **The connector may still be fitted.** On some of those boards CN105 is physically present but isn't wired for control. Seeing it proves nothing. - **Four more families split by trim suffix:** MSZ-FE, MSZ-GE / MSY-GE, MSZ-D / MSY-D, and SEZ-KD. Read your label again before you accept a no. - **This locks out Mitsubishi's own hardware too.** The "No" lives in the *CN105 Remote Controllers, Interfaces, and Accessories* row — that's the MHK2 and the Kumo Cloud adapter as much as my board. - **What still works:** an IR controller. **Sensibo**, **Cielo**, or **Mysa**, roughly **$79–$164**. None of them are mine. ## What "Not Wired for Control" Actually Means Every CN105 verdict on this site traces back to Mitsubishi's own M-Series controls compatibility table. The row that matters is the one for CN105 remote controllers, interfaces, and accessories. Where a series is marked "NO" in that row, Mitsubishi is telling you the unit doesn't support control through that port. That's a statement about the interface, not about the solder. Some boards in those series carry a CN105 connector anyway — Mitsubishi's table doesn't say why, and I'm not going to guess at it. What matters is the consequence. The port is real, it's labeled, and it does nothing for you. Which is why the compatibility page says the same thing three different ways: the port being present does not overrule the verdict. Check your model number *as well as* the port. ## The Four Series Mitsubishi Marks "No" These are the units where the answer is a flat no, regardless of what you find inside the cover. All four are wall-mounted. | Series | What the compatibility data says | | --- | --- | | **MSZ-FD** | Marked "NO" in the CN105 Remote Controllers, Interfaces, and Accessories row | | **MSZ-HE** | Marked "NO" in the same row | | **MSZ-A / MSY-A** | Marked "NO". Some of these units do have a CN105 connector fitted, but it isn't wired for control | | **MS-WA** | Marked "NO" in the same row | Before you accept that, make sure you're reading your own label right. These four sit uncomfortably close to series that work fine. **MSZ-AP** and **MSZ-AY** are compatible; plain **MSZ-A / MSY-A** isn't, even though those boards may have the connector. **MSZ-HM**, **MSZ-HR** and **MSZ-HX** work; **MSZ-HE** doesn't. **MSZ-FH** and **MSZ-FS** work; **MSZ-FD** doesn't. Two letters. That's the whole difference. ## Check the Suffix Before You Give Up There's a second group where the verdict isn't about the series at all. It's about the trim, and the trim is printed on the same label as everything else. If you typed a partial model number, this is where you go back and get the full one. ![The model-number label on a Mitsubishi Electric indoor unit, showing the full model number MSZ-FH12NA printed after the word MODEL](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) | Family | Has CN105 | Doesn't | | --- | --- | --- | | **MSZ-FE** | MSZ-FE09NA-8, MSZ-FE12NA-8, MSZ-FE18NA | Base MSZ-FE09NA, MSZ-FE12NA | | **MSZ-GE / MSY-GE** | The -8 and -9 trims, MSZ-GE24NA, and the EU/Asia VA trims (e.g. MSZ-GE25VA) | Base 06–18NA, no suffix | | **MSZ-D / MSY-D** | Only the -NA-8 trim | Base -NA, no suffix | | **SEZ-KD** | SEZ-KD09NA4, SEZ-KD12NA4R1, SEZ-KD25VAQ | Base SEZ-KD09NA | A base MSZ-GE12NA is out. An MSZ-GE12NA-8 is in, and it's the same unit as far as most people looking at it can tell. So read the capacity code *and* the tail. If you've already sent the wrong string to the checker, that's a free minute to get back. ## The Other Ways to Land on "No" Not every dead end is about wiring. A few units end up here for entirely different reasons, and it's worth knowing which one you've hit, because the fix differs. **The connector was never fitted.** **MSZ-HJ** boards have the CN105 solder pads but no connector installed. Advanced users have soldered one on; I don't recommend buying hardware on that basis. Some China-market **MSH-BF** and **MSZ-ZF** models are the same story, pads only, so look at the board before you order anything. Units from roughly pre-2006 may have no port at all. **You found CN110 instead.** That's where Mitsubishi's own Wi-Fi module lands, and it's a separate port from CN105. Many newer units have both. If yours has only CN110, this project isn't compatible with it. **It's Mitsubishi Heavy Industries, not Mitsubishi Electric.** Model numbers starting **SRK**, **SRC**, or **SRF** are a different company entirely, with a different control protocol and no CN105 connector. This is the mix-up I see more than any other. **It's air-to-water.** **Ecodan**, **Zubadan** and **Geodan** units have a CN105-style connector but speak a different serial dialect. If that's you, [Mitsubishi-CN105-Protocol-Decode](https://github.com/m000c400/Mitsubishi-CN105-Protocol-Decode) is where the Ecodan-specific work lives. **Lossnay (LGH)** ventilators are a different protocol again. ## Mitsubishi's Own Accessories Are Out Too Here's the part that usually surprises people. That "NO" isn't about my board specifically, because Mitsubishi has never heard of my board. It's their row for their own CN105 controllers, interfaces, and accessories. So on an MSZ-FD or an MS-WA, you're not just locked out of a $35 ESP32. You're locked out of the **MHK2**, the wired **PAC-SDW01RC-1**, and the **MAC-587IF-E** Kumo Cloud adapter, all of which reach the unit through the same port. Every wired option in [my comparison post](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) depends on CN105 working for control. If a dealer offers to sell you a Kumo adapter for one of these units, ask them to show you that row first. That leaves exactly one category standing. ## What Still Works: Infrared An IR controller doesn't touch CN105. It sits in the room, watches nothing, and fires the same infrared codes your handheld remote does — a remote that never loses its batteries and answers your phone. Everything you just read about wiring, trims and compatibility rows is irrelevant to it. ![A universal IR mini-split controller mounted on the wall beside a light switch, with a wall-mounted mini-split in the background](https://serin-labs.com/assets/content/800/sensibo-ir-controller-mini-split-wall.webp.919d36abb774.webp) That also means it doesn't care about the badge on the box. Mitsubishi Electric, Mitsubishi Heavy Industries, or something else entirely — if the unit takes a handheld IR remote, an IR controller can drive it. No cover comes off, nothing gets wired, and you're running in about five minutes. ## Sensibo, Cielo, and Mysa Compared Three brands cover most of this category. These are the prices and capabilities I checked when I wrote [the smart thermostat roundup](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html) in July 2026, and IR hardware discounts constantly, so treat them as a starting point rather than today's checkout total. | | Sensibo | Cielo Breez | Mysa | | --- | --- | --- | --- | | **Price** | Sky ~$89, Air ~$109, Air Pro ~$139 | Lite ~$79, Eco ~$100, Max ~$125 | ~$131 on sale, ~$164 regular | | **Apple HomeKit** | Air and Air Pro, not the Sky | No — Siri Shortcuts only | Yes | | **Home Assistant** | Official, cloud-polling ~1 min | Official, cloud-polling ~2 min | Community-built only | | **Form factor** | Shelf or plug-in box | Plug-in box; display on Plus and Max | Wall-mounted, adhesive or stand, 5V USB | | **Subscription** | Core app free; $2.49/mo Energy Saver plan gates advanced scheduling and analytics | "Free app, no subscription" | Account required | | **Cloud account** | Required | Required | Required | | **Works on any brand** | Yes | Yes | Yes | If you're an Apple household, that HomeKit row is the decision. The **Sensibo Sky** is the cheapest way in and the one that skips Apple Home entirely, which catches people out. **Mysa** takes the thermostat shape furthest, and it's the one that looks most like the wall unit you probably pictured when you started this search. Mysa markets energy savings of "up to 26%" — that's a vendor claim, not something I've measured. ## What Infrared Costs You I'd be selling you short if I didn't say what the trade is. Infrared is one-way. The controller sends a command and assumes it landed, exactly like your remote does, and it can't read the unit's actual state back — no compressor frequency, no error codes, no confirmation that the unit even heard it. The practical consequence shows up the first time someone in the house picks up the factory remote. The unit changes; the app doesn't know. From then on the app's picture and reality drift apart until something resyncs them. It also needs line of sight to the unit's IR receiver, same as any remote. And you'll need an account. All three run scheduling and remote access through the vendor's own cloud, so you're not escaping the cloud model here — though on the units in this post, you were never going to. This isn't IR losing to a wired connection you could have had. It's IR being the only thing on the table. ## Who Should Buy What - **Your model is MSZ-FD, MSZ-HE, MSZ-A / MSY-A, or MS-WA.** Buy an IR controller. Apple household, get the **Sensibo Air** or a **Mysa**; otherwise the **Cielo Breez Lite** or **Sensibo Sky** are the cheap way in. Don't buy anything that plugs into CN105, mine included. - **Your model is MSZ-FE, MSZ-GE / MSY-GE, MSZ-D / MSY-D, or SEZ-KD.** Go read the label again first. A suffix you skipped over may put you back in the compatible column, and that's worth two minutes before you spend $89. - **It's a Heavy Industries SRK / SRC / SRF, or another brand entirely.** IR, and it genuinely doesn't care what the badge says. - **It's an Ecodan, Zubadan, Geodan, or a Lossnay LGH.** An IR controller only helps if your unit takes a handheld IR remote, so confirm that before you buy one. For Ecodan specifically, [Mitsubishi-CN105-Protocol-Decode](https://github.com/m000c400/Mitsubishi-CN105-Protocol-Decode) is where the community work lives. - **It's an MSZ-HJ, MSH-BF, or MSZ-ZF with bare solder pads.** Technically solderable, and I still wouldn't. Buy the IR box and keep your warranty. If you want to be certain before you spend anything: 1. Read the **full** model number off the label on the indoor unit — capacity code and suffix included — and run it through [the model checker](https://serin-labs.com/compatibility.html) once more. 2. Still not supported, or not recognized at all? [Send it to us](https://serin-labs.com/contact.html). Our list isn't exhaustive, and I'd rather look yours up by hand than have you buy hardware that can't help. 3. Buy the IR controller that matches your platform. [Prices, HomeKit support, and the Home Assistant caveats are here](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html). A connector you can see isn't a connector you can use. Buy the box that talks to your unit, even when it isn't mine. ## Related - [Check your model — instant compatibility answer](https://serin-labs.com/compatibility.html) - [Every smart-control option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) - [IR controllers and wall thermostats, priced](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html) - [How to check for a CN105 port](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Browser Flashing Failed? The Five Things It Usually Is > Browser flashing an ESP32 over Web Serial and nothing shows up? The five causes in order of likelihood: charge-only cable, browser, driver, bootloader, held port. Source: https://serin-labs.com/blog/esphome-flashing-troubleshooting.html Last updated: 2026-09-07 August 9, 2026 · Serin Labs You plug the board into your laptop, open the [flash page](https://serin-labs.com/flash.html), and press connect. The browser's port picker opens, and it's empty. Or the board shows up, you pick it, and a red strip appears where the progress bar should be. This is the most common message we get, and it's almost never the board. Five causes account for nearly all of it, and they have a stable order of likelihood: the cable, the browser, a missing driver, a board that isn't in its bootloader, and something else already holding the serial port. Work down that list and you'll be finished before you reach the bottom. The [troubleshooting page](https://serin-labs.com/troubleshooting.html) is the lookup table for all of this. This post is the explanation behind it, which matters because the console tells you which of the five you're in — if you know which line to read. ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) **Quick Facts** - **What flashing needs:** a desktop Chromium browser, a USB **data** cable, and an ESP32 board. That's the whole list. - **Browser:** Web Serial. The flash page states its own requirement as **Chrome, Edge or Brave 89+**. Safari and Firefox don't implement it. - **Most likely cause:** a charge-only cable. Our flash page puts it at **nine times in ten**, and the [FAQ](https://serin-labs.com/faq.html) says most "dead board" reports turn out to be one. - **Boards:** M5Stack **NanoC6** (ESP32-C6) and **Atom S3 Lite** (ESP32-S3), both **USB-C**. ESP32-C3 SuperMini and generic DevKits usually work. - **Nothing is written until you press install.** A board that connects and reads is never at risk. - **A failed write is recoverable.** The bootloader survives, and the next run overwrites the partial image. ## Start With the Two Lines the Page Already Shows You The flash page has two status lines, and between them they split the problem in half before you touch anything. The first sits in the hero, next to the headline. It reads something like "Chrome 151 · Web Serial available" in green, or "Web Serial not available · use Chrome, Edge or Brave" in amber. That line is checked in your browser before you connect anything, so it's about your browser and nothing else. The console only names the browser when the user-agent string is unambiguous; otherwise it just says "This browser," which is honest rather than a guess. The second is the device pill in the top corner of the device bay. It starts at "waiting," moves to "reading" while the console interrogates the chip, and a red alert strip appears below it if something goes wrong. That strip carries the specific sentence you need, and there's a table of them further down this post. Amber hero line means your problem is the browser. Green hero line and a stuck pill means it's the cable, the driver, or the board. ## One: A Charge-Only Cable **Symptom.** You press "Connect a device," the browser's port picker opens, and your board isn't in the list. There's no error, because from the computer's point of view nothing was ever plugged in. **Why it happens.** A charge-only USB cable carries power and skips the data lines. The board lights up, which is exactly what makes this so convincing, but it never enumerates as a USB device. No device on the bus means no serial port, which means nothing for the picker to list. **The check.** Plug the same cable into a phone and try to transfer a file. If your computer doesn't see the phone's storage, the cable is the problem, and it was never going to flash anything. **The fix.** Swap in a cable you've actually moved data through. Both boards we ship are USB-C, so the cable that came with almost any recent phone will do. Two adjacent details from the troubleshooting page while you're here: plug into a port on the computer itself rather than through a hub, and try a shorter cable, because long ones can cause communication problems. This is first on the list for a reason. Before you install anything or reboot anything, change the cable. ## Two: The Wrong Browser, or the Wrong URL **Symptom.** The hero line is amber and reads "Web Serial not available · use Chrome, Edge or Brave." The connect button doesn't open a port picker at all. **Why it happens.** Browser flashing is built on the Web Serial API, and not every browser ships it. Safari and Firefox don't implement Web Serial, so no version of either one will work today. Neither will any browser on iOS or Android — this is a desktop job, and there's no phone workaround. There's a second half to that check most people never hear about. The console tests two things: that `navigator.serial` exists, **and** that the page is running in a secure context. A local copy of the site served over plain `http://` fails the same check and shows the same amber line, in Chrome, with a perfectly good cable attached. If you're testing a mirror or a local build, that's your answer. **The fix.** Open [the flash page](https://serin-labs.com/flash.html) over https, in Chrome, Edge or Brave, on a desktop or laptop. All three are Chromium underneath, so if your employer's policy has Chrome locked down, Edge or Brave is often the same engine without the same restrictions. And if you're a Firefox household, this is the one page where you open Chrome, flash the board, and close it again. ## Three: A Missing USB Serial Driver **Symptom.** The picker opens, your board still isn't listed, and the cable already passed the phone test. **Why it happens.** Some ESP32 boards put a separate USB-to-serial bridge chip between the USB connector and the ESP32 itself, usually a **CP210x** or a **CH340**. Your operating system needs a driver for that bridge before any serial port shows up. No driver, no port, same empty picker as a bad cable. Here's the part worth knowing before you go install anything: the two boards in the [Serin controller](https://serin-labs.com/controller.html) don't have a bridge chip. The **NanoC6** and the **Atom S3 Lite** both enumerate through the ESP32's own built-in USB-serial peripheral — that's why they share the same Espressif USB ID, `303A:1001`, and why the console has to use the chip family to tell them apart. If you bought the pre-assembled controller, this step almost certainly isn't your problem. Skip to the next one. **The fix.** If you're flashing a generic ESP32 DevKit rather than one of those two, install the [CP210x or CH340 USB serial drivers](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers), then unplug and replug the board. While you're testing, move to a USB port directly on the machine rather than a hub or a dock. ## Four: The Board Isn't in Its Bootloader **Symptom.** The board appears in the picker, you select it, and the console comes back with: "Couldn't read the chip. Unplug it, hold BOOT while plugging it back in, try again." **Why it happens.** To read or write flash, the ESP32 has to be in its download-mode bootloader rather than running your firmware. The flash console does this for you: it drives the serial control lines to reset the chip into the bootloader, then reads the chip family, flash size, MAC and app descriptor from there. That sequence isn't identical on every board: a part with native USB-JTAG and one behind a UART bridge need different reset dances, and occasionally the right one doesn't take. **The fix.** Do it by hand. Hold the board's **BOOT** button down, plug in the USB cable while still holding it, then release and press connect. The troubleshooting page gives the same instruction for a write that fails midway: hold BOOT while initiating the flash. Both shipped boards have a button on them, so this needs no extra hardware. If the board seems totally unresponsive, this is also the recovery path. USB flashing always works as a last resort, and BOOT-button entry is how you get there. ## Five: Something Else Is Holding the Port **Symptom.** The picker opens, you pick the right board, and the strip reads: "The port would not open. Close any other tab or app using it, then try again." **Why it happens.** A serial port is exclusive — exactly one process can have it open. If something else got there first, the flash page can't open it, and the message says so plainly rather than making you guess. The usual culprits are things you opened deliberately and forgot about. An ESPHome dashboard streaming logs from the device. An Arduino IDE or PlatformIO serial monitor. A `screen` or `minicom` session in a terminal tab behind your browser. And the one that catches people most: a second copy of the flash page open in another tab, still holding the port from an earlier attempt. **The fix.** Close all of them, then refresh the flash page and connect again. Don't open a monitor to "watch" the flash while it runs, either — the console holds the port for the entire write and only hands it over afterwards, when it asks for your Wi-Fi over Improv Serial. ## What the Console Says and What It Means Every red strip on the flash page is a specific sentence written for a specific failure. Here's what each one is telling you. | Message | What it actually means | What to do | | --- | --- | --- | | "Web Serial not available · use Chrome, Edge or Brave" (hero line) | Wrong browser, or the page isn't in a secure context | Chromium browser, desktop, over https | | Picker opens but the board isn't listed | No serial device enumerated at all | Data cable first, then a bridge driver | | "The port would not open. Close any other tab or app using it, then try again." | Another process holds the port | Close monitors, dashboards and extra tabs | | "Couldn't read the chip. Unplug it, hold BOOT while plugging it back in, try again." | The board didn't enter its bootloader | Hold BOOT while plugging in | | "The write stopped: … The board is recoverable." | The write was interrupted partway | Shorter cable, direct port, run it again | | "The firmware could not be downloaded." | Your network, not your hardware | Check the connection and retry | | "There is no … build for the … on this board." | That chip family has no build in the manifest | Use a supported board | | "The board was unplugged." | The cable came out mid-read | Reseat it and connect again | Note the split in that table. Only three of the eight are hardware problems at all. ## What Isn't Broken, and What This Can't Fix A few things look like failures and aren't, so check these before you start swapping parts. **The amber CN105 line on a bench.** The controller card shows CN105 as amber until the board is plugged into the indoor unit. On a desk, that's expected and the page says so. **A blank firmware row.** The console reads what's already installed from the app descriptor on the flash, falling back to what the running app answers over Improv. A brand-new board has neither, so the row is simply omitted. "Board detected. Nothing written yet." is the normal, correct state, and it's safe to unplug there. **A half-written board.** If a write stops partway, the message says the board is recoverable, and it means it — the bootloader survives, and the next run overwrites the partial image. Unplug, plug back in, start again. **No Wi-Fi prompt after a successful write.** The board started its backup setup network instead. Join that network and enter your credentials there. The flash page shows the setup network name and a QR code on the completion screen. ![The Serin controller's built-in web interface showing thermostat, fan, and vane controls in a browser](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) Now the honest limits. If you own no desktop or laptop, none of this helps — Web Serial doesn't exist on iOS or Android, and you'll need to borrow a computer for the one-time flash. And if the board is already installed behind the cover, don't fight a USB cable in an awkward position at all. Install the build over Wi-Fi from the controller's own web interface instead, or, if you run Home Assistant, adopt and install from the [ESPHome dashboard](https://serin-labs.com/esphome/setup.html), which does the same job over the network. That's genuinely the better route once the first flash is done, and it's the one I'd take. One last thing worth flagging: erase is off by default, so Wi-Fi credentials and Apple Home pairing survive an ordinary update. Switching from the Apple Home compatible build to ESPHome does wipe the HomeKit pairing, so remove the accessory in the Home app first. ## Work Through It in This Order Match your symptom, then do the one thing next to it: - **The board never appears in the picker.** Cable first, then a bridge driver, then a different USB port. In that order, every time. - **The hero line is amber.** It's the browser or the URL. No cable, driver or button press will change it. - **The board appears but the console can't read it.** Hold BOOT while plugging in, then connect. - **The console names the port in an error.** Something else has it open. Close monitors, dashboards and stray tabs. - **The write starts and stops.** Shorter cable, port directly on the machine, run it again. The board is fine. If you're starting from scratch right now: 1. Swap in a USB cable you've moved a file through. 2. Open [the flash page](https://serin-labs.com/flash.html) in Chrome, Edge or Brave, on a desktop, over https. 3. Close every other serial monitor, ESPHome log stream and flash tab. 4. Hold **BOOT** while plugging the board in, then press connect. 5. Still stuck? Work through the [troubleshooting guide](https://serin-labs.com/troubleshooting.html), or [get in touch](https://serin-labs.com/contact.html) with your board type and what the red strip said. If the board really is defective, we replace or refund it, shipping included. The board is almost never the problem. The cable almost always is. ## Related - [Flash the firmware](https://serin-labs.com/flash.html) - [Troubleshooting lookup](https://serin-labs.com/troubleshooting.html) - [Get the hardware](https://serin-labs.com/parts.html) - [ESPHome vs Apple Home firmware](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Making a Multi-Zone Mitsubishi System Smart: One Board Per Head > Every indoor unit on a multi-zone Mitsubishi has its own CN105 port, so every head needs its own board. Per-zone costs, naming, and what the outdoor unit still decides. Source: https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html Last updated: 2026-09-07 August 5, 2026 · Serin Labs A three-head Mitsubishi system ships with three handheld remotes. By year two, one is in a drawer, one is under a couch cushion, and the third has become the house remote for whichever room somebody is complaining about. That's usually the point where people go looking for a smart thermostat that covers the whole system. There isn't one. The question I get is some version of "can I run all five heads off a single box," and on a residential M-series system the answer is no. Every indoor unit has its own **CN105** port, and every interface that uses that port — ours, Mitsubishi's own Wi-Fi adapter, their wall controllers — talks to exactly one head. That sounds like a limitation until you look at what it gets you. Five boards means five genuinely independent setpoints, which is exactly the thing you paid extra for when you bought a multi-zone system instead of a single big head. One wall thermostat can't do that. Five can. There's a real limit underneath all of this, and I'd rather put it near the top than bury it: independent setpoints are not independent capacity. More on that below. ![The empty red CN105 serial port on a Mitsubishi indoor unit's control board, with the CN105 label and pins 1 and 5 marked in the silkscreen](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp) ## Quick Facts - **One board and one cable per indoor head.** Each indoor unit carries its own CN105 port. The outdoor unit — the MXZ — doesn't need a controller at all. - **No hub, no pairing between boards.** Each one is an independent device on your Wi-Fi with its own web UI. - **Independent per room:** mode, temperature, fan speed, vane position, and its own remote temperature sensor. - **Cost:** **$35** per head [pre-assembled](https://serin-labs.com/controller.html), so **$105** for three heads and **$175** for five. - **Ducted heads want the 50 cm cable** (**$40** assembled) so the board sits outside the sheet-metal cabinet. - **What the boards don't change:** the outdoor unit still arbitrates capacity between heads, and most residential multi-splits commit to one mode at a time. - **Diagnostics caveat:** compressor frequency and outside air temperature are often unavailable when several heads share one outdoor unit. ## Why a Multi-Zone System Has No Hub The CN105 port lives on the control board *inside each indoor unit*, not on the outdoor unit. It's a serial service port, and it's the same port Mitsubishi's own Wi-Fi adapter and their wall controllers plug into. Whatever you connect to it talks to that one head and nothing else. So the architecture falls out of the hardware. Five heads, five control boards, five ports, five controllers. The [compatibility FAQ](https://serin-labs.com/compatibility.html#faq) puts it plainly: each indoor head in a multi-zone system has its own CN105 port, you need one controller per indoor unit, and the outdoor MXZ needs nothing. ![The CN105-to-Grove cable plugged into the CN105 port on the control board of a Mitsubishi wall unit](https://serin-labs.com/assets/gallery/800/serin_cn105_mitsubishi_gl06na.jpg.webp) The upside is that nothing is shared and nothing is coupled. Each board runs its own firmware, reboots on its own, and updates on its own. One dead board is one room back on the handheld remote, not a whole house offline. ## What One Board Per Head Actually Buys You Every head gets its own setpoint, its own mode, its own fan speed, and its own vane position. That's the whole argument for a multi-zone system, and it's the one thing a single wall-mounted thermostat structurally cannot deliver. It also means each room can regulate off its own sensor. A mini-split's built-in thermistor reads return air up at the ceiling rather than the air where you sit, and [I wrote that up in full here](https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html). On a multi-zone system you get to fix it per room, with a sensor on the nightstand in one and none at all in another. Scheduling follows the same logic. Bedrooms that only run at night, an office that ramps at 8 and stops at 6, a guest room that stays off until somebody's coming. The schedule is per-zone because the controller is per-zone. ## The Part the Boards Don't Change Here's the limit. Your indoor heads are independent; your *system* isn't. A multi-split runs every head off one outdoor unit, which means one compressor and one shared refrigerant circuit. The CN105 port carries setpoints, modes, and state readings. It does not carry authority over the outdoor unit. When four heads call for heat at once, the outdoor unit divides what capacity it has by its own logic — exactly as it would if you were pressing four handheld remotes. Four boards don't create four independent systems. They tell one system four different things you want. Two consequences worth planning around: - **Mode is usually system-wide.** Most residential MXZ multi-splits are single-mode: everything heats or everything cools, not a mix. If you're counting on cooling the office while heating the bedroom, your outdoor unit's installation manual is the authority, and you should check it before you buy anything. - **Sizing is still sizing.** If the system was undersized for a design-day load, better instructions won't invent capacity. The boards make the system legible and controllable. They don't make it bigger. None of that is a knock on the controllers — it's equally true of Mitsubishi's own adapter and their wall controllers. It's the deal you signed when you bought one outdoor unit for five rooms. ## What a Multi-Zone Install Costs This is where the multi-zone math stops being academic, because every option on the market multiplies by head count. Here's ours, at current [store](https://serin-labs.com/controller.html) pricing: | Heads | Controller, 20 cm | With room sensor | Ducted, 50 cm cable | | --- | --- | --- | --- | | **2** | $70 | $110 | $80 | | **3** | $105 | $165 | $120 | | **4** | $140 | $220 | $160 | | **5** | $175 | $275 | $200 | ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) If you're building your own, the [cable](https://serin-labs.com/cable.html) is the part you can't buy off a shelf: **$8** for one 20 cm cable or **$30** for a four-pack, **$13** for one 50 cm or **$50** for four. The four-pack saves two dollars — not a reason to buy one, but it's the same order either way. The ESP32 boards are stock M5Stack modules you order separately; [the parts list](https://serin-labs.com/parts.html) covers both supported ones. Now the same zone count, the other ways. The Mitsubishi figures come from [the full comparison post](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html). The MHK2 and IR ranges are the newer ones from [the thermostat roundup](https://serin-labs.com/blog/best-smart-thermostat-mini-split.html), which prices Sensibo and Cielo separately and found the older three-hundred-dollar MHK2 figures to be a floor rather than a street price. Re-check all of them before you spend, because they move. | Per indoor head | 1 head | 3 heads | 5 heads | | --- | --- | --- | --- | | **Mitsubishi Wi-Fi adapter** · (~$227) | $227 | $681 | $1,135 | | **MHK2** · (~$415–$475) | $415–$475 | $1,245–$1,425 | $2,075–$2,375 | | **PAC-SDW01RC-1** · (~$179) | $179 | $537 | $895 | | **Sensibo / Cielo IR** · (~$79–$139) | $79–$139 | $237–$417 | $395–$695 | | **Serin controller** · ($35) | $35 | $105 | $175 | One thing that surprises people: the IR controllers don't consolidate either. An infrared blaster needs line of sight to the head it's driving, so a five-head house needs five of them, in five rooms. Nothing on this list is a whole-house box — each one attaches to a single head, whether by cable or by line of sight. ## Mixed Systems: Wall Heads, Cassettes, and a Ducted Handler Multi-zone systems are frequently mixed — two wall units, a ceiling cassette, and a ducted air handler doing the upstairs. The port and the protocol are the same across all of them. What changes is the cable and what the firmware can expose. Wall units and cassettes take the standard **20 cm** cable with the board tucked inside. Multi-position ducted air handlers — **SVZ, MVZ, PEAD, PVA** — have a sheet-metal cabinet that weakens Wi-Fi, so [the parts page](https://serin-labs.com/parts.html) recommends the **50 cm** cable instead. That length lets you route out of the cabinet and mount the board on the insulated plenum or ductwork, where the radio has a chance. ![The Serin controller mounted on the insulated plenum above a Mitsubishi MVZ-A18AA7 air handler, outside the metal cabinet, connected by a 50 cm CN105-to-Grove cable](https://serin-labs.com/assets/gallery/800/serin_cn105_mvz_aa7_2.webp.webp) Feature coverage varies by head, too. Vertical vane control doesn't apply to ducted units, and horizontal wide-vane control only exists on some wall-mount models. Your ducted zone will simply show fewer controls than your bedroom head, on identical firmware. Check every model number, not just one. Heads on the same system can carry different verdicts, and a few Mitsubishi trims ship a CN105 connector that isn't wired for control. [The model checker](https://serin-labs.com/compatibility.html) answers this in about a minute per head, and [the port-check walkthrough](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html) covers what you're looking for behind the cover. ## Name Them Before You Flash the Second One This is the advice that saves the most grief on a multi-head install, and it costs nothing. Decide on names first. On **ESPHome**, [step 6 of the setup guide](https://serin-labs.com/esphome/setup.html) is explicit: give each device a distinct name in the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) — `living-room`, `bedroom-1`, `office` — and the friendly name is what shows up in Home Assistant. You flash, connect, and adopt each board individually, then all of them appear in one ESPHome dashboard where you can push updates across the fleet. On the **Apple Home firmware**, each board names itself. The access point and the local hostname are `Serin-XXXX`, where XXXX is the last four characters of that board's Wi-Fi address, so five boards get five distinct names with no effort from you. The trouble is that `Serin-8A3F` means nothing to a human. Rename each one from its web UI settings, and assign it to the right room in the Home app, before you move to the next board. Two more habits. Do one head at a time, start to finish — flash, install, name, confirm it responds — rather than flashing five boards on a desk and losing track of which is which. And label the cables: [the parts list](https://serin-labs.com/parts.html) suggests a label maker for exactly this reason, and you'll want it the first time a board goes quiet. ## The Diagnostics You Lose on a Multi-Split Now the honest part, because this is the one place a multi-zone owner gets less than a single-zone owner. The deep diagnostics come from the unit, not from the board, and several of them are tied to the outdoor unit. [The compatibility page](https://serin-labs.com/compatibility.html) is direct about it: compressor frequency is *often unavailable on multi-split systems*, and some models simply report 0 forever. Outside air temperature depends on the outdoor unit and isn't available on some multi-zone configurations. The multi-zone FAQ entry says the same thing in one line. That matters if compressor frequency is why you're buying. On a single-head system it's genuinely interesting — you can watch the unit modulate. On a five-head MXZ, you may find that field flat at zero on every board, and no firmware can conjure a value the unit doesn't send. What does work: climate control on all models, remote temperature sensor support on most, and vane control on most wall-mount units. The control half is solid across multi-zone. It's the telemetry half that gets thin. ## Who Should Buy What - **You have 2–5 heads, want per-room control, and run Home Assistant or Apple Home.** Buy one [controller](https://serin-labs.com/controller.html) per head — $105 for three, $175 for five — and follow the naming discipline above. This is the case the product is for. - **Two of your five rooms are guest rooms nobody sets foot in.** Then don't do those. Buy three boards, leave the rest on their handheld remotes, and add them later if those rooms ever get used. - **You want a real screen on the wall in the main living space.** Put a **PAC-SDW01RC-1** on that head — $179, no network, no phone — and boards on the rest. Each head's CN105 port is independent, so you choose interface per zone. You just can't stack two on the same head, since most units have exactly one port. [The wall-controller comparison](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) covers that trade in full. - **You rent, or there's a head you're not comfortable opening.** Put a **Sensibo** or **Cielo** in that room. It's blind — one-way IR with no state feedback — but it needs no cover off and no wiring, and for a rented bedroom that's the right call. - **You want the manufacturer's app and a support line to call.** Mitsubishi's own Wi-Fi adapter, around $227 a head — roughly $1,135 across five. Still a legitimate choice if official matters more than local. - **You bought the multi-zone system specifically to heat one room and cool another.** Check the outdoor unit's manual before you buy any of this. If your system is single-mode, no controller on this page changes that. - **You'd rather wait for one box that drives the whole system.** A **Multi-Zone Controller** is on our roadmap, but it covers City Multi, P-series and branch box M-series systems. A ported MXZ like the 4C36NA isn't on that list, so if that's your outdoor unit, five boards is still the answer. If you're on a branch box or a City Multi, [put your name down](https://serin-labs.com/contact.html) instead of buying boards you'd replace. ## The Short Version There's no hub because there's no port for one. Every indoor head has its own CN105 connector, so every head gets its own board, and what you get back is the per-room control that a multi-zone system was supposed to give you in the first place. What you don't get is a bigger compressor. 1. [Check each head's model number](https://serin-labs.com/compatibility.html) — all of them, not just one. 2. Order one [controller](https://serin-labs.com/controller.html) per head you actually want to control, picking the 50 cm cable for any ducted air handler. 3. [Flash](https://serin-labs.com/flash.html) and install them one at a time, naming each one before you start the next. You bought a system that can hold five different numbers. This is what it takes to finally tell it five different numbers. ## Related - [Get the hardware](https://serin-labs.com/parts.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [Set up ESPHome and Home Assistant](https://serin-labs.com/esphome/setup.html) - [Every smart-control option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # When It Won't Boot: Recovery Wi-Fi, Safe Mode, and Wireless Updates > A recovery decision tree for a CN105 controller that will not boot: the backup setup network, crash-loop safe mode, wireless update rollback, and USB recovery. Source: https://serin-labs.com/blog/controller-recovery-and-ota.html Last updated: 2026-10-24 July 30, 2026 · Serin Labs The tile in the Home app has gone grey, and the board is behind the cover of an indoor unit up on the wall. That's the moment this post exists for. Before the screwdriver comes out, it's worth knowing that most of what gets called a bricked board isn't one. The **HomeKit-compatible firmware** stacks three recovery layers underneath itself, plus a fourth that doesn't need the firmware working at all. A backup setup network for lost Wi-Fi. A safe mode for a crash loop. Automatic rollback for a bad update. Then USB, which always works. Working out which layer you're in takes a minute, and it decides whether this is a five-minute job or a cover-off job. **Quick Facts** - **Backup setup network:** the HomeKit firmware starts one after 5 minutes without Wi-Fi, and turns it off once Wi-Fi reconnects - **Hotspot name:** `Serin-XXXX`, password `serinlabs`; the recovery page is at `http://192.168.4.1` - **Safe mode:** 5 consecutive crashes drop the firmware to Wi-Fi and the web interface only, so an update can still get in - **Bad update:** the image is SHA-256-verified before it's applied, and rolls back automatically if validation fails afterwards - **Wi-Fi reset:** a 10-second hold on the board button erases stored Wi-Fi credentials - **Last resort:** USB flashing always works, from the [flash page](https://serin-labs.com/flash.html) in desktop Chrome, Edge, or Brave - **Cost of all of it:** nothing. Updates are free and open source, with no subscription Everything below is the HomeKit firmware unless it says otherwise. The ESPHome build differs, and it gets its own section. ## Start With the Symptom, Not the Screwdriver Four failure modes account for nearly all of this, and they're distinguishable from your phone before you touch the unit. Find your row first. | What you're seeing | What it usually is | Where to go | | --- | --- | --- | | Tile unavailable, and a · `Serin-XXXX` · network has appeared in your Wi-Fi list | It lost your network and started its backup setup network | Path 1, below | | Web interface loads, but no heat-pump data and nothing in Apple Home | Crash-loop safe mode | Path 2 | | You tapped Install, and it came back running the old version | Wireless update validation failed and it rolled itself back | Path 3 | | Nothing on Wi-Fi, no setup network, nothing on USB | Power or cable, then USB flashing | Path 4 | | Wi-Fi and web interface are fine, but the unit ignores commands | Not a boot problem — it's the CN105 link | [Troubleshooting](https://serin-labs.com/troubleshooting.html#hvac-no-response) | That last row is the one people misdiagnose most. A controller that answers on its own address is booting fine; the problem is downstream, at the [cable](https://serin-labs.com/wiring.html) or the port. ## Path 1: The Backup Setup Network This is the common one, and it isn't a fault. Change your Wi-Fi password, swap a router, move the board into a metal air handler that blocks the signal, and the controller can't get back on the network. After 5 minutes without Wi-Fi, the firmware starts its own setup network. It's named `Serin-XXXX`, where XXXX is the last four characters of the controller's Wi-Fi address, and the password is `serinlabs`. Join it from your phone and a setup page opens. If it doesn't open by itself, go to `http://192.168.4.1` and enter your network name and password there. The controller saves them, reboots, and turns off the setup network once Wi-Fi reconnects. [Watch demonstration](https://serin-labs.com/assets/media/hk_wifi_connect.mp4) A few things stop this working, all of them fixable. Give it at least 60 seconds after power-on — the setup network can take a moment to start. Make sure the board has a stable 5 V supply of at least 1 A. Turn mobile data off on your phone, or it may route your browser away from the setup network before the page loads. If the setup network never appears at all, the controller may already be on Wi-Fi and simply unreachable by name. Check your router's DHCP client list for it before assuming the worst. To force the controller back into setup mode, hold the board button for 10 seconds. That erases the stored Wi-Fi credentials but does not reinstall the firmware. A full reset is a USB reflash. Worth fixing the underlying cause too, not just the symptom. Boards that keep dropping off are usually fighting signal, 5 GHz-only networks, or DFS channels, and the [Wi-Fi section of the troubleshooting guide](https://serin-labs.com/troubleshooting.html#wifi-drops) covers each one. ## Path 2: Crash-Loop Safe Mode Here's the layer that turns a scary failure into a boring one. The firmware counts consecutive crashes, and at five it stops trying to be a thermostat. Safe mode brings up Wi-Fi and the web interface, and skips everything else — CN105, HomeKit, and Bluetooth Low Energy (BLE) all stay down. That's deliberate. The subsystems most likely to be crashing are the ones talking to hardware, so leaving them out gives you a stable controller that can still accept an over-the-air (OTA) update. Which means the fix for a crash loop is the same as the fix for anything else: push a new firmware image from the web interface. From the outside it reads as a controller that's half there. The web page loads, the heat pump isn't in it, and Apple Home shows nothing. The counter resets after a successful boot, so one bad restart doesn't strand the controller in safe mode. It takes five in a row. ## Path 3: Rollback, Then USB Updates are the failure people fear most, and they're the best-protected step in the whole system. The firmware verifies the image's SHA-256 checksum before applying it. After the update, the controller validates Wi-Fi and serial communication with the heat pump before confirming the new firmware. If validation fails, it rolls back to the previous firmware on its own. So the realistic bad outcome from a failed update isn't a dead board. It's a board sitting on the version it had this morning. ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) When rollback isn't enough, USB is the floor under everything. Connect the board over USB-C, open the [flash page](https://serin-labs.com/flash.html) in desktop Chrome, Edge, or Brave, and write the firmware again. If the board is unresponsive, hold the **BOOT** button while plugging in USB, then flash. The page reads what's on the chip and tells you before it does anything — nothing is written until you press install. Writing the bootloader, partitions and app takes about 100 seconds, then roughly another 10 to verify the hash and reboot. Before you conclude the hardware has failed, check the cable. A charge-only USB cable is the most common reason a controller does not respond. After that it's drivers (CP210x, CH340, or the SiLabs USB-to-UART bridge), a USB hub instead of a port on the machine itself, or a browser without Web Serial — Safari and Firefox don't have it, and neither do phone browsers. The [flashing section of the troubleshooting guide](https://serin-labs.com/troubleshooting.html#usb-not-detected) works through them in order. Reflashing is safe to re-run any time, and it doesn't cost you your setup unless you ask it to: | Route | What it touches | | --- | --- | | Backup setup network → · `192.168.4.1` | Enters new Wi-Fi credentials | | 10-second board button hold | Erases stored Wi-Fi credentials | | Wireless update from the web interface | Replaces the firmware image; rolls back if validation fails | | USB reflash, erase box unticked | Wi-Fi credentials and Apple Home pairing survive the update | | USB reflash, erase box ticked | Erases everything first — it's off by default | | Apple Home → ESPHome | Wipes the HomeKit pairing; remove the accessory in the Home app first | ## Why the Flash Page Doesn't Ask the Board Who It Is This one surprises people who've used other browser flashers, and it changes how you read the page. The HomeKit-compatible firmware only starts its USB-based network setup service while the backup setup network is active, and stops it again the moment Wi-Fi joins. A board that's working normally has no setup listener running at all. So if the flash page identified firmware by asking that service, it would call every healthy controller unrecognised. It reads the app descriptor instead. Every ESP-IDF image — ESPHome's included — carries an `esp_app_desc_t` structure 0x20 bytes into its app partition, holding the project name and version it was built with. That needs no cooperation from the running app, and by the time the page wants it, it's already in the bootloader with flash reads available. It also checks otadata to see which slot actually boots, so a board caught mid-update gets reported honestly rather than by whichever image happens to sit lower in flash. Improv still gets asked first, for about a second and a half, and it wins only when the flash has nothing to say. A board answering Improv is by definition running *something*. The practical upshot: **silence from Improv is not a diagnosis.** It's the normal state of a healthy, connected controller. Improv's real job here is the other one — handing the board your Wi-Fi credentials over USB, which is exactly what a board with no working network needs. ## How Updates Actually Work Open the web interface at `http://Serin-XXXX.local`, or `http://` if `.local` doesn't resolve on your network. Go to Settings, then Firmware Update, then tap **Check for Updates**. The controller compares your running version against the latest published release. If there's a newer one, tap **Install** and it downloads it, verifies the SHA-256 checksum, and restarts. No manual download, no cable. ![The controller's built-in web interface showing thermostat, fan, and vane controls in a browser](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) Two other routes exist in the same panel. You can upload a firmware `.bin` by hand, and the browser verifies its integrity before the upload starts. Or, if you build your own images, POST the binary to `http:///upload` with curl. Same validation, same rollback. The USB flash is a one-time step. Everything after it goes over Wi-Fi. ## No Subscription, and What That Doesn't Buy The site's wording is worth repeating exactly, because it's the honest version: the firmware is open source and free, and so are updates — there's no subscription attached to the hardware. Nothing lapses. There's no account that stops working, and no tier that unlocks the recovery features described above. What it doesn't buy is a support contract, and I'd rather be blunt about that than let it read as implied. Serin Labs didn't write either firmware. The HomeKit-compatible build is an independent open-source project built on Espressif's esp-homekit-sdk and ESP-IDF; the ESPHome build comes from echavet's MitsubishiCN105ESPHome on top of ESPHome and SwiCago's HeatPump library. All of it is provided as-is, and the [licenses page](https://serin-labs.com/licenses.html) lists every component and its terms. Firmware bugs go to those projects' own issue trackers, which is where the [troubleshooting page](https://serin-labs.com/troubleshooting.html) points you. On the hardware side: returns and exchanges run 30 days from delivery, and anything defective or incorrect on arrival gets replaced or refunded with shipping covered both ways. Beyond that window the hardware is sold as-is, without an extended warranty — the trade-off behind a controller that starts at $35, stated plainly on the [policies page](https://serin-labs.com/policies.html). ## What's Different on the ESPHome Side Same board, same USB floor, different firmware — and I'm not going to describe one build's behaviour as if it were the other's. The site documents this much for **ESPHome**: on first boot the controller creates a temporary setup network named `serin-XXXXXX` with the password `serinlabs`, and you provide credentials at `192.168.4.1`. For a board that's already flashed but needs new credentials, use USB network setup from the [ESPHome setup guide](https://serin-labs.com/esphome/setup.html). A factory reset is a USB reflash, which resets all settings. If an over-the-air update fails, check that the controller is reachable and that a large configuration hasn't used all available flash space, then fall back to USB and re-adopt. What the site does *not* document for ESPHome is a crash-loop safe mode or a timed backup setup network after losing Wi-Fi. Those are HomeKit-firmware behaviours, and I'd rather tell you that than let you assume the ESPHome build has them. If you're on ESPHome, [the setup guide](https://serin-labs.com/esphome/setup.html) and [troubleshooting](https://serin-labs.com/troubleshooting.html) are your references. ## The Honest Limits - **Safe mode is a recovery platform, not a working thermostat.** CN105, HomeKit, and BLE are all off while it's in there. The heat pump answers its handheld remote the whole time, but nothing else. - **Rollback protects against a bad image, not a bad network.** It reverts firmware that fails validation. It can't fix wrong Wi-Fi credentials or an access point that keeps dropping the board. - **The one-tap update check needs internet access** to see what the latest release is. Manual `.bin` upload and USB flashing don't. - **USB recovery needs physical access.** If the board is buried behind a cover you'd rather not open, that's an argument for mounting it somewhere reachable — a longer [CN105-to-Grove cable](https://serin-labs.com/cable.html) is the usual answer, and it's the same fix for metal air handlers that block Wi-Fi. - **It's a convenience accessory.** The controller isn't a safety, protection, or life-support device. Your unit's own controls don't go away. ## Who Should Do What - **There's a `Serin-XXXX` network in your Wi-Fi list.** It fell off your network and did exactly what it's supposed to. Join the setup network, re-enter your credentials at `192.168.4.1`, done. No cover comes off. - **The web interface loads but the heat pump isn't in it.** That's safe mode. Push a firmware update from the web interface and let it boot normally. - **You ran an update and it's on the old version.** Rollback did its job — you weren't bricked, you were protected. Grab the logs and file it upstream. - **Nothing answers anywhere.** Go to USB. Try a different cable first, because that's usually the whole story. - **You're on ESPHome.** Different playbook, above. Start at the setup guide. The order I'd work through it: 1. Check your phone's Wi-Fi list for `Serin-XXXX` before touching a screwdriver. 2. If it's there, join it with `serinlabs` and open `http://192.168.4.1`. 3. If it isn't, get the board on a USB **data** cable and open the [flash page](https://serin-labs.com/flash.html) in Chrome, Edge, or Brave. 4. Still stuck? Work through the [troubleshooting guide](https://serin-labs.com/troubleshooting.html), then open an issue on the firmware project with your logs, board type, and firmware version. Bricked is a hardware word. Nearly everything that gets called bricked is a board waiting for a cable. ## Related - [Troubleshooting guide](https://serin-labs.com/troubleshooting.html) - [Flash the firmware](https://serin-labs.com/flash.html) - [HomeKit firmware features](https://serin-labs.com/homekit/features.html) - [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Trane and American Standard Ductless: Same Unit, Different Badge > Trane and American Standard ductless heads are Mitsubishi Electric hardware with the same CN105 port. The model-number cross-reference, and what local control costs. Source: https://serin-labs.com/blog/trane-american-standard-ductless-smart-control.html Last updated: 2026-10-02 July 25, 2026 · Serin Labs Your installer put in ductless heads. The badge on the front says **Trane**, or it says **American Standard**. So you search "Trane ductless smart thermostat," and the internet has almost nothing for you. Meanwhile there's a whole ecosystem of local-control projects out there, and every one of them is written up under a different word: Mitsubishi. Here's the thing nobody tells you at the point of sale. The badge is a brand, not a factory. Search the right name and the answer was there the entire time. ![A model-number label on the side of a ductless indoor unit behind the front flap, reading MSZ-FH12NA](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) **Quick Facts** - **The relationship:** Mitsubishi Electric and Trane Technologies plc run a 50/50 joint venture, **Mitsubishi Electric Trane HVAC US LLC** (METUS), formed in 2018. It sells under Mitsubishi Electric, Trane/Mitsubishi Electric, and American Standard/Mitsubishi Electric brands. - **The prefixes our checker recognizes:** **NAXWST, NTXWPH, NTXWST, NTYWST, NTXWMT, NTXWEL** on the wall, **NTXCKS, NTXUKS, NTXDKS, NTXFKS, NTXAMT** for cassette, ducted, floor and air-handler units, and Trane's **TP** commercial models by exact number. - **The port:** the same **CN105** 5-pin serial connector Mitsubishi-badged units use. - **The proof:** the Trane indoor-unit service manual for the NTXWST/NTYWST series (No. OBHT732) carries a Mitsubishi Electric Corporation copyright. - **The shortcut:** if your unit runs on the **Kumo Cloud** app today, it has the port. - **Cost of local control:** from **$35** for a pre-assembled board, or the cable alone at **$8**. - **One board per indoor head.** The outdoor unit doesn't get one. ## The Badge Is a Brand, Not a Factory Mitsubishi Electric's US arm says it plainly on [its own about page](https://www.mitsubishicomfort.com/about-us): "We expanded our strength as a company by entering a 50/50 joint venture with Trane Technologies plc in 2018 to become Mitsubishi Electric Trane HVAC US (METUS)." The same page shows three brand families side by side: Mitsubishi Electric HVAC, Trane/Mitsubishi Electric, and American Standard Heating & Air Conditioning/Mitsubishi Electric. That's the whole explanation. Three badges, one joint venture, and for the ductless lines in question, one set of hardware underneath. You can watch it in the documentation, too. The indoor-unit service manual for the NTXWST and NTYWST series, No. OBHT732, is published by Mitsubishi Electric Trane HVAC US LLC out of Suwanee, Georgia. Its copyright line reads "© Copyright 2018 MITSUBISHI ELECTRIC CORPORATION." A Trane-badged wall unit ships with a Mitsubishi Electric service manual, because that's what it is. ## The Model Numbers, Cross-Referenced This is the part that saves you an afternoon. The [compatibility data behind our model checker](https://serin-labs.com/compatibility.html#trane) carries several Trane/American Standard records. These are the residential ones: | Model family | Badge | Example in our list | Verdict | | --- | --- | --- | --- | | **NAXWST** | American Standard | NAXWST09A112AB | ✓ Compatible | | **NTXWPH** | Trane | NTXWPH09B112AA | ✓ Compatible | | **NTXWST** | Trane | NTXWST12A112AA | ✓ Compatible | | **NTYWST** | Trane | NTYWST12A112AA | ✓ Compatible | | **NTXWMT** | Trane | NTXWMT12A112AB | ✓ Compatible | | **NTXWEL** | Trane | NTXWEL12A112AA | ✓ Compatible | | **NTXCKS** | Trane | NTXCKS12A112BA | ✓ Compatible | | **NTXUKS** | Trane | NTXUKS09A112BA | ✓ Compatible | | **NTXDKS** | Trane | NTXDKS12A112AA | ✓ Compatible | | **NTXFKS** | Trane | NTXFKS12A112AA | ✓ Compatible | | **NTXAMT** | Trane | NTXAMT24A112AA | ✓ Compatible | The pattern in the prefix is worth learning. **NA** is the American Standard side, **NT** the Trane side. The **Y** in NTYWST marks a cooling-only unit, the same way Mitsubishi's own MSY does against MSZ. And the tail, the `A112AA` or `B112AA` part, is a trim code rather than a compatibility switch. None of the residential Trane rows is suffix-dependent. The commercial TP models are a different story: a Trane CITY MULTI unit takes the answer of the exact Mitsubishi revision it is built from, and some of those need a signal adapter. American Standard's own [NAXWST product page](https://www.americanstandardair.com/products/ductless/single-zone/naxwst-wall-mounted-heat-pumps/) lists capacities from 09 through 36 kBtu/h. Our record only names one of them as an example, so treat the table above as a prefix guide and [run your full model number through the checker](https://serin-labs.com/compatibility.html) before you buy anything. One correction on **NTXMPH**. Earlier versions of this post listed it as compatible. Trane's own catalog lists NTXMPH only as an outdoor unit (the MXZ-C H2i multi-zone condenser), as it does every NTXS, NTYS and NTXM number. The controller connects to the indoor unit, so the model number that decides this is the one on the indoor head. ## The Tell: If It Runs on Kumo Cloud, It Has the Port There's a faster check than any model number, and it needs no tools. Do you control this system today with the **Kumo Cloud** app? American Standard's NAXWST page says the unit is "Compatible with kumo cloud® control app and Thermostat Interface." Nowhere on that page does the phrase "Mitsubishi Electric" appear. But Kumo Cloud is Mitsubishi's app, and as I covered in [the CN105 port guide](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html), Kumo Cloud compatibility lines up cleanly with the presence of the connector. The app is a fingerprint. So: Kumo Cloud today means CN105 tomorrow. That's the sixty-second version of this entire post. ## It's the Same CN105 Port, in the Same Place ![The empty red CN105 serial port on a ductless indoor unit's control board, with the CN105 label and pins 1 and 5 marked in the silkscreen](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp) CN105 is a small 5-pin serial connector on the indoor unit's control board, usually red and sometimes white, with "CN105" printed on the board beside it. It's the port the factory Wi-Fi interface uses, the port the wall thermostats use, and the port every open-source project in this space connects to. Our [wiring reference](https://serin-labs.com/wiring.html) shows the pinout. Nothing about that changes when the front panel says Trane. Same board, same connector, same serial protocol. Multi-zone systems work the same way as well: every indoor head has its own port and needs its own board, and the outdoor unit doesn't get one at all. ## What Local Control Actually Gets You The connection is two-way, which is the part that matters. A board on CN105 doesn't just send commands, it reads the unit's real state back: mode, setpoint, room temperature, and on many units compressor frequency and outside air temperature. Infrared controllers can't do that, because a remote only ever talks. ![The pre-assembled Serin Controller — a small ESP32 board with the orange CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) The [Serin controller](https://serin-labs.com/controller.html) is an ESP32 board that clips onto that port, from **$35** pre-assembled, or build your own from [the parts list](https://serin-labs.com/parts.html) with a ready-made cable from **$8**. You [flash it from your browser](https://serin-labs.com/flash.html) over USB after it arrives; it doesn't ship with firmware on it. Two free, open-source builds are offered: **ESPHome** for Home Assistant, or a HomeKit-compatible build for Apple Home and Siri. Both are community open-source projects rather than our own code, and [the licenses page](https://serin-labs.com/licenses.html) names every upstream project and license behind them. Both run entirely on your network. No account, no vendor cloud, and your handheld remote keeps working alongside it. ## Where the Cross-Reference Runs Out Now the honest part, because "Trane ductless" covers more than the five prefixes above. Trane sells ductless systems under other model families entirely. Their [4MXW38 single-zone line](https://www.trane.com/residential/en/products/ductless-systems/single-zone-ductless-mini-splits/4mxw38/), for instance, lists indoor units as 4MXW3812A, 4MXW3818A, and 4MXW3824A. Those model numbers are not in our data, and I'm not going to tell you what's inside them. If your label doesn't start with NAX or NTX, the cross-reference in this post simply doesn't apply to you. Our record also skews wall-mounted. Every example in it is a wall unit, so a floor-mount or cassette head wearing a Trane badge may well be the same story, but it isn't one we've written down yet. When the checker doesn't recognize a model, it says so rather than guessing, and points you at two things: open the cover and look for a connector labeled CN105, or [send us the model number](https://serin-labs.com/contact.html) and we'll look it up. Take the second option if the first one makes you nervous. That's what the form is for. ## What This Doesn't Change Being rebranded Mitsubishi hardware doesn't rewrite your paperwork. Your unit was sold, installed, and warranted by Trane or American Standard, and that's who you call when the compressor fails. Connecting any third-party accessory may affect your equipment warranty, so check with your installer if that's a live concern for you. Working inside an HVAC unit carries risk; kill power at the breaker first. There are also cases where the branded accessories are the right purchase. If you want the manufacturer's own app with the manufacturer's support behind it, buy the Kumo Cloud interface through your dealer. If you want a physical thermostat on the wall with no phone and no network involved, buy the Thermostat Interface and a wall controller. I made that same argument in the [full comparison of every control option](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html), and being cheaper doesn't make our board the right answer for those two households. *Serin Labs is an independent project. It isn't affiliated with, endorsed by, or certified by Mitsubishi Electric Corporation, Trane Technologies plc, or the American Standard Heating & Air Conditioning brand. Mitsubishi Electric is a trademark of Mitsubishi Electric Corporation; Trane and American Standard are trademarks of their respective owners. Model numbers appear here only to describe compatibility.* ## Who Should Buy What - **Your label starts with NAXWST, NTXWPH, NTXWST, NTYWST, NTXWMT, NTXWEL, NTXCKS, NTXUKS, NTXDKS, NTXFKS, or NTXAMT.** You're compatible, and everything written about Mitsubishi CN105 control applies to you word for word. Start reading under that name. - **You already run Kumo Cloud and just want out of it.** The port is confirmed by the app itself. The [Kumo Cloud alternative writeup](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) covers what you gain and what you give up. - **You want manufacturer support, or a screen on the wall and nothing else.** Buy the branded interface from your dealer. That's a real answer, not a consolation prize. - **Your model number isn't in the table and doesn't start with NAX or NTX.** Don't assume. Check the board or ask us, in that order. ## The Short Version Owners of these systems lose hours to a search problem, not a hardware problem. The community documented this port thoroughly, and then filed all of it under a brand name that isn't printed anywhere on your unit. 1. Read the model number off the **indoor** head, not the outdoor unit or the remote. 2. [Type it into the model checker](https://serin-labs.com/compatibility.html) for an instant answer. 3. Get the [board and cable](https://serin-labs.com/parts.html), one set per indoor head, and [flash a firmware](https://serin-labs.com/flash.html) from your browser. The [ESPHome vs Apple Home comparison](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) helps you pick. The badge on the front is marketing. The port behind the cover is engineering, and it's the same port. ## Related - [Check your model — instant compatibility answer](https://serin-labs.com/compatibility.html) - [Does your unit have a CN105 port?](https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html) - [Get the hardware](https://serin-labs.com/parts.html) - [Every way to make a mini-split smart, compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # The Best Smart Thermostat for a Mini-Split (2026) > Nest and ecobee don't work on mini-splits. What does: Mitsubishi's MHK2 and Kumo, IR controllers like Sensibo, Cielo, and Mysa, and local CN105 control — compared with prices. Source: https://serin-labs.com/blog/best-smart-thermostat-mini-split.html Last updated: 2026-09-05 July 19, 2026 · Serin Labs "Nest thermostat for mini-split." "ecobee on a ductless heat pump." Some version of that gets searched every day. You buy the thermostat, open the box, and hit a wall: there's nowhere to wire it. A Nest or ecobee expects four or five low-voltage wires behind a wall plate, and a mini-split doesn't have them. So the real question isn't *which* smart thermostat. It's which of the few things that actually control a mini-split fits how you live. There are four categories, they run from $35 to nearly $500, and each wins for a different person. If you want every smart-control path compared head to head, I put [all of them side by side in the pillar post](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html). This one starts a step earlier, from "my Nest won't fit, now what," and adds the thermostats that post doesn't dwell on, like Mysa. ## Why Your Nest or Ecobee Won't Work A conventional smart thermostat is built for central HVAC: a furnace or air handler that cycles on and off through low-voltage 24V wiring, the familiar R, W, Y, G, C terminals. The Nest sits in that wire run and closes a circuit to call for heat or cool. A mini-split has none of that. The indoor head talks to the outdoor compressor over the manufacturer's own control bus, and it takes commands one of two ways: a proprietary serial connection on a port called **CN105**, or infrared from the handheld remote. There's no 24V loop to tap, so there's physically nothing for a Nest's wires to land on — not a settings problem, not a missing adapter. The two systems just don't speak the same language. ![Close-up of a Mitsubishi mini-split indoor unit control board with the red CN105 serial connector labeled on the silkscreen, surrounded by ribbon cables and an integrated circuit](https://serin-labs.com/assets/content/800/cn105-serial-port-mitsubishi-indoor-unit.webp.dc5bf5f158a5.webp) So every real option below does one of two things: speaks the unit's CN105 serial protocol, or mimics the IR remote. ## Quick Facts: What Actually Controls a Mini-Split - **Mitsubishi wall controllers (MHK2, PAC-SDW01RC-1):** a real thermostat on the wall, wired to **CN105**. Senses temperature in the room, zero cloud. PAC ~$179, MHK2 ~$415–$475. No app on their own. - **Mitsubishi Wi-Fi adapter (Kumo Cloud / MAC-587IF-E):** the OEM way to add a phone app. Also on CN105. ~$227, and it runs through a Mitsubishi cloud account. - **IR smart controllers (Sensibo, Cielo, Mysa):** plug-in or stick-on boxes that mimic the remote. Any brand, five-minute install, ~$79–$164, vendor cloud. - **Local CN105 control (Serin):** an ESP32 board on CN105 with two-way state and a built-in web UI. Fully local. **$35** pre-assembled, or **$15–20** in parts. ## Category 1: Mitsubishi's Own Wall Controllers If "smart thermostat" to you means a screen on the wall you can walk up and touch, this is the closest a mini-split gets to a Nest. The **MHK2** is a wireless wall thermostat plus a receiver that wires into the unit; the **PAC-SDW01RC-1** is a simpler wired controller with a color screen. Both connect through **CN105**, both run with no network at all, and both do the one thing a mini-split badly needs: they read room temperature at the wall, where you sit, instead of at the ceiling where the unit's own sensor sits. That standalone, cloud-free operation is the real reason to buy one. The catch is price and the app gap. The PAC runs about **$179**; the MHK2 streets around **$415–$475** now; the three-hundred-dollar figures still quoted around the web are a floor, not a typical price. And neither gives you an app on its own. Phone control on an MHK2 means bolting on Mitsubishi's separate Wi-Fi adapter (the **Kumo Cloud** MAC-587IF-E, ~**$227**), which lands you back on a cloud account. I go deeper on these in the [dedicated MHK2 comparison](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html). ![Two Mitsubishi wall controllers mounted side by side: the PAC-SDW01RC-1 wired controller with a color screen and the MHK2 with its Vane, Mode, Menu, and Fan display](https://serin-labs.com/assets/content/800/mitsubishi-mhk2-pac-sdw01rc-wall-controllers.webp.d41476e42ad3.webp) ## Category 2: IR Smart Controllers (Sensibo, Cielo, Mysa) This is the category most people find first: easiest to install, and it works on any mini-split, not just Mitsubishi. These boxes sit in the room and mimic your handheld remote over infrared — no cover off, nothing wired. Five minutes and you're running. **Sensibo** sells three models: the **Sensibo Sky** (around **$89**), **Sensibo Air** (**$109**), and **Sensibo Air Pro** (**$139**). The HomeKit split matters if you're an Apple household: the Sky does *not* support Apple HomeKit, while the Air and Air Pro do. Home Assistant support is official, but cloud-polling only, roughly once a minute through Sensibo's API with no local mode. The core app features are free; a **$2.49/month** "Energy Saver" plan gates the advanced scheduling and analytics. **Cielo**'s Breez line runs from the **Breez Lite** (**$79**) and **Breez Eco** (**$100**) — each with a small segment display — up to the **Breez Max** (~**$125**), whose full-color touchscreen you can run without a phone. No current Breez model does full Apple HomeKit; Cielo offers Siri Shortcuts (a voice bridge) but not Home-app integration. Cielo markets "free app, no subscription," and its official Home Assistant integration is also cloud-polling only, about every two minutes through Cielo's cloud. ![A universal IR mini-split controller mounted on the wall beside a light switch, with a wall-mounted mini-split in the background](https://serin-labs.com/assets/content/800/sensibo-ir-controller-mini-split-wall.webp.919d36abb774.webp) **Mysa** takes the thermostat shape furthest: its mini-split model (**~$131 on sale, ~$164 regular**) is a wall-mounted unit that sticks on with adhesive or a stand and runs off a plugged-in 5V USB adapter. It supports Apple HomeKit, Google Home, and Alexa. Mysa markets energy savings of "up to 26%" — a vendor claim, not something I've measured. Like the others, it requires a Mysa cloud account; there's no official local control, and Home Assistant support is community-built only. The shared tradeoff across all three: infrared is one-way. The controller fires a command like your remote does and assumes it landed — it can't read the unit's real state back (no compressor frequency, no error codes), and if someone picks up the factory remote, the app's picture drifts from reality. You're also just trading Mitsubishi's cloud for the vendor's; none of these run without an account. ## Category 3: Local CN105 Control (the Serin Controller) The last category is the one I build, so here's my bias up front. The **Serin controller** is a small ESP32 board — an M5Stack **NanoC6** or **Atom S3 Lite** — that clips onto the same **CN105** port the OEM adapter and wall controllers use. The difference from the IR boxes is the connection itself. CN105 is a two-way serial link, so instead of firing commands blind, the controller reads the unit's actual state back: compressor frequency, outside air temperature, runtime, error codes, and live logs, all in a built-in web UI with no app or cloud in between. ![The Serin controller's built-in web interface showing thermostat, fan, and vane controls in a browser with no app or cloud](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) You flash it from a browser over USB — no soldering, nothing to compile — and pick one of two free, open-source firmwares: **ESPHome**, which makes the mini-split a native Home Assistant device, or an **Apple Home compatible** build for Siri and the Home app. Because that firmware isn't MFi-certified, pairing it in the Home app shows an "Add Anyway" prompt once; tap through and it works normally after. Both are fully local, no account, no fees. It's **$35** [pre-assembled](https://serin-labs.com/controller.html), or **$15–20** in [parts](https://serin-labs.com/parts.html) if you'd rather build it, and the factory IR remote keeps working alongside it. Where it's the wrong tool, plainly: it only works on **Mitsubishi** units with a CN105 port, not other brands. You have to open the indoor unit once to plug it in. There's no screen on the wall — control is your phone, your voice, or the web UI (a wall display is in the works). And support is a community and open-source project, not a manufacturer's hotline. If any of those is a dealbreaker, a category above fits you better, and I'd rather you buy that. ## Side by Side | | MHK2 / PAC | Kumo adapter | Sensibo | Cielo | Mysa | Serin | | --- | --- | --- | --- | --- | --- | --- | | **Price** | PAC ~$179, MHK2 ~$415–$475 | ~$227 | ~$89–139 | ~$79–125 | ~$131–164 | $35 (or $15–20 DIY) | | **Wall display** | Yes | No | — | Plus & Max only | Yes | No | | **Senses temp at human height** | Yes | No | — | — | — | Optional remote sensor | | **Phone app** | Only with Wi-Fi adapter | Yes (Kumo Cloud) | Yes | Yes | Yes | Yes (web UI + Home/HA) | | **Apple HomeKit** | No | No | Air & Air Pro (not Sky) | No (Siri Shortcuts only) | Yes | Yes (Apple Home firmware) | | **Home Assistant** | No | Not officially | Official (cloud only) | Official (cloud only) | Community only | Native (ESPHome) | | **Real unit state** | Error codes | Limited | No (IR) | No (IR) | No (IR) | Yes, live | | **Cloud / account required** | No | Yes | Yes | Yes | Yes | No | | **Install effort** | Open unit, wire CN105 | Open unit, CN105 | Plug in, no wiring | Plug in, no wiring | Stick on wall, USB power | Open unit once, flash USB | | **Works on non-Mitsubishi** | No | No | Yes, any brand | Yes, any brand | Yes, any brand | No | ## Who Should Buy What - **You want a real screen on the wall and no network in the loop.** Buy the **MHK2** or **PAC-SDW01RC-1**. They sense room temperature and run forever with no cloud, and the PAC at ~$179 is the affordable end. [Full breakdown here](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html). - **You rent, can't open the unit, or want it running in five minutes on any brand.** Get an IR controller. If you're an Apple household, the **Sensibo Air** or **Mysa** give you real HomeKit; if you just want cheap and simple, the **Cielo Breez Lite** or **Sensibo Sky** are the budget picks (the Sky skips HomeKit). All of them lean on the vendor's cloud. - **You want Apple Home, Home Assistant, or local diagnostics for the least money, and you'll open the cover once.** Flash the **Serin controller**. It's the only local, two-way option here, and the cheapest. - **You just want Mitsubishi's official app and don't mind the cloud.** Add the **Kumo Cloud Wi-Fi adapter** (~$227). It's the manufacturer path, with their support behind it. ## The Short Version There's no single best smart thermostat for a mini-split, because a mini-split isn't wired for one. What you're really choosing is *how to reach the unit*: a wall screen on CN105, the OEM cloud adapter, an IR box that mimics the remote, or a local CN105 board. If what you want is local control and real diagnostics for the least money: 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html). 2. Get the [board and cable](https://serin-labs.com/parts.html), one per indoor unit, or the [pre-assembled controller](https://serin-labs.com/controller.html). 3. [Flash the firmware](https://serin-labs.com/flash.html) from your browser — ESPHome for Home Assistant, or the Apple Home build for Siri. Same mini-split, four ways to run it. Match the one to how you actually live with it. ## Related - [Every smart-control option compared](https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html) - [Cheaper alternative to the MHK2](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Your Mitsubishi Mini-Split Reads the Wrong Temperature. Here's the Fix. > Mitsubishi mini-splits sense return air at the ceiling, not where you sit. How to add a remote temperature sensor for ~$15 with ESPHome or a BLE thermometer. Source: https://serin-labs.com/blog/mitsubishi-mini-split-remote-temperature-sensor.html Last updated: 2026-09-05 July 19, 2026 · Serin Labs Set your mini-split to 70°F, sit down, and wait. The unit says it's satisfied. Your couch says otherwise. If you've lived with a Mitsubishi wall unit for even one winter, you know this argument. It's not broken. It's measuring the wrong air. The temperature sensor lives inside the indoor unit, up at the ceiling, reading the air being pulled back into the coil. Warm air stratifies, so in heating season that air runs a few degrees warmer than the air at head height. The unit hits its number and throttles back while the room you actually occupy is still cold. Mitsubishi knows this. It's the main pitch behind their wall controllers: the **MHK2** and **PAC-SDW01RC-1** both sense temperature at the wall, where you are, and feed that reading to the unit. That fix costs $179–$475. In this guide, I'll show you how the [Serin controller](https://serin-labs.com/parts.html) does the same thing with a sensor that costs about $15, with either of the free open-source firmwares you can flash onto it. ## Quick Facts - **The problem:** the built-in thermistor reads return air at the indoor unit, near the ceiling, not room-level air. - **The fix:** feed the unit a temperature from a sensor placed where you sit. The CN105 protocol supports this natively; it's what the wall controllers do. - **ESPHome firmware:** use *any* temperature sensor already in Home Assistant. Zigbee, Z-Wave, Wi-Fi, doesn't matter. - **Apple Home firmware:** use a cheap BLE thermometer (**Govee**, **Xiaomi**, **SwitchBot**, BTHome). Scan and save it from the web UI; no Bluetooth pairing. - **Cost:** ~$15 for a sensor, if you don't already own one. - **Fallback:** if the remote reading stops arriving, the unit reverts to its internal sensor. ## Why the Built-In Sensor Misses A mini-split's indoor unit mounts high on the wall. Its thermistor samples the return air it's about to condition, which is the most convenient air for the engineers and the least representative air for you. Two things skew it. Stratification puts the warmest air in the room at the ceiling, right where the sensor is. And the unit's own airstream recirculates: some of the air it just heated gets pulled straight back into the intake, so the sensor partly measures the unit's output instead of the room. The result is the familiar pattern. In heating, the unit satisfies early and coasts while the room lags cold. In cooling, the effect inverts. Either way, the setpoint on the remote stops meaning what it says, and you end up running the unit a few degrees past where you actually want the room as a workaround. That workaround is what a remote sensor eliminates. ![Cross-section of a living room: warm air (red) collects at the ceiling where the mini-split's sensor reads, while cooler air (blue) settles at couch height where a person sits](https://serin-labs.com/assets/content/800/mini-split-air-temperature-stratification-diagram.webp.1fc65b445047.webp) ## The Fix Is Built Into CN105 Here's the useful part: the Mitsubishi control protocol already accepts an external temperature. That's not a hack, it's how the **MHK2** and the wired **PAC-SDW01RC-1** work. They measure at the wall and hand the unit that number over the same [CN105 port](https://serin-labs.com/compatibility.html) the Serin controller plugs into. The unit then regulates against the number it's given. ![The red CN105 serial port on a Mitsubishi indoor unit's control board](https://serin-labs.com/assets/content/800/cn105-serial-port-mitsubishi-indoor-unit.webp.dc5bf5f158a5.webp) So the only question is what supplies the number. A $415 wall thermostat can. So can a $15 sensor talking to an ESP32 board. The heat pump can't tell the difference, and I covered the full wall-controller comparison in [its own post](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html). The Serin controller does it differently depending on which firmware you flashed. Both paths end at the same place: the unit regulates off room-level air. ## ESPHome: Use Any Sensor Home Assistant Has If you run the ESPHome firmware with Home Assistant, you almost certainly own a temperature sensor already. Any entity in Home Assistant works: a Zigbee sensor on the bookshelf, a Z-Wave multisensor, the thermometer half of an air quality monitor. If Home Assistant can see it, your mini-split can regulate off it. The [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) wires this up for you. Answer "yes" to the remote temperature sensor question, paste in your entity ID (something like `sensor.living_room_temp`), and push the config over Wi-Fi. Under the hood, the generated config imports the sensor from Home Assistant and forwards each reading to the heat pump: ``` sensor: - platform: homeassistant entity_id: ${remote_temp_sensor} filters: - clamp: min_value: 1 max_value: 40 ignore_out_of_range: true - throttle: 30s on_value: then: - lambda: 'id(hp).set_remote_temperature(x);' ``` Two details in there worth knowing. Readings are throttled to one every 30 seconds, which is plenty for a system with the thermal mass of a room. And values are clamped to 1–40°C, the range Mitsubishi units accept, so a glitchy sensor can't feed the unit garbage. One dependency to be honest about: this path runs through Home Assistant. The sensor's reading reaches the controller over the Home Assistant API, so if HA is down, the remote readings stop until it's back. ## Apple Home: A BLE Thermometer, No Pairing The HomeKit-compatible firmware takes a different route, and it's my favorite feature of that build. The controller reads **Bluetooth Low Energy thermometers** directly. No hub, no Home Assistant, no Bluetooth pairing ceremony. You open the controller's web UI, run a scan, pick your thermometer from the results, and save it. The firmware works out the sensor type from its BLE advertisements, so there's nothing to configure beyond choosing the right device. Supported sensors, per the [feature list](https://serin-labs.com/homekit/features.html): - **Govee:** H5072, H5075, H5074, H5051, H5052, H5071, H510x - **Xiaomi** LYWSD03MMC and CGG1 running the PVVX custom firmware - **SwitchBot:** the Meter family - **BTHome v2:** Shelly and generic BTHome devices ![A Govee BLE thermometer on a coffee table showing 79.8°F and 60% humidity, with a Mitsubishi mini-split on the wall behind it](https://serin-labs.com/assets/content/800/ble-thermometer-mini-split-remote-sensor.webp.9f2019728007.webp) The Govee H5075 and the little square Xiaomi LYWSD03MMC are the usual picks. Both hover around $10–15, run for many months on their batteries, and have a display, so the sensor doubles as a room thermometer you can glance at. ![The Serin controller's web UI remote-sensor panel: a Govee BLE thermometer reporting 74.3°F, 54% humidity, 100% battery and -55 dBm signal, with enable, room-temp, and sensor-timeout controls](https://serin-labs.com/assets/content/800/serin-web-ui-ble-remote-sensor.webp.c951618f6abb.webp) The controller's web UI shows the sensor's live temperature, humidity, battery level, signal strength, and when it last reported. There's a toggle to enable or disable feeding the reading to the heat pump, so you can watch the sensor for a day before you commit. And there's a safety net I want to call out: if BLE data stops arriving (dead battery, sensor carried out of range), the heat pump automatically falls back after its stale timeout to its internal thermistor. Worst case, you're back to stock behavior, not a unit chasing a stale number. ![A small wireless temperature sensor on a side table at seating height, with a Mitsubishi mini-split mounted high on the wall behind](https://serin-labs.com/assets/content/800/remote-temperature-sensor-mini-split-living-room.webp.9a14766aa6fe.webp) ## Where to Put the Sensor Placement is the whole point, so spend a minute on it. The goal is air that represents where you live in the room. - **Head height, roughly.** Seated height in a living room, a nightstand in a bedroom. - **Out of the unit's airstream.** Don't let the mini-split blow conditioned air across the sensor, or you've rebuilt the original problem with extra steps. - **Away from heat sources and sun.** Not on top of the TV, not on a windowsill, not above a radiator. - **Not on an exterior wall if you can help it.** The wall itself skews the reading in both seasons. For the BLE path, also keep it within Bluetooth range of the controller, which sits inside the indoor unit. Same room is no problem. ## Side by Side | | Built-in thermistor | MHK2 / wired controller | Serin + remote sensor | | --- | --- | --- | --- | | **Senses at** | Ceiling, return air | The wall it's mounted on | Anywhere you place the sensor | | **Added cost** | $0 | ~$179–$475 | ~$15, or $0 if HA already has a sensor | | **Sensor placement** | Fixed | Fixed to the wall mount | Any shelf, desk, or nightstand | | **App / Siri / HA control** | No | No (app needs add-on adapter) | Yes | | **Fallback if sensor fails** | — | — | Reverts to internal thermistor | | **Uses the CN105 port** | — | Yes | Yes | The placement row is the one I'd underline. A wall controller senses wherever the wall happens to be, which is better than the ceiling but still a compromise picked during installation. A wireless sensor moves. Rearrange the furniture and it goes with you; carry it to the nightstand for the summer. The setpoint follows you. ## Which Setup Should You Use? - **You run Home Assistant and own any temperature sensor.** Use the ESPHome path. It's a one-question option in the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) and costs you nothing. - **You're on the Apple Home firmware.** Buy a Govee H5075 or a PVVX-flashed Xiaomi, set it on a shelf, then scan and save it from the web UI. About $15, no pairing. - **You want a physical wall thermostat and no network anywhere in the loop.** That's the one case for the Mitsubishi wall controllers, and I mean that sincerely. [Here's the honest comparison](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html). If you're ordering the [pre-assembled Serin Controller](https://serin-labs.com/controller.html), there's an optional wireless remote temperature sensor at checkout, so you can solve this in one order. ## The Short Version Your mini-split isn't bad at holding temperature. It's holding the wrong temperature, faithfully, because its sensor lives at the ceiling. Every fix for this, Mitsubishi's included, comes down to feeding the unit a reading from where you actually are. The wall controllers charge $179–$475 for that. A $15 sensor and the controller you may already have do the same job, with the sensor on whatever shelf you like. 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html). 2. Get the [board and cable](https://serin-labs.com/parts.html) or the [pre-assembled controller](https://serin-labs.com/controller.html), and [flash your firmware](https://serin-labs.com/flash.html). 3. Add the sensor: an entity ID in the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) for ESPHome, or scan and save a BLE thermometer from the web UI for Apple Home. Set it to 70. Sit down. This time the number is about you. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [Get the hardware](https://serin-labs.com/parts.html) - [Cheaper alternative to the MHK2](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) - [Build a config with the YAML generator](https://serin-labs.com/esphome/generate-yaml.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Every Way to Make a Mitsubishi Mini-Split Smart, Compared (2026) > Compare four ways to make a Mitsubishi mini-split smart: prices, installation, apps, cloud requirements, and the best choice for your home. Source: https://serin-labs.com/blog/mitsubishi-mini-split-smart-control-comparison.html Last updated: 2026-08-27 July 15, 2026 · Updated August 27, 2026 · Serin Labs Four real options · $35 to $475 per indoor unit You can use Mitsubishi's app, put a thermostat on the wall, add a plug-in infrared controller, or connect directly to the mini-split. This guide shows what each route costs, what it can do, and where it falls short. Find my best option Check my mini-split - Typical prices - Setup difficulty - Cloud vs. local - Honest limitations ![Four ways to make a Mitsubishi mini-split smart: the Mitsubishi Wi-Fi adapter, a wall thermostat, an infrared controller, and the Serin Controller](https://serin-labs.com/assets/content/800/mitsubishi-mini-split-smart-control-options-lineup.webp.2910e3be9e9c.webp) Official app · Wall control · Infrared · Direct local control ## Quick Answer: Which Smart Controller Should You Buy? There isn't one right answer for every home. The best choice depends on whether you value official support, a wall screen, the easiest possible installation, or the most capability for the money. Official route ### Mitsubishi Wi-Fi adapter **About $227** Choose this when you want Mitsubishi's own app and support, and you are comfortable depending on its cloud service. - One adapter per indoor unit - Kumo Cloud or MELCloud app - Mitsubishi account required Read the trade-offs Best physical control ### MHK2 or wired wall controller **$179–$475** Choose this when a familiar thermostat on the wall matters more than phone or voice control. - No network needed for basic control - Measures temperature at room height - App control costs extra Read the trade-offs Easiest installation ### Sensibo, Cielo, or similar **About $79–$139** Choose infrared when you rent, cannot open the mini-split, or want setup with no HVAC wiring. - Works with many mini-split brands - Needs line of sight and an outlet - Cannot read the unit's real status Read the trade-offs Best value for compatible units ### Serin Controller **From $35** Choose direct local control when you want an app, Siri or Home Assistant, and real unit feedback without a cloud account. - Two-way connection to the mini-split - No account or monthly fee - Requires opening the unit once [See the Serin Controller](https://serin-labs.com/controller.html) **My short recommendation:** if you own a compatible Mitsubishi-family unit and are comfortable turning off the breaker and opening its cover once, the Serin Controller gives you the most capability for the least money. Renters should start with infrared. People who specifically want a thermostat on the wall should buy a wall controller. Buyers who only trust factory-supported hardware should choose Mitsubishi's Wi-Fi adapter. Start here Are you comfortable opening the indoor unit? Yes, keep going No **Infrared controller** Sensibo, Cielo, or similar · about $79 to $139 Do you want a thermostat on the wall? No, keep going Yes **Wall controller** MHK2 or PAC-SDW01RC-1 · $179 to $475 Do you want manufacturer hardware and official support? No, keep going Yes **Mitsubishi Wi-Fi adapter** MAC-587IF-E · about $227, Mitsubishi account [**Serin Controller** From $35 · no account, no monthly fee](https://serin-labs.com/controller.html) Three questions, four answers. Every route ends at a price. ## Check Compatibility Before You Compare Prices The Mitsubishi Wi-Fi adapter, both wall controllers, and the Serin Controller connect to a small service port called **CN105** inside the indoor unit. Most Mitsubishi Electric mini-splits from roughly the last 15 years have it, but there are exceptions. A few newer systems provide another connector for the factory Wi-Fi adapter; check the documentation for your exact model before assuming two wired accessories can share the unit. Infrared controllers do not use CN105. They work by sending the same signals as the handheld remote, so they are the fallback for unsupported models and other mini-split brands. Before you buy a wired option ## Does your indoor unit have the right connection? Enter the model number from the label on the indoor unit. The checker covers Mitsubishi Electric plus many Mitsubishi-built Trane and American Standard systems. ## The Four Ways to Make a Mitsubishi Mini-Split Smart The four products do not simply provide the same controls at different prices. They connect differently, rely on different services, and solve different household problems. ### 1. Mitsubishi's Wi-Fi Adapter: The Official App ![Mitsubishi MAC-587IF-E Wi-Fi adapter installed inside a Mitsubishi Electric indoor unit](https://serin-labs.com/assets/content/800/mitsubishi-mac-587if-e-wifi-adapter.webp.ea09b08dbc81.webp) The **MAC-587IF-E** is Mitsubishi's factory answer to phone control. It plugs into the indoor unit and connects it to **Kumo Cloud** in North America or **MELCloud** in many other markets. Setup, schedules, and remote access run through Mitsubishi's app, and you need a Mitsubishi account. Retail pricing is around **$227 per indoor unit**. Its advantage is straightforward: it is the manufacturer's own hardware, designed for the equipment and backed through official support channels. If that support relationship matters more to you than cost or cloud dependence, this is the safest choice. The trade-off is that setup, remote access, and schedules depend on Mitsubishi's service; control from inside the house stays on your Wi-Fi. Multi-zone costs also climb quickly because every indoor unit needs an adapter. The [Kumo Cloud alternative guide](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) looks more closely at that choice. ### 2. Mitsubishi Wall Controllers: A Real Thermostat on the Wall ![Mitsubishi MHK2 wireless controller and PAC-SDW01RC-1 wired wall controller shown side by side](https://serin-labs.com/assets/content/800/mitsubishi-mhk2-pac-sdw01rc-wall-controllers.webp.d41476e42ad3.webp) The **MHK2** and **PAC-SDW01RC-1** are for households that want a familiar thermostat rather than another app. They put the temperature sensor at room height, provide a physical screen, and continue working without a network. The wired PAC-SDW01RC-1 runs about **$179**. The wireless MHK2 is generally **$415–$475**. Neither gives you phone control by itself; adding that usually means buying Mitsubishi's Wi-Fi adapter too. That cost can still make sense in a rental, guest space, or household where anyone should be able to adjust the temperature without finding a phone. The [wall-controller comparison](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) covers the differences between the two. ### 3. Sensibo, Cielo, and Other Infrared Controllers: No Cover to Open ![A universal infrared mini-split controller mounted on a wall with a mini-split in the background](https://serin-labs.com/assets/content/800/sensibo-ir-controller-mini-split-wall.webp.919d36abb774.webp) Infrared controllers are the easiest option to install. A **Sensibo**, **Cielo**, or similar device sits in the room, connects to Wi-Fi, and sends the same infrared commands as the factory remote. Sensibo and Cielo models typically run about **$79–$139**, depending on the model and current promotions. This is the honest recommendation for renters, unsupported mini-split brands, and anyone who does not want to open HVAC equipment. It needs a power outlet and a clear view of the indoor unit, but it can be running without touching the mini-split itself. The limitation is communication. Infrared is one-way: the controller sends a command and assumes the unit received it. If someone uses the handheld remote, the app's displayed setting can drift from the actual setting. It also cannot read compressor information, error codes, or other internal operating data. The [infrared-controller guide](https://serin-labs.com/blog/ir-smart-controllers-mitsubishi-limits.html) explains when that matters. Infrared ### Sends only Out of sync It can send a command, but nothing comes back. The app keeps showing the last setting it sent, not the one the unit is running. Direct connection ### Sends and reads back In sync The same wire carries commands out and the unit's own state back, so a change made on the handheld remote shows up in the app. Both routes can turn the unit down. Only one of them finds out when someone else does. ### 4. The Serin Controller: Direct, Local Control The **Serin Controller** is a compact ESP32 board with a cable that plugs into the indoor unit's CN105 service connection. That creates a two-way serial link: the controller sends commands and reads back temperature, mode, fan state, error information, and other operating data exposed by the unit. You connect it to a computer over USB and install one of the supported free, open-source firmware options from a browser. Choose **ESPHome** for Home Assistant, or an **Apple Home-compatible** build for Siri and the Home app. The hardware does not normally ship with either firmware pre-installed. Neither route requires a Serin account, cloud service, or recurring fee. ![The pre-assembled Serin Controller with its CN105 cable attached](https://serin-labs.com/assets/gallery/800/serin-controller-20cm-braided-cable.webp.webp) **Price:** from $35 pre-assembled, or roughly $15–20 when built from the parts list. **Best for:** compatible Mitsubishi-family units where local app, Siri, or Home Assistant control matters more than a physical wall screen. **Installation:** turn off the breaker, open the indoor unit, and connect one keyed plug. There is no soldering or wire cutting. **Limitation:** it is not a wall thermostat, and it uses the same internal service connection as most Mitsubishi wired accessories. The handheld infrared remote continues to work. Because the connection reads the actual mini-split state, changes made with that remote remain visible in the app. The pre-assembled version costs **from $35**; the [DIY parts route](https://serin-labs.com/parts.html) is approximately **$15–20**. ## Side-by-Side Smart Controller Comparison Prices below are per indoor unit. Multi-zone systems need one controller or adapter for each head you want to control. | | Mitsubishi Wi-Fi adapter | Mitsubishi wall controller | Sensibo / Cielo (IR) | Serin Controller | | --- | --- | --- | --- | --- | | **Typical price** | ~$227 | $179–$475 | ~$79–$139 | From $35, or $15–20 DIY | | **Connection** | Internal service port | Internal service port | Infrared across the room | Direct CN105 connection | | **Installation** | Open indoor unit | Open indoor unit | Plug in; no cover removal | Open indoor unit | | **Physical wall screen** | No | Yes | Some models | No | | **Phone control** | Mitsubishi app | Only with extra adapter | Vendor app | Built-in UI, Apple Home, or Home Assistant | | **Reads actual unit state** | Limited | Limited | No | Yes | | **Cloud or account required** | Yes | No for basic control | Usually yes | No | | **Works with many brands** | No | No | Yes | Mitsubishi-family units only | | **Keeps handheld remote working** | Yes | Yes | Yes, but app may drift | Yes, with state kept in sync | ![The Serin Controller with its attached CN105 cable](https://serin-labs.com/assets/gallery/800/serin-controller-20cm-braided-cable.webp.webp) Best value for a compatible unit ## Serin Controller The board and tested cable arrive assembled. You select and install the free firmware that matches your smart-home platform from a supported browser; nothing needs to be soldered or compiled. From $35 · Free US shipping · 5.0 from 42 reviews [See the Serin Controller](https://serin-labs.com/controller.html) [Prefer to build it yourself?](https://serin-labs.com/parts.html) ## Who Should Buy What? - **Buy the Mitsubishi Wi-Fi adapter** when official hardware and manufacturer support are worth more to you than the price or cloud dependence. - **Buy the MHK2 or PAC-SDW01RC-1** when you want a thermostat anyone can use from the wall without a phone or network. - **Buy a Sensibo, Cielo, or similar infrared controller** when you rent, own another mini-split brand, or do not want to open the unit. - **Buy the Serin Controller** when you have a compatible Mitsubishi-family unit and want local app, Siri, or Home Assistant control with real unit feedback for the lowest price here. One important constraint: wired options commonly compete for the same service connection. Do not assume you can install the Wi-Fi adapter, a wall controller, and the Serin Controller together. Infrared controllers are the exception because they never connect to the control board. ## What Does a Multi-Zone System Cost? Every indoor head is its own controllable zone. That means a three-head system generally needs three Wi-Fi adapters, three infrared controllers, or three Serin Controllers. The wall-controller configuration depends on the equipment and the kind of room control you want. Using the per-head figures above, three pre-assembled Serin Controllers start at **$105**. Three Mitsubishi Wi-Fi adapters at roughly $227 each come to about **$681**. Those figures do not include professional installation. The [multi-zone guide](https://serin-labs.com/blog/mitsubishi-multi-zone-smart-control.html) covers cable choices, naming, and the limits imposed by the shared outdoor unit. ## The Honest Limits of the Lowest-Cost Route The Serin Controller is the strongest value for a compatible unit, but it is not the answer for everyone: - It works with compatible Mitsubishi Electric systems and many Mitsubishi-built Trane and American Standard ductless units, not every mini-split brand. - You must turn off power and open the indoor unit once to connect it. Hire an HVAC technician if you are not comfortable doing that. - You install the firmware from a desktop or laptop using Chrome, Edge, or Brave. It is a short guided process, but it is still a step the official adapter does not ask you to do. - The Apple Home-compatible firmware is free and open source, but it is not MFi-certified. Apple displays an “Add Anyway” message once during pairing. - It has no physical display. If a wall thermostat is the requirement, buy the wall thermostat. ## The Short Version The four choices optimize for four different things: 1. **Official support:** Mitsubishi Wi-Fi adapter. 2. **A physical wall screen:** MHK2 or PAC-SDW01RC-1. 3. **The easiest installation:** Sensibo, Cielo, or another infrared controller. 4. **Local control and the most capability per dollar:** Serin Controller. If the fourth option sounds like your home, the next steps are simple: 1. [Check your indoor-unit model](https://serin-labs.com/compatibility.html). 2. Get the [pre-assembled Serin Controller](https://serin-labs.com/controller.html) or the [DIY parts](https://serin-labs.com/parts.html), one per indoor unit. 3. Install the free firmware from the [browser installer](https://serin-labs.com/flash.html) and follow the setup guide for your platform. You do not need to make the most expensive choice to make a Mitsubishi mini-split smart. You need the connection method that matches how your household will actually use it. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [See the Serin Controller](https://serin-labs.com/controller.html) - [The best Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) - [Cheaper alternative to the MHK2](https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Add Your Mitsubishi Mini-Split to Apple Home (HomeKit + Siri) > Mitsubishi mini-splits don't support Apple Home natively. Three ways to add HomeKit + Siri: CN105 firmware, HA's HomeKit Bridge, or Homebridge. Source: https://serin-labs.com/blog/mitsubishi-mini-split-apple-home-homekit-siri.html Last updated: 2026-09-07 July 6, 2026 · Serin Labs The first thing I tried was searching "Mitsubishi mini-split HomeKit" and hoping. If that's how you got here, let me save you the runaround: Mitsubishi heat pumps don't work with Apple Home out of the box. No HomeKit logo on the box, no accessory to add, nothing to pair. The factory app is Kumo Cloud, and Kumo Cloud is not HomeKit. But you *can* get there, fully local, and it's a smaller job than you'd think. I did it to every unit in my house, and my parents' house after that. The whole thing hinges on a serial port already sitting inside the indoor unit: the **CN105** port. A small **ESP32** board, the [Serin CN105 ESP32 controller](https://serin-labs.com/controller.html), clips onto it and speaks the heat pump's own protocol. Flash it with free, open-source **HomeKit-compatible firmware** and your mini-split shows up in the Apple Home app like any other thermostat. Siri, scenes, automations, the lot. No account, no cloud, nothing between you and the unit but your own Wi-Fi. ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) **Quick Facts** - **What it is:** an ESP32 controller that adds Apple Home (HomeKit) support to a Mitsubishi mini-split - **Boards:** M5Stack **NanoC6** or **Atom S3 Lite** (both ESP32); one per indoor unit - **Connects via:** the **CN105** serial port inside most Mitsubishi Electric indoor units - **Firmware:** HomeKit-compatible, free and open source; you flash it yourself from a browser - **Pairs with:** the Apple Home app over HAP (HomeKit Accessory Protocol) — Siri included - **Remote access / automations:** need an **Apple Home Hub** (Apple TV or HomePod) - **Cloud / account:** none, ever - **Price:** ~$15–20 DIY, or pre-assembled ## Does a Mitsubishi Mini-Split Work With Apple Home? Not on its own. Mitsubishi never built HomeKit into their heat pumps or their app. Your options from the factory are the IR remote and Kumo Cloud (MELCloud in Europe), and neither one talks to Apple Home. So every "add my Mitsubishi to HomeKit" search runs into the same wall: there's no official path. The unofficial one is better anyway. Instead of routing through a manufacturer cloud, you tap the control port the unit already exposes and run the HomeKit side yourself, on hardware you own. That's what the CN105 approach does. The heat pump thinks it's talking to a Mitsubishi accessory; Apple Home thinks it's talking to a normal thermostat; the little ESP32 board in the middle translates and keeps every command on your LAN. The result is a native Apple Home tile. Set the temperature, change modes, control the vane, ask Siri, drop it into a scene. All of it local. ## Three Ways to Get a Mitsubishi Into Apple Home There's more than one route, and which is right depends on what you already run. All three end with a thermostat tile in the Home app. They differ in what sits behind it. **1. Direct HomeKit-compatible firmware (this guide).** The CN105 board runs firmware that speaks HomeKit's own protocol (HAP), so it pairs straight into Apple Home with nothing in between. No server to keep running, no cloud, no account. It's the simplest local path, and it's what the rest of this post walks through. **2. Home Assistant's HomeKit Bridge.** Already run Home Assistant? Flash the *same* CN105 board with **ESPHome** instead. Home Assistant picks it up as a climate entity, and its built-in [HomeKit Bridge](https://www.home-assistant.io/integrations/homekit/) exposes that entity to Apple Home. Same hardware, same local-only result, same one-time "Add Anyway" prompt at pairing. The catch is that you need a Home Assistant server running around the clock. Worth it if HA is already your hub and you want everything under one roof. Overkill if Apple Home is all you use. **3. Homebridge, with a cloud plugin.** Homebridge is a Node.js server that bridges non-HomeKit gear into Apple Home. The Mitsubishi plugins for it, [homebridge-kumo](https://github.com/fjs21/homebridge-kumo) and [homebridge-melcloud-control](https://github.com/grzegorz914/homebridge-melcloud-control), talk to Kumo Cloud or MELCloud. So you still need Mitsubishi's Wi-Fi adapter bolted onto the unit and an account with the cloud, plus a machine to run Homebridge on. It does get you a HomeKit tile, but it keeps the exact cloud dependency most people are trying to shed, and the adapter alone often costs more than the entire CN105 approach. (homebridge-kumo can reach the adapter over your LAN once it's configured, which is faster than the cloud round-trip, but the adapter and the account are still required.) | | Direct firmware | HA HomeKit Bridge | Homebridge (Kumo/MELCloud) | | --- | --- | --- | --- | | **Extra hardware** | CN105 board (~$15–40) | CN105 board (~$15–40) | Mitsubishi Wi-Fi adapter (~$227) | | **Always-on server** | None | Home Assistant | Homebridge (Node.js) | | **Cloud / account** | None | None | Kumo Cloud / MELCloud | | **Fully local** | Yes | Yes | No — setup rides the cloud | | **Best for** | Apple-only households | Existing HA users | You already have the adapter | If Apple Home is your world and you want the least to run and nothing in the cloud, the direct firmware is the one. The rest of this guide sets it up. ## What You Need Three things, and you probably already have the third. - **The board and cable.** An ESP32 board (M5Stack NanoC6 or Atom S3 Lite) plus a CN105-to-Grove cable, [one per indoor unit](https://serin-labs.com/parts.html). Buy them separately for around $15–20, or get one [pre-assembled](https://serin-labs.com/controller.html). - **A CN105 port on your unit.** This is the one thing to confirm before you spend a cent. It's built into most Mitsubishi Electric indoor units. A quick proxy: if your unit runs on Kumo Cloud or MELCloud today, it almost certainly has CN105. Still, take five minutes and [check your unit for the port](https://serin-labs.com/compatibility.html) for certain. - **An Apple Home Hub, for the full experience.** An Apple TV or a HomePod. On your home Wi-Fi you can control the unit without one, but the Hub is what gives you remote access from outside the house and lets automations run when your phone isn't home. Most Apple households already have one sitting under the TV. ![A Mitsubishi mini-split showing up as a Heat Pump climate tile at 73° in the Apple Home app, alongside fan and light tiles](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-tile.webp) ## Setting It Up, Step by Step Start to finish this is a coffee's worth of work, not an afternoon. No soldering, nothing to compile. **1. Clip it onto CN105.** Power the unit down, pop the indoor unit's front cover, find the CN105 header on the control board, and plug in the cable. It only fits one way. Route the board somewhere it can breathe and close the cover back up. **2. Flash the firmware.** Plug the board into your computer over USB and [flash it from your browser](https://serin-labs.com/flash.html). It's Web Serial, so there's no app to install — Chrome or Edge does the whole thing. Pick the HomeKit-compatible build. **3. Get it on Wi-Fi.** On first boot the board creates its own Wi-Fi hotspot. Join it from your phone (the [setup guide](https://serin-labs.com/homekit/setup.html) shows a QR code that connects you), and a portal opens to hand over your home network credentials. Prefer to do it over USB? The setup page has an Improv Serial option that sets Wi-Fi straight from the browser while it's still plugged in. **4. Add it to Apple Home.** Open the Home app, tap **Add Accessory**, and scan the pairing QR code from the setup page (or type the setup code). Your mini-split lands in Apple Home as a thermostat. ![The Apple Home 'Uncertified Accessory' prompt during pairing, with Add Anyway and Cancel buttons](https://serin-labs.com/assets/apple-home-uncertified-accessory-add-anyway.webp) One thing to expect here, and I'd rather you hear it from me than be surprised by it: this firmware isn't MFi-certified, so Apple Home shows an **"Uncertified Accessory"** notice and asks you to tap **Add Anyway**. That prompt is normal. Tap it and pairing finishes. After that the accessory behaves like any other thermostat in the Home app — MFi is Apple's paid licensing and certification program, and this independent open-source project simply isn't enrolled in it. ## Controlling a Mitsubishi Mini-Split from the Apple Home App Once it's paired, it behaves like any Apple Home thermostat, which is the whole point. ![The Apple Home thermostat control for the mini-split: a circular dial set to Cool to 76°, showing the current 73° temperature and fan speed](https://serin-labs.com/assets/mitsubishi-mini-split-apple-home-thermostat-control.webp) **Siri works immediately.** "Hey Siri, set the bedroom to 70." "Hey Siri, turn off the office AC." No extra setup — pairing is all it takes. **Scenes and automations, if you have a Hub.** Drop the heat pump into a "Good Night" scene that cools the bedroom and dims the lights in one tap. Or automate it: warm the house before your alarm, back it off when everyone leaves, nudge it at sunset. These run on the Apple Home Hub, so they keep working with your phone in your pocket or across the country. **A tile on every Apple screen.** iPhone, iPad, Mac, Apple Watch, the HomePod you talk to. Because it pairs natively over HAP, there's no separate app to open and no login to remember. It's just there, next to your lights and locks. ![A Govee BLE thermometer on a side table displaying room temperature and humidity for the mini-split to regulate against](https://serin-labs.com/assets/content/800/govee-ble-thermometer-room-temperature.webp.bdbda520fca5.webp) ## The Upgrade That Actually Matters: A Room Sensor Here's the single change that made the biggest comfort difference for me, and it costs about $15. A mini-split reads temperature up at the indoor unit, near the ceiling, where the air runs a few degrees warmer than where you actually sit. So "72" at the unit can feel like 68 on the couch. The firmware fixes this with an optional **BLE room sensor**: a cheap Bluetooth thermometer you place at seating height, and the heat pump regulates off *that* reading instead of the warm air at the ceiling. It auto-detects the sensor from its Bluetooth advertisements, so there's no pairing dance. Supported thermometers include **Govee** (H5075, H5072, H5074 and similar), **Xiaomi** (LYWSD03MMC, CGG1 running PVVX firmware), **SwitchBot** meters, and anything speaking **BTHome v2** (Shelly and other generic sensors). If the sensor goes quiet, the firmware falls back to the unit's internal thermistor on its own after a stale timeout — 10 minutes by default, adjustable down to 30 seconds — so a dead battery never leaves you without heat. If you've ever priced a Mitsubishi wall thermostat to get room-height sensing, this is the same benefit for a fraction of the money, and you can put the sensor anywhere in the room, not just on one wall. ## What You Also Get: The Web UI Separate from Apple Home, the firmware serves its own web page on your network. Open the controller's IP in any browser and you see what the Home app and the factory remote both hide: compressor frequency, outside air temperature, runtime, live logs, and error codes. You can drive the thermostat and vane from there too. Phone dead, Hub unplugged, doesn't matter — the unit still answers on its own address. ## The Honest Limits I want you going in clear-eyed. - **Remote access and automations need an Apple Home Hub.** On your home Wi-Fi you control the unit directly. To reach it from outside, or to run schedules while you're away, you need an Apple TV or HomePod acting as the hub. No hub, no remote. - **It's not MFi-certified.** Expect the "Add Anyway" prompt when you pair. It's a one-time tap, not a recurring nag, and it doesn't limit anything. - **One CN105 per indoor unit.** The controller owns that port. You generally can't run it alongside a wired Mitsubishi wall controller on the same unit, since there's a single port to give. The factory IR remote, on the other hand, keeps working right alongside it. - **You're flashing firmware yourself.** It's browser-based and about as hard as filling in a Wi-Fi password, but it isn't install-an-app. If that's genuinely not for you, a pre-assembled controller shortens the job to plugging in and pairing. ## Who Should Do This - **You live in Apple Home and want your heat pump in it.** This is exactly the case it's built for. Native tile, Siri, scenes, all local, no monthly anything. Flash the HomeKit-compatible firmware and you're done. - **You want Siri and away-from-home control and already own an Apple TV or HomePod.** You have everything you need. The hub you already own does the remote-access half. - **You run Home Assistant.** You've got a choice. Flash **ESPHome** and the unit becomes a native HA climate entity; if you also want it in Apple Home, expose it through HA's HomeKit Bridge (option 2 above) rather than the direct firmware, so HA stays your single source of truth. Prefer the simplest Apple-only setup with no server to babysit? The direct firmware works for you too. Here's the [ESPHome vs Apple Home breakdown](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html), and you can reflash either direction later with the same browser tool. The path is short: 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html). If it's on Kumo Cloud or MELCloud today, it almost certainly does. 2. Get the [board and cable](https://serin-labs.com/parts.html), one per indoor unit, or the [pre-assembled CN105 ESP32 controller](https://serin-labs.com/controller.html). 3. [Flash the HomeKit-compatible firmware](https://serin-labs.com/flash.html) from your browser and follow the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html). Same heat pump, now with a real Siri thermostat in front of it, and not a line of it running through anyone's cloud. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [Get the hardware](https://serin-labs.com/controller.html) - [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) - [ESPHome vs Apple Home firmware](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Cheaper Alternative to the Mitsubishi MHK2 Wall Controller > Mitsubishi's MHK2 and PAC-SDW01RC-1 wall controllers cost hundreds of dollars per room. Here's a local alternative that adds app, Siri, and Home Assistant control for far less. Source: https://serin-labs.com/blog/mitsubishi-mhk2-wired-controller-alternative.html Last updated: 2026-09-05 July 6, 2026 · Serin Labs If you're pricing out a Mitsubishi **MHK2**, an older **MHK1**, or a wired **PAC-SDW01RC-1**, your instinct is right: the little credit-card IR remote that came with the unit is no way to run a heat pump you live with. You want a real controller. Something on the wall, something precise, something that isn't a cloud app asking you to sign in. Good news and better news. The good news: those Mitsubishi wall controllers are solid, and I'll be fair about what they do well. The better news: all three of them plug into the exact same port a $15–40 controller uses, and that one fact changes the math on the whole purchase. ![The Serin controller connected to the CN105 port on a Mitsubishi mini-split indoor unit](https://serin-labs.com/assets/gallery/800/serin_cn105_mitsubishi_gl06na.jpg.webp) ## Quick Facts: The Four Options - **MHK2 (Kumo Touch, RedLINK):** wireless wall thermostat plus receiver. Connects via **CN105**. Around **$415–$475**. App control needs a separate Wi-Fi adapter. - **MHK1:** the MHK2's discontinued predecessor. Same idea, older hardware. - **PAC-SDW01RC-1:** wired wall controller, color screen. Ships with a **CN105 adapter**, runs on 18/4 AWG wire. 7-day schedule, dual-setpoint auto changeover, PIN lock. Around **$179**. - **Serin controller:** ESP32 board on the same **CN105** port. App, Siri, and Home Assistant control. Around **$15–40**. ![Two Mitsubishi wall controllers mounted side by side: the PAC-SDW01RC-1 wired controller with a color screen and the MHK2 with its Vane, Mode, Menu, and Fan display](https://serin-labs.com/assets/content/800/mitsubishi-mhk2-pac-sdw01rc-wall-controllers.webp.d41476e42ad3.webp) ## What These Mitsubishi Controllers Actually Are Let's get the lineup straight, because the names blur together. **MHK2 (Kumo Touch, RedLINK)** is a wall-mounted *wireless* thermostat plus a small receiver. The receiver wires into the unit; the thermostat talks to it over RF, so you can hang the display anywhere. Real screen, 7-day scheduling, temperature sensed at the wall. It's the premium option, and it's priced like one. **MHK1** is the MHK2's discontinued predecessor. Same idea, older hardware. If you're searching for one, you're usually replacing a dead one, and the MHK2 is the stand-in. **PAC-SDW01RC-1 (Simple Ductless Wired Remote Controller)** is a *wired* wall controller with a color screen. It's the "precise climate control" puck most people find first, and the cheapest of the three. Dual-setpoint auto changeover, a 7-day program, a PIN lock. All three do the same core job the factory remote won't: give you a fixed, physical, room-aware way to run the unit. ## They All Use the Same CN105 Port Here's the part that reframes everything. **The MHK2 receiver and the PAC-SDW01RC-1 both connect through the CN105 port.** The MHK2 gets there via its control cable to CN105, the wired controller via the CN105 adapter in the box. That's the same serial port on the same control board that the [Serin controller](https://serin-labs.com/parts.html) clips onto. Most indoor units have exactly one CN105 port. That makes it a straight either/or: one device owns the port, and you decide which. You're choosing an *interface* for your heat pump. Seen that way, a $179–$475 wall puck and a $15–40 ESP32 board are competing for the very same slot. ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) ## What the Wall Controllers Do Well I'm not going to pretend the wall controllers aren't useful. They do two things the Serin controller doesn't do out of the box, and if either matters to you, buy the Mitsubishi part with a clear conscience. **They're standalone.** No phone, no Wi-Fi, no hub, no network at all. Power the unit, touch the screen, done. For a rental, a guest room, a workshop, or anyone who simply doesn't want a smartphone in the loop, a physical wall thermostat is the honest right answer. **They sense temperature where you are.** That's the whole "precise climate control" pitch, and it's real. A mini-split normally reads the air up at the indoor unit near the ceiling, which runs a few degrees warmer than head height. A wall controller measures the room where you actually sit, so the setpoint means what it says. Those are the two reasons to spend the money. Hold onto them, because the second one has a much cheaper answer. ## What the Serin Controller Adds The Serin controller is a small ESP32 board that clips onto CN105 and turns your mini-split into a normal device on your Wi-Fi. You flash it from your browser over USB (no soldering, nothing to compile) and pick one of two free, open-source firmwares. Then: **You control it from your phone, Siri, or Home Assistant.** The MHK2 on its own has *no app*. Want phone or away-from-home control? You bolt on Mitsubishi's separate Wi-Fi adapter, which drops you right back onto Kumo Cloud, account and all. The Serin controller does app and voice control natively, and keeps every command on your own network. (If you're specifically trying to escape Kumo Cloud, that's [its own post](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html).) **You get remote temperature sensing too, for about $15.** Remember the wall controller's best trick, reading temperature where you sit? Serin has an optional remote temperature sensor that does the same job. Feed it any [Home Assistant sensor](https://serin-labs.com/esphome/generate-yaml.html) on the ESPHome side, or a [BLE thermometer](https://serin-labs.com/homekit/features.html) on the Apple Home side, and the heat pump regulates off the temperature where you actually sit instead of the warm air at the ceiling. That erases the wired controller's main advantage at a fraction of the price, and you can place the sensor anywhere, not just on the wall the display happens to hang on. ![A small white wireless temperature sensor on a side table at seated height in a living room](https://serin-labs.com/assets/content/800/remote-temperature-sensor-mini-split-living-room.webp.9a14766aa6fe.webp) **You can actually see the unit.** The built-in web UI shows what no wall puck exposes: compressor frequency, outside air temperature, runtime, live logs, and error codes in plain view. Open the controller's IP in any browser and drive the heat pump directly. No app, no cloud. ![The Serin controller's built-in web interface showing thermostat, fan, and vane controls in a browser with no app or cloud](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) **You keep the handheld remote.** Installing on CN105 doesn't disable the factory IR remote. It keeps working right alongside app, voice, and web control, so nothing you have today goes away. ## Side by Side | | PAC-SDW01RC-1 (wired) | MHK2 (wireless) | Serin controller | | --- | --- | --- | --- | | **Typical price** | ~$179 | ~$415–$475 | ~$15–20 DIY, or pre-assembled | | **Physical wall screen** | Yes | Yes | No (phone / web UI) | | **Works with no network** | Yes | Yes | No | | **App control** | No | Only with add-on Wi-Fi adapter | Built in | | **Voice (Siri, etc.)** | No | No | Yes (Apple Home firmware) | | **Home Assistant** | No | No | Native, via ESPHome | | **Room-height temp sensing** | Yes, at the wall | Yes, at the wall | Yes, optional remote sensor (~$15) | | **Cloud / account** | None | None, unless you add the Wi-Fi adapter | None, ever | | **Live diagnostics** | Error codes | Error codes | Compressor freq, air temp, logs, error codes | | **Connects via** | CN105 adapter | CN105 (receiver cable) | CN105 | ## So Which One Should You Buy? It comes down to one question, and it's the same one CN105 forces: **do you want a thing on the wall, or a thing on your phone?** - **You want a physical thermostat and never want a phone or network involved.** Buy the Mitsubishi wired controller. That's exactly what it's for, and the Serin controller isn't trying to be a wall screen. - **You want app, voice, or Home Assistant control, with precise room sensing, for a fraction of the price.** Flash the Serin controller. Add a cheap room sensor and you've matched the wall puck's accuracy while spending well under half of it, with no cloud attached. One honest caveat, since it's the same port: you generally can't run a wired Mitsubishi controller *and* the Serin controller on one indoor unit at the same time. There's a single CN105 to give. Pick the interface you actually want to use every day. ## Will It Fit Your Unit? Everything hinges on that one connector. The Serin controller needs the **CN105** port, which is built into most Mitsubishi Electric indoor units, the same port those wall controllers were going to use. A quick proxy: if your unit runs on Kumo Cloud or MELCloud today, it almost certainly has CN105. Still, take five minutes and [confirm your unit has the port](https://serin-labs.com/compatibility.html) before ordering anything. ## The Short Version The MHK2, MHK1, and PAC-SDW01RC-1 are fine controllers with one expensive assumption baked in: that the answer has to hang on your wall. If a physical screen is what you're after, buy one. If what you actually want is real, precise, cloud-free control from your phone, your voice, or Home Assistant, the same CN105 port will give it to you for a small fraction of the cost. 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html). 2. Get the [board and cable](https://serin-labs.com/parts.html), one per indoor unit, or a pre-assembled controller. 3. [Flash the firmware](https://serin-labs.com/flash.html) from your browser. ESPHome for Home Assistant, or the Apple Home compatible build for Apple households. Same heat pump, same precision, without the $475 wall puck. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [Get the hardware](https://serin-labs.com/parts.html) - [The best Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) - [Flash the firmware](https://serin-labs.com/flash.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # Does Your Mitsubishi Have a CN105 Port? How to Check > How to tell if your Mitsubishi has a CN105 port before you buy any local-control hardware: the Kumo Cloud proxy, the model-number check, and a look inside. Source: https://serin-labs.com/blog/how-to-check-mitsubishi-cn105-port.html Last updated: 2026-10-02 July 5, 2026 · Serin Labs Before you spend a dollar on local control, settle one thing: does your Mitsubishi have a **CN105** port? Everything runs on that single connector. The controller clips onto it, the firmware talks through it, and walking away from Kumo Cloud depends on it. Get it right and the rest is easy. Get it wrong and you've bought hardware for a unit that can't use it. The good news: you can usually answer this in about a minute, no screwdriver required. Here's how I check, fastest method first. ![The CN105-to-Grove cable that clips onto the CN105 serial port inside a Mitsubishi indoor unit](https://serin-labs.com/assets/gallery/800/cn105_cable.jpg.webp) **The 60-Second Check** - **Run Kumo Cloud or MELCloud today?** Yes → you have CN105. Done. - **No app?** Read the model number behind the front flap and [type it into the model checker](https://serin-labs.com/compatibility.html) for an instant answer. Prefixes **MSZ, MSY, MFZ, MLZ, SLZ, SEZ, SVZ, PEAD, PVA, PKA, PCA, PLA, PEFY** → most have CN105, but several older trims don't; the checker knows the exceptions. - **Want certainty?** Pop the front panel and look for the red **CN105** connector on the control board. - **Deal-breakers:** Mitsubishi *Heavy Industries* (SRK/SRC/SRF) and air-to-water (Ecodan) units → not compatible. ## What a CN105 Port Even Is CN105 is a small 5-pin serial connector on the control board inside most **Mitsubishi Electric** indoor units. It's how the unit was built to talk to external controllers, and it's the port every open-source local-control project connects to, the [Serin controller](https://serin-labs.com/parts.html) included. Plug in there and you speak the heat pump's native language directly. No factory app in the middle. No cloud. One thing to be clear about up front: this is a **Mitsubishi Electric** part. Not every brand with "Mitsubishi" on the box has it, and that trips people up. More on that below. ## The One-Minute Check: Kumo Cloud or MELCloud? The fastest check needs no tools and no disassembly. Do you control this unit today with Mitsubishi's **Kumo Cloud** app (North America) or **MELCloud** (Europe and most of the world)? If yes, your unit has a CN105 port. I'd bet hardware on it. Kumo Cloud and MELCloud compatibility lines up cleanly with the presence of the port, so a unit that runs on either app has the connector the controller needs. Move on to [the parts](https://serin-labs.com/parts.html). Never set up the factory app? That doesn't rule you out. Plenty of people skip it. It just means the next check is the one that matters. ![The model-number label on a Mitsubishi Electric indoor unit, reading MSZ-FH12NA, a split-system heat pump that carries the CN105 port](https://serin-labs.com/assets/content/800/mitsubishi-msz-fh12na-model-number-label.webp.848512f620ca.webp) ## No App? Check the Model Number Your model number sits on a label on the indoor unit, usually on the right side behind the front flap. Mitsubishi Electric indoor units start with prefixes like **MSZ, MSY, MFZ, MLZ, SLZ, SEZ, SVZ, PEAD, PVA, PKA, PCA, PLA,** or **PEFY**. Begins with one of those? It very likely has CN105, though a handful of older series and trims are the exception, which is why the checker asks for the full model number. For most series the regional tail, the `-NA` or `-VGK` or `-VG2`, doesn't change the answer; the same series carries the same port whether it shipped to Ohio or Oslo. A few North American families are the exception (MSZ-FE, MSZ-GE, SEZ-KD, and several P-Series trims), where the letters after the capacity decide. To match your exact model, the [full compatibility list](https://serin-labs.com/compatibility.html) breaks it down by wall-mount, floor, cassette, ducted, and light-commercial families. One curveball worth knowing: some **Trane** and **American Standard** ductless systems are rebranded Mitsubishi Electric hardware. Model numbers starting with **NAXWST, NTXWPH,** or **NTXWST** are Mitsubishi underneath, and they have the port too. ## Look Inside for the Connector Want to be certain before you order? Open it up and look. This is the only check that gives you a flat yes. ![The empty red CN105 serial port on a Mitsubishi indoor unit's control board, with the CN105 label and pins 1 and 5 marked in the silkscreen](https://serin-labs.com/assets/gallery/800/mitsubishi-cn105-port-control-board.webp.webp) Pop the front panel off the indoor unit and find the main control board, usually over on the right. CN105 is a small 5-pin connector, often red, sometimes white, with "CN105" printed on the board right beside it. See that label and you're done. The [wiring reference](https://serin-labs.com/wiring.html) shows exactly what it looks like so you know what you're hunting for. ![The red CN105 port on a Mitsubishi MSZ-GL06NA control board with the Serin CN105-to-Grove cable plugged in](https://serin-labs.com/assets/gallery/800/serin_cn105_mitsubishi_gl06na.jpg.webp) That's the control board of an **MSZ-GL06NA**, with the Serin cable already seated in CN105, the red connector low on the board. Before your hardware arrives, you're just confirming that empty connector is present and labeled. ## What Doesn't Have CN105 A few units will trip you up. Go in knowing them. **Mitsubishi Heavy Industries is not Mitsubishi Electric.** Different company, full stop. Models starting with **SRK, SRC,** or **SRF** are Heavy Industries. They use a different control protocol and have no CN105 connector. This is the mix-up I see more than any other, so check the brand carefully, not just the word "Mitsubishi." **Air-to-water heat pumps are a trap.** **Ecodan, Zubadan,** and **Geodan** units have a CN105 connector physically, but they speak a different serial dialect. The connector is there; this controller can't talk to it. Run an air-to-water system? This isn't your project. **Very old and a few oddball units.** Units from roughly pre-2006 may not have the port at all. And a handful of models, the **MSZ-HJ** series and some China-market units among them, have the CN105 solder pads on the board but no connector fitted. People have soldered one on. Most shouldn't have to. If that's your unit, the [compatibility page](https://serin-labs.com/compatibility.html) flags it. ## Multi-Zone? One Port Per Head Running several indoor heads off a single outdoor unit? Each indoor head has its own CN105 port, and each needs its own controller. The outdoor unit doesn't get one. So a three-head house means three boards, three cables, three ports, each confirmed the same way. Nothing changes about the check. You just do it three times. ## Still Not Sure? Ask the Community List If your model isn't obvious from the prefix and you can't get eyes on the board yet, the **SwiCago/HeatPump** project keeps the most thorough community-verified list out there, with hundreds of confirmed units from people worldwide. Anything on that list works here, because it's the same CN105 serial protocol underneath. [Browse the community compatibility list](https://github.com/SwiCago/HeatPump/wiki/Supported-models), or check your model against the [Serin compatibility page](https://serin-labs.com/compatibility.html), which folds in those reports along with manufacturer data. ## Once You've Confirmed It Found your port? The hard part is over. Here's the rest of the path: 1. Get the [board and cable](https://serin-labs.com/parts.html), one set per indoor unit. 2. [Flash the firmware](https://serin-labs.com/flash.html) from your browser. Two options, ESPHome for Home Assistant or the Apple Home compatible build for Apple households, and the [ESPHome vs Apple Home comparison](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) walks you through picking one. 3. Doing all this specifically to escape the factory app? The [Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) writeup covers the why and what you actually gain. That's the whole sequence, and it all hangs on that one connector. The overwhelming majority of Mitsubishi Electric indoor units have it, so odds are strongly in your favor. Confirm CN105, and local control is yours. ## Related - [Check your model — instant compatibility answer](https://serin-labs.com/compatibility.html) - [Get the hardware](https://serin-labs.com/parts.html) - [The best Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # The Best Kumo Cloud Alternative for Local Mitsubishi Control > A Kumo Cloud alternative for Mitsubishi mini-splits: local control over the CN105 port with open-source firmware. No account, no cloud, no fees. Source: https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html Last updated: 2026-10-24 July 5, 2026 · Serin Labs I stopped using Kumo Cloud the day it asked me to sign in before it would change the temperature. For a heat pump bolted to my own wall. The app works fine. It just needs a Mitsubishi account and Mitsubishi's servers for setup, remote access, and schedules, and half the time it couldn't reach every setting the heat pump exposes anyway. So I cut it out and went local. This is the **Kumo Cloud alternative** I landed on: a small **ESP32** board, the [Serin controller](https://serin-labs.com/parts.html), that clips onto the **CN105** serial port already sitting inside most Mitsubishi indoor units. It talks to the heat pump directly over serial and keeps every command on your own network. No account. No cloud. Nothing to pay each month. [![A small ESP32 controller installed inside a Mitsubishi mini-split indoor unit, wired to the CN105 port](https://serin-labs.com/assets/content/800/media/installation.jpg.d3034c4a45a9.webp)](https://serin-labs.com/assets/media/installation.jpg) **Quick Facts** - **What it is:** a pre-assembled ESP32 controller for Mitsubishi mini-splits - **Boards:** M5Stack NanoC6 or Atom S3 Lite - **Connects via:** the CN105 serial port; one controller per indoor unit - **Firmware:** ESPHome (Home Assistant) or Apple Home compatible, both free and open source - **Flashing:** browser-based over USB, no software to install - **Cloud / account:** none, ever - **Price:** ~$15–20 DIY, or pre-assembled ![The Kumo Cloud app dashboard showing several Mitsubishi mini-split zones, one heating and the rest powered off](https://serin-labs.com/assets/kumo-cloud-app-dashboard.webp) ## Why I Ditched Kumo Cloud Kumo Cloud does the basic job. Set a temperature, pick a mode, done. That's most of what anyone needs on a Tuesday. The catch is the cloud bolted to it. You need a Mitsubishi account. Setup and away-from-home control lean on Mitsubishi's servers, so your thermostat rides on someone else's uptime and someone else's roadmap. Your usage data leaves the house. And the day Mitsubishi changes the app, retires a feature, or drops an older Wi-Fi adapter, you go along with it. That's just what "cloud" means, and none of it is a scandal. But this is a machine I touch every day, in my own home, and I'd rather not have a middleman in the doorway. ## What the Local Alternative Actually Is The **Serin controller** is a pre-assembled ESP32 board with a cable that clips onto the CN105 port inside the indoor unit. Once it's in, your mini-split becomes a normal device on your Wi-Fi. Control it from your phone, a browser, or your smart home platform. All of it stays on your LAN. ![The pre-assembled Serin controller: a small ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) You flash it from your browser over USB. No soldering, nothing to compile. There are two firmware options, and you pick based on the smart home you already live in. Both are fully local. Both are free and open source. ## Kumo Cloud vs. Running It Locally | | Kumo Cloud | Serin controller (local) | | --- | --- | --- | | **Account required** | Yes, a Mitsubishi account | None | | **Internet needed** | Yes, for setup and away-from-home control | No, control runs on your LAN | | **Where your data goes** | Mitsubishi's cloud servers | Stays on your home network | | **Remote access** | Built in, through the cloud | Through Home Assistant or an Apple Home hub | | **Home Assistant** | Not officially supported | Native, via ESPHome | | **Apple Home + Siri** | No | Yes, with the Apple Home compatible firmware | | **Unit diagnostics** | Limited | Compressor frequency, error codes, and live logs in the web UI | | **Ongoing cost** | Free app, tied to the cloud | No fees, no cloud | | **How it connects** | Mitsubishi's Wi-Fi adapter | CN105 serial port | ## Will It Work on Your Unit? Everything hinges on one port. The Serin controller connects to the **CN105** serial port, built into most Mitsubishi Electric indoor units. Confirm yours has it before you buy anything, and the rest is easy. Quick proxy: if your unit runs on Kumo Cloud today, or **MELCloud** in Europe, that's a reliable sign it has CN105 and will work here. Still, take five minutes and [confirm your unit has CN105](https://serin-labs.com/compatibility.html) for certain. It's the difference between a clean swap and ordering hardware for a unit that can't use it. ## Two Ways to Run It Locally Which firmware you flash comes down to one thing: where you want to control the heat pump from. It's a big enough question that I wrote a [full ESPHome vs Apple Home comparison](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html). The short version: - **You run Home Assistant, or want to.** Flash **ESPHome**. Your mini-split shows up as a native climate entity, and every HA automation applies. Start with the [ESPHome setup guide](https://serin-labs.com/esphome/setup.html). - **You're an Apple household with no server ambitions.** Flash the **Apple Home compatible firmware**. It pairs straight into the Apple Home app, Siri works, and nothing sits in the middle on your Wi-Fi. Start with the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html). Both do everything Kumo Cloud did, and then some. One heads-up: the Apple Home firmware isn't MFi-certified, so the Home app asks you to tap "Add Anyway" when you pair it. That prompt is expected. The device works normally right after. ## What You Keep, and What You Gain Leaving Kumo Cloud keeps the conveniences. You just get them without the cloud tax. **Remote access still works.** With ESPHome it rides on however you already reach Home Assistant from outside the house. With the Apple Home firmware it goes through an Apple Home hub, an Apple TV or a HomePod. On your home Wi-Fi you need nothing extra. **Scheduling still works.** You lose Kumo Cloud's built-in scheduler and gain your platform's: Home Assistant automations, or Apple Home schedules and scenes. Both leave a basic app timer in the dust. **You finally see the unit.** The built-in web UI shows what the factory app never did: compressor frequency, outside air temperature, runtime, error codes, live logs. Phone off, hub unplugged, doesn't matter. Open the controller's IP in a browser and drive the heat pump directly. ![The controller's built-in web interface showing thermostat, fan, and vane controls in a browser with no app or cloud](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) ![An inexpensive BLE thermometer on a coffee table at seating height, with a Mitsubishi mini-split on the wall behind it](https://serin-labs.com/assets/content/800/ble-thermometer-mini-split-remote-sensor.webp.9f2019728007.webp) **A real room sensor, if you want one.** A mini-split reads temperature up at the indoor unit, near the ceiling, where the air runs a few degrees warmer than where you sit. Both firmwares support an optional remote temperature sensor at seating height instead: any [Home Assistant sensor](https://serin-labs.com/esphome/generate-yaml.html) on the ESPHome side, or an inexpensive [BLE thermometer](https://serin-labs.com/homekit/features.html) on the Apple Home side. It was the single biggest comfort upgrade I made. Kumo Cloud has no equivalent. ## Is It a Drop-In Replacement? No, and I'd rather be straight about it. Kumo Cloud is install-an-app easy. Going local asks a little more: order the [board and cable](https://serin-labs.com/parts.html), pop the indoor unit's cover, clip the cable onto CN105, then [flash the firmware](https://serin-labs.com/flash.html) from your browser and join it to Wi-Fi. Call it a coffee's worth of setup, not thirty seconds. What you get back is a heat pump that answers to you and nobody else. No account. No server outage that takes your schedules and remote access with it. No quiet worry about what happens to the app three years from now. Once it's set up, there's nothing to maintain and nothing to renew. And if you catch the Home Assistant bug later, you can reflash from Apple Home to ESPHome, or the other way, any time. Same browser tool, no rewiring. I put the Apple Home firmware on my parents' units for exactly that reason. They already had iPhones. Scan a QR code, walk away. ## What About MELCloud? Outside North America your app is **MELCloud**, not Kumo Cloud. Same story. Same manufacturer, same account-and-cloud model, same dependency. The Serin controller doesn't care which region your unit shipped to. It talks to CN105 the same way regardless. Everything here applies whether you're walking away from Kumo Cloud or MELCloud. If your unit runs on either one today, it has the port you need. ## Who Should Make the Switch - **You run Home Assistant, or plan to.** Flash **ESPHome** and skip the cloud entirely. - **You're an Apple household with no server.** Flash the **Apple Home compatible firmware**. Siri, scenes, done. - **You just want out of the account-and-cloud model.** Either firmware gets you there. Both are local, both are free. The path is short: 1. [Check that your unit has a CN105 port](https://serin-labs.com/compatibility.html). If it runs on Kumo Cloud or MELCloud today, it almost certainly does. 2. Get the [board and cable](https://serin-labs.com/parts.html), one per indoor unit. 3. [Flash the firmware](https://serin-labs.com/flash.html) from your browser. ESPHome for Home Assistant, or the Apple Home compatible build for Apple households. Same heat pump, same comfort, without the account or the cloud sitting in between. ## Related - [Check your unit for a CN105 port](https://serin-labs.com/compatibility.html) - [Flash the firmware](https://serin-labs.com/flash.html) - [ESPHome vs Apple Home firmware](https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html) --- # ESPHome vs HomeKit (Apple Home) for a Mitsubishi Mini-Split > ESPHome vs HomeKit for a Mitsubishi mini-split: compare local control, Apple Home vs Home Assistant, remote access, and setup to pick the right firmware. Source: https://serin-labs.com/blog/esphome-vs-homekit-mitsubishi-mini-split.html Last updated: 2026-10-24 July 5, 2026 · Serin Labs Two firmwares. Same board. Same port. The only real question is which app you want to control your heat pump from. I went local because the factory app kept letting me down. It wasn't reliable, it couldn't reach every setting on the unit, and I was already living in the Apple Home app and didn't want another login for one more device. Cutting out the cloud fixed all three. The next decision was which firmware to flash, and that's the one this post is about. If you're weighing **ESPHome vs HomeKit** for a Mitsubishi mini-split, here's the reassuring part: both are free, open source, run on the same **ESP32** hardware, plug into the same **CN105** port, and keep everything local. No Kumo Cloud, no MELCloud, no accounts. The hardware doesn't care which one you pick, and you can [reflash](https://serin-labs.com/flash.html) from one to the other later. There's no wrong answer here. Pick the one that fits your house. **Quick Facts** - **Cost:** both firmwares are free and open source - **Hardware:** M5Stack **NanoC6** or **Atom S3 Lite** (both ESP32); one board and one CN105 cable per indoor unit - **Connection:** the **CN105** serial port on most Mitsubishi Electric indoor units - **ESPHome:** native Home Assistant climate entity, deepest automations, remote temperature from any HA sensor - **Apple Home firmware:** native HAP pairing, Siri, BLE room sensors; an Apple Home Hub covers remote access and automations - **Flashing:** browser-based over USB (Web Serial), and you can switch either direction anytime [![The Serin controller installed inside a Mitsubishi mini-split indoor unit, connected to the CN105 port](https://serin-labs.com/assets/content/800/media/installation.jpg.d3034c4a45a9.webp)](https://serin-labs.com/assets/media/installation.jpg) The decision comes down to one question: **where do you want to control your heat pump from?** - **You run Home Assistant, or plan to.** Flash **ESPHome**. Your mini-split becomes a native climate entity with the full weight of HA automations behind it. - **You're an Apple household with no Home Assistant** and no desire to run a server. Flash the **Apple Home compatible firmware**. It pairs directly with Apple Home, and Siri works out of the box. That's the short version. The rest of this post is what actually trips people up: remote access, temperature sensors, and how automations really work. A few of those details matter more than the feature checklists let on. ## What's the Same on Both Before we compare, let's be honest about how much is identical. Most of the marketing-sounding stuff applies to both firmwares equally, so it shouldn't sway your choice at all. **Both are fully local.** Commands travel from your phone or hub to the ESP32 over your own network, then from the ESP32 to the heat pump over the CN105 serial connection. Neither firmware phones a cloud to operate. Internet goes out? Your thermostat keeps working. **Both run on the same hardware.** The two supported boards, the M5Stack NanoC6 and the Atom S3 Lite, work with either firmware. The [parts list](https://serin-labs.com/parts.html) is the same no matter which you choose. One board and one cable per indoor unit. ![The pre-assembled Serin controller: an M5Stack ESP32 board with the CN105-to-Grove cable attached](https://serin-labs.com/assets/content/800/serin_cn105_controller.jpg.cf751b9c14ef.webp) **Both flash from your browser.** The [flash page](https://serin-labs.com/flash.html) installs either firmware over USB using Web Serial. Nothing to install, nothing compiles on your machine. (ESPHome does compile a personalized config later, but that happens inside Home Assistant.) **Both include a web interface.** Even if your smart home platform is down, open the device's IP in a browser and control mode, temperature, fan, and vanes directly. ![The built-in web UI showing thermostat, fan, and vane controls in a browser](https://serin-labs.com/assets/content/856/media/webui.png.b5ce0f254df4.webp) **Both can read a room-level thermometer.** This is the upgrade I'd tell anyone to do first. A mini-split measures temperature at the indoor unit, mounted high on the wall where the air sits a few degrees warmer than where you actually are. ESPHome pulls the reading from any Home Assistant sensor. The Apple Home compatible firmware listens for BLE thermometers directly. Different mechanism, same payoff, and letting the heat pump regulate off a sensor at seating height was the single biggest comfort improvement I made. **Both need a compatible unit.** The controller talks to the CN105 port on most Mitsubishi Electric indoor units. Haven't confirmed yours has one? Start with the [compatibility guide](https://serin-labs.com/compatibility.html). Five minutes, and it saves you from buying hardware for a unit that can't use it. ## Quick Comparison | | ESPHome | Apple Home compatible | | --- | --- | --- | | **Best for** | Home Assistant users | Apple households without HA | | **Control app** | Home Assistant | Apple Home + Siri | | **Requires a server/hub** | Home Assistant instance | Apple Home Hub (Apple TV or HomePod) for remote access and automations | | **Cloud dependency** | None | None | | **Remote access** | However you access HA remotely | Through your Apple Home Hub | | **Automations** | Home Assistant (very deep) | Apple Home app | | **Remote temperature sensor** | Any Home Assistant sensor, via the · [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) | BLE thermometers (Govee, Xiaomi PVVX, BTHome v2), auto-detected | | **Customization** | High; regenerate the YAML config anytime | Settings exposed in the web UI | | **Built-in web UI** | Yes | Yes, with diagnostics and live logs | | **Setup steps** | Flash → WiFi → adopt in ESPHome dashboard → HA discovers it | Flash → WiFi → scan a QR code in the Home app | | **Switching later** | Reflash over USB | Reflash over USB | ## Remote Access: The Part That Surprises People "Local control" often gets misread as "no remote access." Wrong. Both firmwares let you control the mini-split from outside the house. They just get there differently. **With ESPHome**, remote access is whatever remote access you already have for Home Assistant. If you can open your HA dashboard from your desk at work, you can nudge the heat pump from there too. The controller itself never needs to face the internet. **With the Apple Home compatible firmware**, remote access runs through Apple's architecture. You need an **Apple Home Hub**, an Apple TV or a HomePod, on your home network. The hub relays commands from your iPhone when you're away, and it's also what runs automations. On your home Wi-Fi you can control the unit with no hub at all; the hub only matters for away-from-home control and automations. No Apple TV or HomePod, and no plan to buy one? That's the single biggest reason to lean ESPHome instead. One honesty note. This firmware is **not MFi-certified**. It implements the HomeKit Accessory Protocol independently, the way plenty of open-source projects do. So when you add it in the Home app, Apple flags it as an **uncertified accessory** and makes you tap **Add Anyway** before it pairs. That prompt is expected, not a warning sign. It works normally afterward, and it doesn't pretend to be a certified Apple accessory. ## The ESPHome Path The ESPHome firmware is built on echavet's open-source [MitsubishiCN105ESPHome](https://github.com/echavet/MitsubishiCN105ESPHome) component, packaged as a browser-flashable build in Serin's [serin-cn105](https://github.com/Serin-Labs/serin-cn105) repo. The build you flash from the browser is one fixed configuration, identical on every unit: climate control, vertical and horizontal vane control, a web server UI, and OTA updates. The real power shows up after you adopt the device in the ESPHome dashboard inside Home Assistant. From there, the [YAML generator](https://serin-labs.com/esphome/generate-yaml.html) lets you build a config matched to your actual unit and push it over Wi-Fi, no USB needed after the first flash. That's how you add the things the fixed build leaves out: - A **remote temperature sensor** fed from any sensor Home Assistant already knows about (the room-level upgrade from earlier). - **Dual setpoint** support and extra **diagnostics** like compressor frequency and outside air temperature. - Removing vane controls your unit doesn't have, so you're not staring at buttons that do nothing. Once it's in Home Assistant, the mini-split is a standard climate entity, and every HA trick applies. Presence-based setbacks. Syncing multiple heads. Dashboards, history graphs, the lot. Got several indoor units? Each gets its own controller (every head has its own CN105 port), and they all land in one ESPHome dashboard. The trade-off is the dependency. This path assumes you run Home Assistant and are comfortable with the adopt-and-install flow. It's well-trodden, and the [ESPHome setup guide](https://serin-labs.com/esphome/setup.html) walks through it, but it's more moving parts than scanning a QR code. ## The Apple Home Path The Apple Home compatible firmware is free and open source ( [full source on GitHub](https://github.com/akifbayram/mitsubishi-cn105-homekit)), and it speaks HAP, the HomeKit Accessory Protocol, natively. No bridge, no Home Assistant in the middle. The ESP32 itself is the accessory. Setup is short: after flashing, the device broadcasts a Wi-Fi hotspot, you join it and enter your home network credentials, then scan a QR code with your iPhone. The Home app shows the uncertified-accessory prompt from earlier; tap **Add Anyway** and it pairs. The full flow is in the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html). In the Home app you get the standard thermostat experience: modes (heat, cool, auto, dry, fan), temperature in 0.5°C steps, fan speed, vane control, plus Siri. Apple Home automations (schedules, scenes, "set the bedroom to 20° when the last person leaves") run through your Home Hub. Starting from zero — no board yet, not even sure your unit has the port? [Adding a Mitsubishi mini-split to Apple Home](https://serin-labs.com/blog/mitsubishi-mini-split-apple-home-homekit-siri.html) walks the whole path, hardware to Siri. [Watch demonstration](https://serin-labs.com/assets/media/homekit.mp4) ```
Apple Home thermostat control
``` [Watch demonstration](https://serin-labs.com/assets/media/hk_wifi_connect.mp4) ```
First-boot Wi-Fi setup
``` Where this firmware punches above its weight is the built-in web UI. It surfaces things Apple's Home app has no concept of: compressor frequency, outside temperature, runtime hours, error codes, live log streaming, and device settings. So even with zero Apple devices in the house, the controller is fully usable from a browser. Two features earn a callout: - **BLE remote temperature sensors.** Instead of an HA sensor, this firmware listens for Bluetooth Low Energy thermometers directly. Govee, Xiaomi (with PVVX firmware), and BTHome v2 sensors are auto-detected from their advertisements, no pairing required. Drop an inexpensive BLE thermometer at seating height and the heat pump regulates off that. If the sensor drops out, the firmware falls back to the unit's internal thermistor. - **Self-maintaining updates.** The web UI has a one-tap update check that downloads the latest release, verifies its checksum, and rolls back automatically if the new firmware fails validation. There's also a crash-loop safe mode that keeps Wi-Fi and the web UI alive for recovery if something goes badly wrong. The trade-off mirrors ESPHome's. Automations are limited to what the Apple Home app can express, which is a much smaller vocabulary than Home Assistant's. Personally, I run Home Assistant at home and love it. But when I put a controller on my parents' mini-splits, there was no chance I was standing up a Home Assistant server in their house and teaching them to drive it. They already have iPhones and know the Home app. So I flashed the Apple Home compatible firmware, scanned the QR code, and walked away. That's the case this firmware is built for: someone who wants local control without becoming the family sysadmin. ## What If You Use Both Home Assistant *and* Apple Home? Flash ESPHome. Home Assistant can expose its climate entities to Apple Home through HA's own HomeKit bridge integration, so you keep HA's automation depth and still get the tile in the Home app plus Siri control. The reverse (the Apple Home firmware into HA) works via HA's HomeKit controller integration, but you give up the ESPHome-side customization for no real gain. When HA is in the picture, ESPHome is the strictly more flexible starting point. ## Switching Later Is Cheap This isn't a life sentence. Both firmwares flash from the same [browser tool](https://serin-labs.com/flash.html), so switching means plugging the board into USB and flashing the other image. A few minutes, tops. You'll redo the platform-side setup afterward (adopt in ESPHome, or pair in the Home app), and it's polite to remove the old accessory or entity first, but nothing about the hardware or wiring changes. Starting on the Apple Home compatible firmware for the fast setup, then reflashing to ESPHome once you fall down the Home Assistant rabbit hole, is a perfectly sensible order. The board doesn't mind. ## The Bottom Line - **Running Home Assistant?** Flash ESPHome. Native climate entity, HA-grade automations, remote temperature from any HA sensor, deep customization through the YAML generator. Follow the [ESPHome setup guide](https://serin-labs.com/esphome/setup.html). - **Apple household, no HA, no server ambitions?** Flash the Apple Home compatible firmware. Direct pairing (past the one-time uncertified-accessory prompt), Siri, BLE room sensors, and a genuinely useful web UI. Just make sure you have, or will get, an Apple TV or HomePod for remote access and automations. Follow the [Apple Home setup guide](https://serin-labs.com/homekit/setup.html). - **Both ecosystems?** ESPHome, bridged into Apple Home through Home Assistant. - **Neither yet?** Either one runs from its web UI alone, and you can adopt a platform later. Whichever you pick, the path is the same. Confirm your unit has a [CN105 port](https://serin-labs.com/compatibility.html), grab the [board and cable](https://serin-labs.com/parts.html), and [flash the firmware](https://serin-labs.com/flash.html) from your browser. Still deciding whether to leave the factory app behind at all? That's the [Kumo Cloud alternative](https://serin-labs.com/blog/kumo-cloud-alternative-local-mitsubishi-control.html) question, and I wrote that one up separately. The flash tool installs either firmware, and you can change your mind any time. ## Related - [Add your mini-split to Apple Home, step by step](https://serin-labs.com/blog/mitsubishi-mini-split-apple-home-homekit-siri.html) - [ESPHome setup guide](https://serin-labs.com/esphome/setup.html) - [Apple Home setup guide](https://serin-labs.com/homekit/setup.html) - [Flash the firmware](https://serin-labs.com/flash.html) Next step ## Check your unit first Type your indoor unit's model number for a verdict in under a minute. If it fits, the firmware flashes in the browser in about two minutes. [Check your model](https://serin-labs.com/compatibility.html) [See the Serin Controller](https://serin-labs.com/controller.html)