TapHome

ClimaControl per Mitsubishi Electric aria-aria

Packet Parser → HTTP
Inviato da
Ultimo aggiornamento: 04. 2026
ClimaControl per Mitsubishi Electric aria-aria

ClimaControl ME_CN105_ATA_WIFI è un gateway Wi-Fi di terze parti prodotto da ProtoART (Enschede, Paesi Bassi), che aggiunge il controllo di rete locale ai climatizzatori Mitsubishi Electric aria-aria. Il modulo si collega al connettore di servizio CN105 presente praticamente su ogni unità interna RAC e PAC Mitsubishi Electric ed espone la pompa di calore tramite una REST API HTTP locale, un client MQTT e un hostname mDNS — il tutto senza account cloud. TapHome si connette via HTTP sulla rete locale, legge lo stato JSON della pompa di calore e gestisce accensione, modalità, ventola, alette e setpoint.

Si tratta di un’integrazione locale — nessun account MelCloud, nessuna dipendenza da Internet, nessun polling del cloud Mitsubishi. Il template convive con gli adattatori Wi-Fi MelCloud già installati e con i termostati cablati MHK1 / MHK2 sullo stesso bus CN105; vince l’ultimo comando ricevuto.

L’hardware del gateway è prodotto da ProtoART, non da Mitsubishi Electric. Mitsubishi Electric produce i climatizzatori controllati da questo gateway. ProtoART offre varianti separate per Mitsubishi Heavy Industries (MHI_XY_ATA_WIFI / MHI_CNS_ATA_WIFI) e per Mitsubishi Electric aria-acqua Ecodan (ME_CN105_ATW_WIFI) — per questi sistemi utilizzare il template corrispondente.

Hardware

Il modulo ClimaControl è una piccola scatoletta in plastica (non richiede alimentatore esterno) basata su un microcontrollore Wi-Fi ESP32. Viene consegnato completamente assemblato e pre-programmato — nessuna saldatura, nessun flash del firmware necessario.

Il kit contiene:

  • Modulo ClimaControl (ESP32, Wi-Fi b/g/n, client MQTT e HTTP REST)
  • Cablaggio CN105 pronto all’uso (connettore 5 poli con chiave)
  • Opzionale: sensore wireless esterno di temperatura e umidità (pila CR2032)
  • Opzionale: prolunga CN105 (da ordinare separatamente)

L’alimentazione è prelevata dalla linea 12 V del CN105 — nessun cablaggio di rete elettrica e nessun alimentatore esterno richiesti. È necessario un modulo ClimaControl per unità interna (i sistemi multi-split richiedono un modulo per ogni unità interna).

Unità interne Mitsubishi Electric supportate

ProtoART documenta il gateway come compatibile con la maggior parte delle unità interne Mitsubishi Electric RAC e PAC dotate di porta CN105, incluse canalizzabili, a parete, a cassetta e a pavimento.

FamigliaTipologiaSerie confermate
MSZSplit a parete (RAC)MSZ-AP, AY, DM, EF, FD, FE, FH, FS, GA, GB, GC, GE, GL, GS, GV, HR, LN, RW
MLZ / MLSCassetta monoflussoMLZ-KA, MLZ-KP, MLS-KP
MFZA pavimentoMFZ-KA, MFZ-KJ
PEAD / PEA / PKA / PVA / PLA / SEZCanalizzabile / Mr. Slim / PACPEAD-M, PEAD-RP100, PEA-RP140EA2, PKA-A, PKFY-P06NLMU-E-TH, PVA-A, PLA-A18BA, SEZ-KD
Multi-split / Mr. SlimEsterne / multi-zonaMSXY-FP, MSXY-FNVE, SVZ-KPNA, MXZ-8C48NAHZ, MPEZS-60VJA, NAXWST18A112AA

Se un modello specifico non è elencato ma dispone di porta CN105, in genere è compatibile — ProtoART invita gli utenti a contattare il supporto all’indirizzo [email protected] per conferma.

