Deze guide legt uit hoe je Mitsubishi airco Home Assistant ESPHome lokale besturing instelt via een ESP32-S3, zonder cloud en zonder abonnement. Hij koppelt snel, de app ziet er verzorgd uit en de integratie verloopt soepel. Tegelijkertijd stuurt hij elke inschakelgebeurtenis, elke ingestelde temperatuur en elk schema dat je aanmaakt via Mitsubishi’s cloudservers in een ander rechtsgebied. Ergens in een datacenter weet men dat jij om 23:00 uur je airco aanzette. Men weet je slaaptemperatuur. Men weet wanneer je naar je werk vertrok.
Dit is geen hypothetisch privacyprobleem. Dit is het gedocumenteerde gedrag van het product.
Deze guide elimineert dat volledig. Je vervangt de cloudafhankelijkheid door een lokale ESP32-S3-controller die rechtstreeks via de SPI-bus met je airconditioner communiceert. Besturing vindt plaats op je eigen LAN, via Home Assistant, zonder enige betrokkenheid van de fabrikant. Reactietijden onder de seconde. Geen abonnement. Geen risico op serveruitval.
We behandelen ook een specifiek probleem dat steeds terugkomt in Reddit-threads: de meeste berichten verwijzen naar oudere ESPHome-bibliotheken voor MHI-units die gericht zijn op ESP8266 en het Arduino-framework. Op ESP32-S3-hardware heb je de Astute4185-fork nodig, die specifiek gebouwd is voor het ESP-IDF-framework en op deze architectuur aanzienlijk stabieler is. Deze guide gebruikt uitsluitend die fork.
Vereisten & hardware
Softwarevereisten
- Home Assistant (een recente versie) actief en bereikbaar op je lokale netwerk. Als je dat eerst nog moet opzetten, zie dan onze guide over Home Assistant OS installeren op Proxmox.
- ESPHome-add-on geïnstalleerd via de Home Assistant Add-on Store.
- Chrome of Edge als browser. Deze zijn vereist voor de WebSerial API op
web.esphome.io. Firefox werkt niet. - Een USB-C-kabel die data ondersteunt. Een oplaadkabel zonder datalijnen toont geen COM-poort.
Hardwarevergelijking: welke controller koop je?
| Controller | Prijs | Chip | Opmerkingen |
|---|---|---|---|
| Nodo-shop ESPAC | ~€25 | ESP8266 | MHI-specifiek. Juiste kabel inbegrepen. Eenvoudigere installatie. Beperkte voorraad. ESP8266 is een echte beperking: minder RAM, alleen Arduino-framework, geen ESP-IDF-ondersteuning. |
| Tinytronics Universal AC Controller | ~€15 | ESP32-S3 | De aanbevolen keuze voor deze guide. Ingebouwde bidirectionele level-shifter (5V naar 3,3V) en step-down converter (12V ingang). Vereist handmatig pinout-onderzoek en solderen. |
| Officiële WF-RAC-module | ~€60+ | Propriëtair | Plug-and-play. Vereist de Smart M-Air-app en een Mitsubishi-cloudaccount. Geen lokale besturing. Behandeld in Methode 1 hieronder. |
Deze guide gebruikt de Tinytronics Universal voor het volledige lokale besturingspad. Het is betere hardware voor een lagere prijs. De keerzijde is dat je soldeervaardigheid nodig hebt en nauwkeurig te werk moet gaan bij de pinout.
Aanvullende benodigdheden (Tinytronics-route)
- JST-XH 5-pins (female) naar DuPont (female) kabel. Let op: de standaard kabelkleuren komen niet overeen met de MHI CNS-pinout. Je wijst ze handmatig opnieuw toe.
- 2,54mm-raster 90-graden mannelijke pinheaders. Hiermee voorkom je dat je draden rechtstreeks op de boardpads soldeert, wat toekomstig onderhoud een stuk eenvoudiger maakt.
- Soldeerbout en soldeertin.
- Multimeter met continuïteits- of weerstandsmeting. Dit is verplicht, niet optioneel.
- Fijn Stanley-mes of scalpel voor het verwijderen van soldeerbruggen.
Methode 1: de snelle start (beginnersvriendelijk, cloudafhankelijk)
Voor wie is dit bedoeld
Deze methode is voor gebruikers die plug-and-play willen zonder te solderen. Je accepteert de nadelen: hogere kosten (~€60+), volledige cloudafhankelijkheid en geen lokale besturing. Als privacy je voornaamste zorg is, sla je direct door naar Methode 2.
Home Assistant-integratie is mogelijk via de door de community onderhouden mitsubishi_wf_rac HACS-integratie, maar wees je bewust van wat dat betekent: het is een cloud-gepolde integratie. Je commando’s reizen nog steeds naar Mitsubishi’s servers en terug. Het is niet lokaal.
Stap 1: WF-RAC-module aanschaffen en installeren
- Bestel de Mitsubishi WF-RAC-module. Controleer de compatibiliteit met jouw specifieke SRK-serie unit vóór aankoop.
- Schakel de stroom naar de binnenunit uit bij de groepenkast. Wacht 30 seconden.
- Verwijder de behuizing van de binnenunit en zoek de CNS-poort op de printplaat. Dit is een klein wit connectortje, doorgaans 5-pins.
- Steek de WF-RAC-module in. De connector is gepolariseerd en past maar op één manier.
- Zet de stroom terug aan bij de groepenkast.
Stap 2: configureren via de Smart M-Air-app
- Download de Smart M-Air-app op iOS of Android.
- Maak een Mitsubishi-cloudaccount aan.
- Volg de koppelwizard in de app om de module met je wifi-netwerk te verbinden.
Alle commando’s lopen vanaf dit moment via de cloudinfrastructuur van Mitsubishi. Latentie, privacy en beschikbaarheid vallen buiten jouw controle.
Stap 3: optionele Home Assistant-integratie
- Installeer HACS in Home Assistant als dat nog niet aanwezig is.
- Zoek naar
mitsubishi_wf_racin de HACS-integratiewinkel. - Voeg de integratie toe via Instellingen > Apparaten & diensten.
Dit geeft je een Home Assistant-klimaatentiteit, maar het datapad is nog steeds: Home Assistant > Mitsubishi-cloud > jouw airconditioner. Je hebt de cloud niet geëlimineerd. Je hebt er een mooiere interface bovenop gezet.
Methode 2: de pro-opstelling (ESP32-S3 + ESPHome, volledige lokale besturing)
Dit is de methode die er toe doet. Vijf stappen van ongeopende hardware naar een volledig lokale klimaatentiteit in Home Assistant met reactietijden onder de seconde.
Stap 1: fysieke voorbereiding – solderen en meten
De Tinytronics-controller heeft vijf soldeerpadjes waarmee je aan de slag gaat: VIN, 21, 48, 34 en GND.
- Soldeer 90-graden mannelijke pinheaders op alle vijf padjes. De 90-graden hoek is belangrijk. Hierdoor kan de connector vlak tegen het board liggen binnenin de airconditioner, zonder dat de verbindingen onder spanning komen te staan.
- Kritieke controle vóór je verdergaat: Zet je multimeter op continuïteits- of weerstandsmeting. Meet tussen pin
21en pin48. Je moet nul continuïteit meten. Deze twee padjes liggen zeer dicht bij elkaar. Een onzichtbare soldeerbrug ertussen veroorzaakt aanhoudende communicatiefouten die eruitzien als een softwareprobleem, maar volledig fysiek van aard zijn. Als je toch continuïteit meet, gebruik dan je scalpel om de ruimte tussen de padjes vrij te maken en meet opnieuw.
Wijs nu je JST-XH naar DuPont-kabel toe aan de MHI CNS-pinout. De MHI CNS-poort op SRK-serie units (2018 en nieuwer) is een 5-pins connector. De standaard kabelkleuren komen niet overeen, dus volg deze toewijzing nauwkeurig:
| CNS-pin | Kabelkleur (standaardkabel) | ESP32-pad | Functie |
|---|---|---|---|
| Pin 1 | Zwart | GND | Massa |
| Pin 2 | Rood | 21 | MISO |
| Pin 3 | Wit | 48 | MOSI |
| Pin 4 | Geel | 34 | SCK / klok |
| Pin 5 | Oranje | VIN | 12V voeding |
Controleer of de zwarte draad overeenkomt met Pin 1 op de CNS-connector van de airconditioner. Op de meeste SRK-serie units bevindt Pin 1 zich aan de rechterkant van de connector wanneer je er van voren naar kijkt. Gebruik bij twijfel je multimeter om massacontinuïteit te bevestigen vóórdat je spanning aanlegt.
Stap 2: het ESPHome-apparaat aanmaken in Home Assistant
- Open Home Assistant en ga naar ESPHome in de zijbalk.
- Klik op + NIEUW APPARAAT rechtsonder.
- Klik op Doorgaan en geef je apparaat een naam. Iets als
Airco Woonkamerwerkt prima. Klik op Volgende. - Voer je wifi-SSID en wachtwoord in. Klik op Volgende. Let op: het SSID is hoofdlettergevoelig.
- Selecteer het platform: kies ESP32-S3. Dit moet overeenkomen met de chip op je Tinytronics-controller.
- Wanneer je het scherm “Configuratie aangemaakt” ziet, klik je op Overslaan. Je moet de YAML bewerken vóórdat je iets flasht.
Stap 3: de YAML-configuratie toevoegen
- Zoek je nieuwe apparaat in het ESPHome-dashboard en klik op BEWERKEN.
- Zoek het
esp32:-blok in de gegenereerde YAML. Controleer of het framework is ingesteld opesp-idf. Als erarduinostaat, vervang dat dan. DeAstute4185-bibliotheek vereist ESP-IDF en compileert niet op het Arduino-framework.
Je esp32:-blok moet er precies zo uitzien:
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idfVoeg nu het volgende toe aan het einde van je YAML-bestand. Pas de inspringing niet aan:
external_components:
- source: github://Astute4185/MHI-AC-Ctrl-ESPHome_ESP-IDF@master
components: [MhiAcCtrl]
MhiAcCtrl:
frame_size: 20 # 20 = units circa 2018 | 33 = nieuwere units
sck_pin: 34
miso_pin: 21
mosi_pin: 48
climate:
- platform: MhiAcCtrl
name: "MHI Air Conditioner"Klik op OPSLAAN.
Een toelichting op de bibliotheekskeuze: de Astute4185-fork is specifiek geschreven voor het ESP-IDF-framework op ESP32-S3-architectuur. Hij draait aanzienlijk stabieler dan het originele project op deze hardware. Dit is de juiste bibliotheek voor deze hardwarecombinatie.
Stap 4: eerste flash via USB
De ESP32-S3 heeft nog geen firmware, dus de eerste flash moet via een fysieke USB-verbinding plaatsvinden. Daarna kunnen alle toekomstige updates draadloos via OTA worden ingespeeld.
- Klik in het ESPHome-dashboard op het driepuntsmenu (⋮) bij je apparaat en kies Installeren.
- Kies Handmatig downloaden, daarna Factory format.
- Wacht tot de compilatie klaar is en het
.bin-bestand is gedownload. Dit duurt bij de eerste compilatie doorgaans 2 tot 5 minuten. - Sluit de Tinytronics-controller via USB-C aan op je laptop. Controleer of de kabel data ondersteunt.
- Open Chrome of Edge en ga naar
web.esphome.io. - Zet de ESP32-S3 in bootloadermodus met deze exacte volgorde: houd de BOOT-knop ingedrukt, druk kort op de RESET-knop en laat die weer los, laat daarna BOOT los.
- Klik op Connect in de browser, selecteer de juiste COM-poort uit de lijst, klik op Install en selecteer het gedownloade
.bin-bestand. - Wacht op de bevestiging dat de flash geslaagd is voordat je de kabel loskoppelt.
Stap 5: fysieke installatie in de airconditioner
- Schakel de stroom uit bij de groepenkast. Gebruik niet alleen de afstandsbediening of de wandschakelaar. Zet de netstroom echt uit. Wacht minimaal 30 seconden.
- Verwijder de behuizing van de binnenunit. Zoek de witte CNS-connector op de printplaat. Dit is een klein 5-pins JST-achtig connectortje.
- Steek je JST-XH-kabel in de CNS-connector. Controleer of de zwarte draad (Pin 1) aan de juiste kant zit voordat je druk uitoefent.
- Leg de kabel en controller zo dat geen van beide bekneld raakt door de behuizing.
- Zet de stroom terug aan bij de groepenkast.
- Wacht ongeveer 60 seconden. Je apparaat zou als Online moeten verschijnen in het ESPHome-dashboard.
- Ga in Home Assistant naar Instellingen > Apparaten & diensten. Het ESPHome-apparaat zou daar moeten verschijnen. Voeg het toe om de integratie te voltooien.
Configuratie en validatie
De ESPHome-logs lezen: hoe een gezonde verbinding eruitziet
Klik in het ESPHome-dashboard op LOGS bij je apparaat. Een gezonde verbinding produceert uitvoer als deze:
[I] ok20=1500 hdr6d=842 rx=0 tx=0Dit vertelt elke waarde je:
ok20loopt op: pakketjes worden zonder fouten verwerkt. Dit is je voornaamste gezondheidsindicator.hdr6dofhdr6cloopt op: geldige frameheaders worden ontvangen van de airconditioner.rx=0of zeer laag: geen ontvangstfouten op de SPI-bus.
Als ok20 oploopt en rx dicht bij nul blijft, is je hardwareverbinding in orde.
Functionele validatiechecklist
- 90-graden headers gesoldeerd. Continuïteitscontrole tussen pins 21 en 48 geslaagd (nul continuïteit).
- ESP32-S3 via USB geflasht met factory format
.bin-bestand. - Apparaat verschijnt als Online in ESPHome binnen 60 seconden na het herstellen van de stroom.
-
ok20-teller loopt op in de logs. - Temperatuurwijziging in Home Assistant is binnen 5 seconden zichtbaar in de logs.
-
Huidige temperatuur-sensor toont een waarde in de Home Assistant-klimaatentiteit.
De eerlijke waarheid: eigenaardigheden en echte beperkingen
Deze opstelling werkt goed. Hij heeft ook echte eigenaardigheden die je moet kennen voordat je een avond besteedt aan het debuggen van iets met een simpele verklaring.
SPI-busgevoeligheid op ESP32-S3
SPI-communicatie op de ESP32-S3 is gevoelig voor ruis. Een soldeerverbinding die er visueel goed uitziet, kan onder belasting intermitterende fouten produceren. Het symptoom is een aanhoudende waarde van rx=29 in de logs. Dit is geen softwareprobleem. Het is een marginale elektrische verbinding. De oplossing is je soldeerverbindingen opnieuw insolderen en de continuïteit opnieuw controleren. Besteed geen tijd aan het aanpassen van YAML als het probleem fysiek is.
De MHI interne busreset-vereiste
Na een mislukte verbindingspoging kan de interne communicatiebus van de MHI vastlopen in een toestand die nieuwe verbindingen verhindert. Een softwarereboot van de ESP32 lost dit niet op. Je moet de netstroom bij de groepenkast minimaal 30 seconden onderbreken. Dit is hardwaregedrag van de Mitsubishi SRK-serie printplaat. Het is geen ESPHome-bug en het is niet iets wat je in software kunt omzeilen.
Onduidelijkheid over framegrootte
De parameter frame_size accepteert 20 of 33. Er bestaat geen definitieve publieke lijst die specifieke unitmodelnummers koppelt aan de juiste waarde. De verkeerde waarde veroorzaakt grillig gedrag: de airco kan aangaan als je hem uitzet, of moduswijzigingen volledig negeren. Begin met frame_size: 20 voor units van rond 2018. Als het gedrag grillig is, schakel dan over naar 33 en voer een volledige stroomcyclus uit. Trial-and-error is momenteel de enige betrouwbare methode.
Tinytronics vs. ESPAC: de echte afweging
De ESPAC van Nodo-shop is voor MHI specifiek genomen echt eenvoudiger. De juiste kabel is inbegrepen, de pinout is gedocumenteerd voor MHI en er is geen solderen vereist buiten de basisassemblage. De beperking is echter reëel: de ESP8266-chip heeft minder RAM, draait alleen het Arduino-framework en ondersteunt geen ESP-IDF. Voor langetermijnstabiliteit en toekomstige ESPHome-functionaliteit is de ESP32-S3 op de Tinytronics een betere basis. De prijs daarvoor is soldeervaardigheid. Een koude soldeerverbinding op dit board kost je uren aan debuggen.
Veelvoorkomende fouten oplossen
Fout: t_low of t_high loopt op, ok blijft op 0
Oorzaak: De ESP32 ontvangt geen SCK-kloksignaal van de airconditioner. Zonder klok is geen SPI-communicatie mogelijk.
Oplossing: Controleer de DuPont-connector op pin 34. Verifieer dat hij goed contact maakt met CNS Pin 4 (de gele draad). Verwijder de connector en steek hem opnieuw in. Controleer op een verbogen pin in de header.
Logpatroon dat op dit probleem wijst:
[I] t_low=847 t_high=0 ok=0 rx=0Fout: airconditioner gedraagt zich grillig – gaat aan als je hem uitzet
Oorzaak: De waarde van frame_size in je YAML komt niet overeen met het communicatieprotocol van jouw specifieke airconditionergeneratie.
Oplossing: Bewerk je YAML en wijzig de framegrootte:
# Verander dit:
frame_size: 20
# Naar dit:
frame_size: 33Sla het bestand op, start een OTA-update vanuit het ESPHome-dashboard en voer daarna een volledige netstroom-cyclus uit op de airconditioner. Beide stappen zijn vereist.
Fout: soldeerbrug tussen pins 21 en 48
Oorzaak: Een kortsluiting tussen de MISO-lijn (pin 21) en de MOSI-lijn (pin 48) op het ESP32-board. De twee padjes liggen naast elkaar en een haartje soldeertin ertussen is al genoeg om dit te veroorzaken.
Oplossing: Koppel onmiddellijk de stroom los van zowel de ESP32 als de airconditioner. Inspecteer de soldeerpadjes tussen pins 21 en 48 onder vergroting of fel licht. Gebruik je scalpel om eventueel materiaal dat de ruimte overbrugt te verwijderen. Hertest met je multimeter in continuïteitsmodus. Sluit pas opnieuw aan op de netstroom als de continuïteitstest bevestigt dat er geen verbinding meer is tussen die twee pins.
Fout: apparaat wordt succesvol geflasht maar verschijnt nooit als Online in ESPHome
- Controleer je wifi-inloggegevens in de YAML. Het SSID is hoofdlettergevoelig. Één verkeerde hoofdletter voorkomt verbinding zonder foutmelding.
- Bevestig dat de ESP32-S3 en je Home Assistant-instantie op hetzelfde netwerksubnet zitten. Een gastnetwerk of VLAN-scheiding blokkeert mDNS-detectie.
- Controleer de ESPHome-add-onlogs in Home Assistant op mDNS-detectiefouten.
- Probeer een OTA-update te starten vanuit het ESPHome-dashboard. Als het apparaat bereikbaar is op het netwerk, bevestigt dit de connectiviteit, ook als mDNS niet correct oplost.
Automatiseringsideeën om verder op te bouwen
Je airconditioner is nu een volledig lokale Home Assistant-klimaatentiteit. Hier wordt het pas echt nuttig.
Koelen op zonne-overproductie
Activeer de koelmodus automatisch wanneer je zonne-omvormer overproductie rapporteert boven een drempelwaarde. Zo gebruik je energie die anders tegen een laag terugleveringstarief geëxporteerd zou worden om je woning voor te koelen.
automation:
- alias: "Solar Overproduction - Start AC Cooling"
trigger:
- platform: numeric_state
entity_id: sensor.solar_inverter_excess_power
above: 1500
for:
minutes: 5
action:
- service: climate.set_hvac_mode
target:
entity_id: climate.mhi_air_conditioner
data:
hvac_mode: cool
- service: climate.set_temperature
target:
entity_id: climate.mhi_air_conditioner
data:
temperature: 22Raamsensor-vergrendeling
Koppel een Zigbee raam- of deursensor aan de airco. Wanneer het raam opengaat, gaat de airco uit. Wanneer het sluit, gaat hij weer aan. Dit voorkomt dat je een open ruimte koelt.
automation:
- alias: "Raam open - Airco uit"
trigger:
- platform: state
entity_id: binary_sensor.woonkamer_raam
to: "on"
action:
- service: climate.turn_off
target:
entity_id: climate.mhi_air_conditioner
- alias: "Raam dicht - Airco aan"
trigger:
- platform: state
entity_id: binary_sensor.woonkamer_raam
to: "off"
action:
- service: climate.turn_on
target:
entity_id: climate.mhi_air_conditionerWat je bereikt hebt
De Mitsubishi cloudafhankelijkheid is verdwenen. Je airco reageert op Home Assistant commando’s in minder dan een seconde, volledig op je lokale netwerk. Geen fabrieksserver staat tussen jouw automatisering en je hardware. Geen abonnement. Geen uitvalrisico van een server die jij niet beheert.