ClimaControl ME_CN105_ATA_WIFI è destinato solo ai sistemi Mitsubishi Electric aria-aria. Non supporta gli apparecchi Mitsubishi Heavy Industries (MHI) — per le unità interne MHI servono le varianti MHI_XY_ATA_WIFI o MHI_CNS_ATA_WIFI. Le unità Mitsubishi Electric aria-acqua (Ecodan) utilizzano una variante ClimaControl differente (ME_CN105_ATW_WIFI).

Installazione

Il modulo si collega alla scheda PCB interna dell’unità. L’installazione richiede l’apertura del vano elettrico dell’unità interna: seguire il manuale di installazione Mitsubishi Electric del modello specifico e togliere sempre prima tensione all’interruttore generale.

  1. Scollegare il climatizzatore dall’interruttore generale.
  2. Aprire il vano elettrico dell’unità interna secondo il manuale di installazione Mitsubishi Electric.
  3. Individuare il connettore 5 poli CN105 sulla scheda dell’unità interna (a volte etichettato CN105 o CNS).
  4. Inserire il cablaggio ClimaControl nel CN105 — il connettore è con chiave, ammette un solo verso di inserimento.
  5. Far passare il cavo attraverso un’apertura di servizio esistente e fissare la scatoletta ClimaControl a parete accanto all’unità interna (o all’interno dello chassis, se c’è spazio).
  6. Ripristinare la tensione — ClimaControl si alimenta dalla linea 12 V del CN105.
Configurazione Wi-Fi (captive portal)

Alla prima accensione il modulo espone un proprio access point Wi-Fi e apre un captive portal. Collegarsi all’AP, inserire nel portale le credenziali del Wi-Fi domestico e il modulo entra nella LAN. Da quel momento si annuncia via mDNS / Bonjour come heatpump.local — raggiungibile all’indirizzo http://heatpump.local/ per l’interfaccia web e http://heatpump.local/control per la REST API.

Utilizzare l’hostname mDNS heatpump.local invece di un indirizzo IP assegnato via DHCP. Il nome resta valido dopo i rinnovi DHCP e i riavvii del router — l’IP può cambiare, il nome no.

Coesistenza con MelCloud e termostati MHK

ClimaControl si collega in parallelo alle interfacce Wi-Fi MelCloud esistenti e ai termostati cablati MHK1 / MHK2 — tutti i controller condividono il bus CN105. Non è richiesto alcun cablaggio particolare e vince l’ultimo comando. TapHome, l’app MelCloud e un termostato a parete possono comandare la stessa unità contemporaneamente.

Configurazione

Parametro di import TapHome

Durante l’import del template nell’app TapHome occorre impostare un solo parametro:

ParametroDescrizioneValore consigliato
IpAddressHost raggiungibile dal CCU TapHomeheatpump.local

La porta 80 è fissa. Non è prevista autenticazione — il modulo è pensato per accessi LAN attendibili. Mantenerlo in un segmento di rete o VLAN affidabile; qualsiasi dispositivo che raggiunga /control sulla porta 80 può controllare l’HVAC.

Se l’hostname mDNS non è risolvibile dalla rete del CCU TapHome (ad esempio tra sottoreti che non inoltrano l’mDNS), assegnare una lease DHCP statica e inserire direttamente l’indirizzo IP.

Dispositivi del template

Il template interroga l’endpoint /control ogni 2,5 secondi, mette in cache l’intera risposta JSON di stato in una variabile a livello di modulo (status) ed espone sette sotto-dispositivi che leggono i singoli campi dalla cache.

Accensione

Un semplice interruttore on/off. Legge heatpump.power (on/off) e scrive /control?cmd=heatpump&power=on|off.

Modalità operativa

Uno switch multivalore con le cinque modalità supportate dalle unità interne Mitsubishi Electric aria-aria:

ValoreModalitàScritto come
0Automode=auto
1Raffrescamentomode=cool
2Ventilazione (solo ventola)mode=fan
3Deumidificazionemode=dry
4Riscaldamentomode=heat
Velocità ventola

Uno switch multivalore a sei livelli: Silenzioso, 1, 2, 3, 4, Auto. Legge heatpump.fan e scrive /control?cmd=heatpump&fan=…. L’enum interno è mappato come quiet=0, 1=1, 2=2, 3=3, 4=4, auto=5.

Termostato

Un dispositivo termostato che legge la temperatura ambiente corrente (heatpump.actual_temperature) e il setpoint attuale (heatpump.set_temperature) e scrive il nuovo setpoint tramite /control?cmd=heatpump&set_temperature={value}. Le temperature sono riportate in °C come numeri in virgola mobile.

Il campo actual_temperature è alimentato dal termistore integrato nell’unità interna oppure — se utilizzato — dal canale Remote Temperature descritto più avanti.

Remote Temperature (sensore ambiente esterno)

Una variabile in sola scrittura che invia all’HVAC un valore di temperatura ambiente esterno, sovrascrivendo il termistore integrato dell’unità interna. Qualsiasi sensore di temperatura TapHome (wireless, Modbus, Zigbee ecc.) può essere collegato tramite una semplice smart rule: a ogni cambiamento del sensore sorgente il relativo valore in °C viene scritto su questo dispositivo.

Il valore di temperatura remota deve essere aggiornato almeno ogni 15 secondi, altrimenti l’unità ritorna al termistore integrato finché non arriva un nuovo valore. Configurare la smart rule in modo che scriva a ogni cambiamento e anche periodicamente (ad esempio ogni 10 secondi), così brevi periodi di assenza di variazioni del sensore non fanno decadere l’override.

Valori ≤ 0 e NaN sono ignorati dal template — utilizzare questa funzione solo con un sensore ambiente affidabile lato TapHome.

Posizione alette (verticali)

Uno switch multivalore per l’angolo delle alette verticali: 1, 2, 3, 4, Auto. Legge heatpump.vane e scrive /control?cmd=heatpump&vane=…. L’HTTP API di ProtoART documenta anche un valore swing — il template attuale non lo espone.

Posizione alette larghe (orizzontali)

Uno switch multivalore per la direzione delle alette orizzontali: Estrema sinistra, Sinistra, Centro, Destra, Estrema destra, Largo, Oscillazione. Legge heatpump.widevane e scrive /control?cmd=heatpump&widevane=…. ProtoART documenta anche un valore split che il template attuale non espone.

Azione di servizio Reset a livello modulo

Un’unica azione di servizio a livello modulo — Reset — invia /control?cmd=restart e causa il riavvio dell’ESP32. Utile dopo un aggiornamento firmware o quando la linea UART CN105 si blocca.

Altre funzionalità (non implementate)

ProtoART espone molti più campi di telemetria di quanti ne utilizzi il template attuale. Potranno essere aggiunti in una futura revisione del template:

  • Temperatura batteria interna (heatpump.tinp) e temperatura esterna (heatpump.tout) — termistori batteria/esterno.
  • Pressione batteria interna (heatpump.pinp) — diagnostica.
  • Consumo energetico (heatpump.tpcns) — contatore cumulativo di energia; mappabile come contatore elettrico TapHome.
  • Tempo di funzionamento (heatpump.optime) — contatore ore di funzionamento del compressore.
  • Flag di funzionamento (heatpump.oper) — compressore attivo / standby.
  • Stato di sbrinamento (heatpump.defrost) — true durante lo sbrinamento dell’unità esterna.
  • Hot adjust (heatpump.hotadjust) — flag di pre-riscaldamento.
  • Stato standby (heatpump.standby) — unità interna accesa ma non attivamente in riscaldamento/raffrescamento.
  • Stato sensore i-see (heatpump.isee) — rilevazione presenza per serie MSZ-FH.
  • Valori del sensore esterno (sensor.external.*) — temperatura, umidità e livello batteria del sensore wireless CR2032 opzionale.
  • Diagnostica — stato della linea UART CN105 (sys.conhp), stato connessione sensore esterno (sys.conext), uptime modulo (sys.up), Wi-Fi RSSI (wifi.rssi), versione firmware (fw.curr).

Sensore esterno wireless opzionale

ProtoART vende come accessorio un piccolo sensore wireless a batteria (CR2032, LoRa / 2,4 GHz). Misura temperatura e umidità ambiente ed è usato per compensare l’effetto „bolla di calore" attorno al termistore dell’unità interna — il sensore integrato si trova dentro la scocca e in riscaldamento rileva una temperatura più alta di quella effettiva della stanza.

Il sensore si abbina direttamente al modulo ClimaControl (non a TapHome). I suoi valori compaiono nello stato JSON sotto sensor.external.* e vengono utilizzati dalla logica interna del modulo. Il template TapHome attuale non li rilegge — se il sensore esterno non viene acquistato, inviare al dispositivo Remote Temperature la temperatura ambiente rilevata da un qualsiasi sensore TapHome.

Risoluzione dei problemi

heatpump.local non viene risolto
  1. Verificare che il modulo ClimaControl si sia connesso al Wi-Fi domestico — lo stato del LED è descritto nel manuale ProtoART.
  2. Assicurarsi che il CCU TapHome sia nella stessa LAN / VLAN del modulo. L’mDNS (Bonjour) è link-local — non attraversa le sottoreti a meno che sul router non sia configurato un mDNS reflector.
  3. Aprire http://heatpump.local/control nel browser di un dispositivo sulla stessa LAN — una risposta JSON conferma la raggiungibilità del modulo.
  4. Se l’mDNS non è disponibile, assegnare una lease DHCP statica al MAC del modulo e inserire l’IP direttamente nel parametro di import IpAddress.
Tutti i valori risultano NaN dopo l’import

Il template interroga /control senza parametri ogni 2,5 secondi. Se tutti i campi sono NaN, la richiesta HTTP non va a buon fine:

  1. Verificare che IpAddress punti a un host raggiungibile.
  2. Aprire http://{IpAddress}/control nel browser — se viene restituito un form di login o una pagina di errore, il firmware del modulo potrebbe essere obsoleto; aggiornare tramite le ProtoART Firmware Release Notes.
  3. Controllare il cavo CN105 — se il cavo è scollegato o l’unità interna non è alimentata, il modulo si avvia ma la sezione della pompa di calore nel JSON restituisce valori vuoti / predefiniti. La diagnostica sys.conhp (attualmente non esposta) in questo caso scende a 0.
Remote Temperature non ha effetto
  1. Verificare che la scrittura avvenga almeno ogni 15 s — con intervalli più lunghi l’unità, tra una scrittura e l’altra, ritorna al termistore interno.
  2. Verificare che il valore scritto sia un numero in virgola mobile positivo (°C). I valori ≤ 0 e NaN sono esplicitamente ignorati dallo script del template.
  3. Alcune unità interne Mitsubishi Electric richiedono che l’unità sia in modalità Raffrescamento, Riscaldamento o Auto perché la temperatura remota abbia effetto. Nelle modalità Deumidificazione e Ventilazione il compressore non usa il setpoint, quindi Remote Temperature non ha impatto visibile.
Le scritture di setpoint vengono silenziosamente sovrascritte

Se un altro controller (l’app MelCloud, un termostato MHK, il telecomando IR) invia un comando quasi contemporaneamente a TapHome, sul bus CN105 vince l’ultimo comando. È il comportamento atteso di un sistema multi-controller. Se il setpoint deve essere gestito da un solo controller, rimuovere gli altri (o limitarne l’accesso via Wi-Fi / pianificazione).

I comandi ventola o alette non hanno effetto

L’enum del template mappa 0 – 5 per ventola/alette. Alcuni modelli Mitsubishi Electric fisicamente non supportano ogni livello — ad esempio un’unità senza modalità „Silenzioso" accetta il comando ma funziona sul livello supportato più vicino. Provare ciascuna velocità con il telecomando originale dell’unità per verificare quali livelli il modello espone davvero.

L’hardware ProtoART è aperto anche ad altre piattaforme di domotica (Home Assistant, OpenHAB, FHEM, Tasmota, Homey). Più client possono collegarsi contemporaneamente allo stesso modulo — ad esempio TapHome e Home Assistant possono leggere e scrivere insieme senza interferirsi, poiché il modulo non serializza lo stato tra i client. Evitare scritture contrastanti da automazioni eseguite in parallelo.

Dispositivi disponibili

ClimaControl ME_CN105_ATA_WIFI Modulo
Azioni di servizio
ResetRiavvia il modulo ClimaControl (reboot dell'ESP32) tramite /control?cmd=restart. Utile dopo gli aggiornamenti firmware o quando la linea UART CN105 si blocca.
Variabili personalizzate

ClimaControl - Mitsubishi Electric Air-to-Air

Lettura (modulo)
VAR response := SENDHTTPREQUEST("/control");
IF response.IsSuccess
 status := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
Azioni di servizio
Reset
VAR response := SENDHTTPREQUEST("/control?cmd=restart");
IF response.IsSuccess = false
 RETURN("Error");
ELSE
 RETURN("OK");
END
Velocità ventola Interruttore multivalore

Selettore della velocità della ventola — Silenzioso, 1, 2, 3, 4, Auto. Legge heatpump.fan; scrive /control?cmd=heatpump&fan={value}.

string enum_map
Valori / Stati: Quiet · ${device_mode_Automatic}

Velocità ventola

Lettura stato interruttore
switch(parsejson(status, "heatpump.fan"),
"quiet", 0, "1", 1, "2", 2, "3", 3, "4", 4, "auto", 5, NaN)
Scrittura stato interruttore
IF (!ISNAN(Mu))
	VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&fan=" + switch(Mu,
	0, "quiet", 1, "1", 2, "2", 3, "3", 4, "4", 5, "auto", ""));
	IF response.IsSuccess = false
	 ADDERROR(response.StatusCode);
	END
END
Accensione Interruttore

Stato on/off dell'unità interna. Legge heatpump.power; scrive /control?cmd=heatpump&power=on|off.

string enum_map
Valori / Stati: ON · OFF

Accensione

Lettura stato interruttore
switch(parsejson(status, "heatpump.power"),
"off", 0, "on", 1, NaN)
Scrittura stato interruttore
VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&power=" + St);
IF response.IsSuccess = false
 ADDERROR(response.StatusCode);
END
Remote Temperature Variabile

Canale in sola scrittura che invia all'HVAC una temperatura ambiente esterna (°C), sovrascrivendo il termistore integrato dell'unità interna. Deve essere aggiornato almeno ogni 15 s, altrimenti l'unità ritorna al sensore interno. I valori ≤ 0 e NaN sono ignorati.

float Unità: °C

Remote Temperature

Scrittura
IF (!(ISNAN(Va) or Va <= 0))
	VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&remote_temperature=" + Va);
	IF response.IsSuccess = false
	 ADDERROR(response.StatusCode);
	END
END
Modalità Interruttore multivalore

Selettore della modalità operativa — Auto, Raffrescamento, Ventilazione (solo ventola), Deumidificazione, Riscaldamento. Legge heatpump.mode; scrive /control?cmd=heatpump&mode={value}.

string enum_map
Valori / Stati: ${device_mode_Automatic} · ${device_mode_Cooling} · ${category_ventilation} · Dry · ${device_mode_Heating}

Modalità

Lettura stato interruttore
switch(parsejson(status, "heatpump.mode"),
"auto", 0, "cool", 1, "fan", 2, "dry", 3, "heat", 4, NaN)
Scrittura stato interruttore
IF (!ISNAN(Mu))
	VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&mode=" + switch(Mu,
	0, "auto", 1, "cool", 2, "fan", 3, "dry", 4, "heat", ""));
	IF response.IsSuccess = false
	 ADDERROR(response.StatusCode);
	END
END
Termostato Termostato

Termostato per temperatura ambiente — legge la temperatura ambiente attuale (heatpump.actual_temperature) e il setpoint corrente (heatpump.set_temperature); scrive il nuovo setpoint via /control?cmd=heatpump&set_temperature={value} in °C.

float Unità: °C

Termostato

Lettura temperatura
parsejson(status, "heatpump.actual_temperature")
Lettura temperatura desiderata
parsejson(status, "heatpump.set_temperature")
Scrittura temperatura desiderata
VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&set_temperature=" + Se);
IF response.IsSuccess = false
 ADDERROR(response.StatusCode);
END
Posizione alette Interruttore multivalore

Posizione delle alette verticali — 1, 2, 3, 4, Auto. Legge heatpump.vane; scrive /control?cmd=heatpump&vane={value}.

string enum_map
Valori / Stati: -- · ${device_mode_Automatic}

Posizione alette

Lettura stato interruttore
switch(parsejson(status, "heatpump.vane"),
"1", 1, "2", 2, "3", 3, "4", 4, "auto", 5, NaN)
Scrittura stato interruttore
IF (!ISNAN(Mu))
	VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&vane=" + switch(Mu,
	1, "1", 2, "2", 3, "3", 4, "4", 5, "auto", ""));
	IF response.IsSuccess = false
	 ADDERROR(response.StatusCode);
	END
END
Posizione alette larghe Interruttore multivalore

Posizione delle alette larghe orizzontali — Estrema sinistra, Sinistra, Centro, Destra, Estrema destra, Largo, Oscillazione. Legge heatpump.widevane; scrive /control?cmd=heatpump&widevane={value}.

string enum_map
Valori / Stati: farleft · left · middle · right · farright · wide · swing

Posizione alette larghe

Lettura stato interruttore
switch(parsejson(status, "heatpump.widevane"),
"farleft", 0, "left", 1, "middle", 2, "right", 3, "farright", 4, "wide", 5, "swing", 6, NaN)
Scrittura stato interruttore
IF (!ISNAN(Mu))
	VAR response := SENDHTTPREQUEST("/control?cmd=heatpump&widevane=" + switch(Mu,
	0, "farleft", 1, "left", 2, "middle", 3, "right", 4, "farright", 5, "wide", 6, "swing", ""));
	IF response.IsSuccess = false
	 ADDERROR(response.StatusCode);
	END
END
Connessione: Packet Parser → HTTP
Possibili miglioramenti (18)
  • Indoor coil (input) temperature — Indoor unit coil temperature — available in JSON status and on MQTT /heatpump/tinp. Could be added as PacketParserVariable, read-only, °C.
  • Outdoor temperature — Outdoor unit temperature — available in JSON status and on MQTT /heatpump/tout. Could be added as PacketParserVariable, read-only, °C.
  • Indoor coil pressure — Indoor coil pressure (diagnostic). Could be added as PacketParserVariable, read-only.
  • Power consumption — Cumulative power consumption reported by the heat pump. Homey app maps this as an energy meter — could be added as PacketParserElectricityMeter.
  • Operation time — Total compressor operating time counter. Could be added as PacketParserVariable, read-only.
  • Operation flag — Indicates whether the compressor is actively running. Useful for detecting standby vs. active cycles.
  • Defrost state — True when the outdoor unit is in a defrost cycle. Homey app exposes this; useful for user feedback during winter operation.
  • Hot adjust — Pre-heat adjustment flag — indicates the unit is warming up before delivering air.
  • Standby state — Indicates the indoor unit is in standby (on but not actively heating/cooling).
  • i-see sensor state — i-see infrared presence sensor state (on MSZ-FH and similar models). Reports detected occupant position.
  • External sensor temperature — Temperature from the optional wireless CR2032 external sensor (puck). The template does not read it — users would need a separate Remote Temperature feed.
  • External sensor humidity — Humidity from the optional wireless external sensor. Homey app exposes this capability.
  • External sensor battery level — Battery level of the optional CR2032 external sensor.
  • Module uptime — ClimaControl module uptime. Could be exposed as a module-level service attribute.
  • CN105 UART link status — Status of the UART link between the ClimaControl module and the indoor unit. Critical diagnostic — value 0 means the CN105 cable is disconnected or the indoor unit is off.
  • External sensor link status — Status of the wireless link to the optional external sensor (1 = paired).
  • WiFi signal strength — WiFi RSSI of the ClimaControl module (module.* / sys.* section of the JSON).
  • Firmware version — Current firmware version of the ClimaControl module. Could be exposed as a module-level service attribute.

Fonti

  • ProtoART — ME_CN105_ATA_WIFI HTTP API & MQTT Topics
    protoart.net 2026-04-16
  • ProtoART — ME_CN105_ATA_WIFI Supported Models
    protoart.net 2026-04-16
  • ProtoART — ME_CN105_ATA_WIFI Installation
    protoart.net 2026-04-16
  • Lectronz — ClimaControl Mitsubishi Electric Air-to-Air HVAC
    lectronz.com 2026-04-16
  • Homey — ClimateControl community app (net.protoart.clima)
    homey.app 2026-04-16