TapHome

Midea M-Thermal Pompa di calore

Modbus RTU
Submitted by
Last updated: 03. 2026
Midea M-Thermal Pompa di calore

La Midea M-Thermal A Series Split (R32) è una pompa di calore inverter composta da un’unità esterna e da un modulo idronico. Il sistema comunica con TapHome tramite Modbus RTU su RS-485 a 9600 baud, esponendo i registri holding per il controllo e il monitoraggio. Il template consente l’accensione/spegnimento del riscaldamento e dell’ACS, la selezione della modalità operativa, il termostato ACS, i sensori di temperatura, la diagnostica del compressore e il monitoraggio della pressione del refrigerante.

La stessa mappa dei registri Modbus viene utilizzata dai cloni OEM, tra cui le pompe di calore Hyundai, Concept, Hajdu, Immergas e Clivet Swan. Il template è compatibile con questi dispositivi quando si utilizzano lo stesso controller con cavo e lo stesso modulo idronico.

La mappa dei registri Modbus per questo dispositivo proviene da fonti della community (community di Home Assistant). Gli indirizzi dei registri sono stati verificati da più utenti ma non sono ufficialmente documentati da Midea.

Connessione hardware

Cablaggio RS-485

La connessione Modbus RS-485 è disponibile tramite le porte H1 e H2 sul PCB del controller con cavo. Il controller con cavo deve essere collegato al modulo idronico per accedere completamente ai dati Modbus.

Collegare le linee di segnale RS-485:

SegnaleDirezionePorta
BUS1 (A+)<->H2
BUS2 (B-)<->H1

Importante — controller con cavo obbligatorio

Il controller con cavo deve essere collegato al modulo idronico per il funzionamento della comunicazione Modbus. Senza il controller con cavo i registri non sono accessibili tramite RS-485.

Specifiche tecniche
  • Protocollo: Modbus RTU Slave, RS-485
  • Velocità di trasmissione: 9600 baud, nessuna parità, 1 bit di stop, 8 bit di dati
  • Slave ID predefinito: 1 (selettore rotativo S3, posizione 0)
  • Modelli: MHA-V4W–MHA-V16W (4–16 kW), varianti D2N8-B e D2RN8-B
  • Modulo idronico: HB-A60/A100/A160/CGN8-B

Configurazione

Indirizzo slave (selettore rotativo S3)

L’indirizzo Modbus slave viene impostato tramite il selettore rotativo S3 sul PCB principale del modulo idronico. La posizione 0 corrisponde all’indirizzo slave 1.

Layout del PCB principale del modulo idronico Midea M-Thermal con selettore rotativo S3

Componenti principali sul PCB del modulo idronico:

  • S3 (etichetta 2) — Selettore rotativo DIP per l’indirizzo Modbus slave
  • CN14 (etichetta 21) — Comunicazione con il controller con cavo
  • CN19 (etichetta 20) — Comunicazione tra unità interna ed esterna
  • CN30 (etichetta 22) — Comunicazione con il controller con cavo e unità interne parallele
  • DIS1 (etichetta 3) — Display digitale per codici di errore
Abilitazione della comunicazione Modbus
  1. Rimuovere l’alimentazione dall’intero sistema della pompa di calore
  2. Rimuovere il pannello posteriore del controller con cavo
  3. Collegare le linee di segnale RS-485 A e B alle porte H1 e H2 del controller con cavo
  4. Accedere al PCB del modulo idronico
  5. Assicurarsi che il selettore rotativo S3 sia impostato sulla posizione desiderata (posizione 0 = indirizzo slave 1)
  6. Accendere il sistema della pompa di calore

Durante la configurazione del modulo TapHome, utilizzare Modbus RTU con 9600 baud, nessuna parità, 1 bit di stop, 8 bit di dati. Lo slave ID predefinito è 1 (posizione S3 = 0). Se si utilizza un gateway Modbus TCP-RTU (come WaveShare), configurare la porta del gateway su 502 e impostare lo slave ID corrispondente alla posizione del selettore S3.

Raccomandazione indirizzo IP statico

Se ci si connette tramite un gateway Modbus TCP-RTU, assegnare un indirizzo IP statico o una prenotazione DHCP al gateway per evitare problemi di connettività in caso di cambio di indirizzo IP.

Funzionalità del dispositivo

Controllo riscaldamento e ACS

Il template utilizza il registro H:0 come campo a bit per controllare le singole funzioni:

  • Riscaldamento (H:0 bit 1) — abilita o disabilita la funzione di riscaldamento degli ambienti
  • ACS (H:0 bit 2) — abilita o disabilita la funzione di produzione acqua calda sanitaria
  • Disinfezione (H:5 bit 4) — attiva il ciclo di disinfezione anti-legionella per il serbatoio ACS

Ogni funzione è controllata indipendentemente tramite operazioni GETBIT/SETBIT, consentendo di attivare e disattivare riscaldamento e ACS senza influenzarsi a vicenda.

Modalità operativa

Modalità pompa di calore (H:1) seleziona la modalità operativa: Auto (0), Auto (1), Raffreddamento (2), Riscaldamento (3) e modalità aggiuntive (4–9). Il template presenta questa funzione come un selettore multivalore.

Termostato ACS

Temperatura ACS legge la temperatura attuale del serbatoio ACS da H:115 (sensore T5) e scrive la temperatura target in H:4. Funziona come un termostato — la temperatura attuale viene visualizzata insieme al valore di setpoint.

Monitoraggio temperature

Il template fornisce cinque sensori di temperatura:

  • Temperatura acqua calcolata (H:110) — temperatura all’uscita finale dell’acqua (sensore T1)
  • Temperatura target compensata climaticamente (H:136) — temperatura target della curva equistemica calcolata dal controller della pompa di calore
  • Temperatura acqua in ingresso (H:104) — acqua in entrata nello scambiatore di calore (sensore Tw_in)
  • Temperatura acqua in uscita (H:105) — acqua in uscita dallo scambiatore di calore (sensore Tw_out)
  • Temperatura esterna (H:107) — temperatura dell’aria esterna (sensore T4), campionata ogni 1 secondo
Diagnostica compressore e prestazioni
  • Frequenza compressore (H:100) — velocità attuale del compressore inverter in Hz
  • Tempo di funzionamento compressore (H:122) — tempo di funzionamento cumulativo del compressore in ore
  • Velocità ventilatore (H:102) — velocità del ventilatore dell’unità esterna in RPM (12 passi di velocità, 200–730 RPM a seconda del modello)
  • Capacità (H:140) — potenza termica attuale della pompa di calore (valore grezzo / 100)
  • Portata acqua (H:138) — portata dell’acqua nel circuito idronico in m³/h (valore grezzo / 100)
Monitoraggio elettrico
  • Tensione unità esterna (H:119) — tensione di alimentazione (protezione: monofase >=265 V o <=172 V, codice errore H7)
  • Corrente unità esterna (H:118) — assorbimento di corrente del compressore (limiti di protezione variabili per modello: 18 A per 4–6 kW, 30 A per 12–16 kW)
  • Tensione DC bus (H:134) — tensione DC bus dell’inverter (valore grezzo × 10)
  • Corrente DC bus (H:133) — corrente DC bus dell’inverter
Pressione refrigerante
  • Alta pressione unità esterna (H:116) — pressione lato alta pressione del refrigerante in kPa (protezione attivata oltre 4,3 MPa, codice errore P1)
  • Bassa pressione unità esterna (H:117) — pressione lato bassa pressione del refrigerante in kPa (protezione attivata sotto 0,14 MPa, codice errore P0)
Diagnostica di servizio

Il modulo espone due attributi di servizio:

  • Versione software (H:130) — numero di versione firmware della pompa di calore
  • Attributo — attributo di servizio segnaposto (formula di lettura vuota)
Funzionalità aggiuntive

Il sistema Midea M-Thermal espone anche registri per la selezione della curva di riscaldamento, il riscaldamento forzato dell’acqua, il controllo forzato del resistore elettrico del serbatoio (TBH) e del riscaldatore ausiliario interno (IBH1), il setpoint massimo Smart Grid e sensori di temperatura aggiuntivi tra cui T1S (uscita acqua finale), T3 (uscita scambiatore lato aria), Tp (tubazione mandata), Th (aspirazione), T1, T2 (tubazione liquido) e T2B (tubazione gas). Sono disponibili anche la lettura del codice guasto (H:124), la percentuale di uscita del carico, la frequenza target del compressore, i bit di stato del sistema e i contatori di energia cumulativi (consumo elettrico e produzione termica come Int32 su due registri). Le impostazioni di potenza di IBH1, IBH2 e TBH sono configurabili. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

Il registro del codice guasto attuale (H:124) non è incluso nel template. Per monitorare gli errori della pompa di calore, può essere aggiunto come dispositivo Modbus personalizzato in TapHome leggendo il registro H0124 come Int16.

Risoluzione dei problemi

Nessuna comunicazione Modbus
  1. Verificare che il controller con cavo sia collegato al modulo idronico — senza di esso i registri Modbus non sono accessibili
  2. Controllare i collegamenti delle linee di segnale RS-485: BUS1 su H2, BUS2 su H1
  3. Confermare le impostazioni TapHome: 9600 baud, nessuna parità, 1 bit di stop, 8 bit di dati
  4. Verificare l’indirizzo slave: controllare la posizione del selettore rotativo S3 sul PCB del modulo idronico (posizione 0 = indirizzo 1)
  5. Se si utilizza un gateway TCP-RTU, verificare la raggiungibilità del gateway e la corrispondenza delle impostazioni della porta seriale
Errore di comunicazione (codice errore H0)

Il codice errore H0 indica un errore di comunicazione tra l’unità esterna e il modulo idronico. Possibili cause:

  1. Alimentazione anomala — controllare l’ingresso (220 V AC) e l’uscita (13,5 V AC) del trasformatore
  2. Interferenze elettromagnetiche da dispositivi ad alta frequenza nelle vicinanze — spostare o schermare
  3. I fili di comunicazione P, Q, E tra l’unità esterna e il modulo idronico sono allentati o danneggiati — ricollegare
Errori sensori di temperatura (codici E3–E9)

I codici errore E3, E4, H2, H3, Ed, HA, E5, E6, E9, EA indicano guasti ai sensori di temperatura:

  1. Controllare il collegamento del sensore sulla porta PCB corrispondente (vedere il diagramma del layout PCB)
  2. Misurare la resistenza del sensore — se troppo bassa, il sensore è in cortocircuito; se non corrisponde alla tabella di resistenza, il sensore è guasto
  3. Se i collegamenti sono corretti e il sensore è funzionante, potrebbe essere necessario sostituire il PCB
Errori di protezione dalla pressione
  • P0 (bassa pressione) — pressione di aspirazione inferiore a 0,14 MPa. Controllare la carica del refrigerante e il funzionamento della valvola di espansione
  • P1 (alta pressione) — pressione di mandata superiore a 4,3 MPa. Controllare il flusso d’aria al condensatore, il funzionamento del ventilatore, la sovraccrica di refrigerante
  • P4 (alta temperatura tubazione mandata) — temperatura della tubazione di mandata superiore a 115 °C. Controllare il funzionamento del compressore e i livelli di refrigerante

Dispositivi disponibili

Midea pompa di calore Modulo
Attributi di servizio
Attributoempty read formula — placeholder service attribute with no function
Versione softwarereads H:130 (UInt16); heat pump firmware version number

Midea Heat Pump

Attributi di servizio
Attribute
Software version
MODBUSR(H, 130, UInt16)
Temperatura acqua calcolata Sensore di temperatura Solo lettura

Temperatura all'uscita finale dell'acqua — sensore T1 (H:110)

Registro: H:110 Int16 (Temperature) Unità: °C numeric

Temperatura acqua calcolata

Lettura temperatura
MODBUSR(H, 110, Int16)
Capacità Variabile Solo lettura

Potenza termica attuale della pompa di calore in percentuale

Registro: H:140 Int16 numeric

Capacità

Lettura
MODBUSR(H, 140, Int16) / 100
Temperatura target compensata Sensore di temperatura Solo lettura

Temperatura target della curva equistemica calcolata dal controller della pompa di calore in base alle condizioni esterne

Registro: H:136 Int16 (Temperature) Unità: °C numeric

Temperatura target compensata

Lettura temperatura
MODBUSR(H, 136, Int16)
Tempo di funzionamento compressore Variabile Solo lettura

Tempo di funzionamento cumulativo del compressore in ore

Registro: H:122 Int16 Unità: h numeric

Tempo di funzionamento compressore

Lettura
MODBUSR(H, 122, Int16)
Corrente bus DC Variabile Solo lettura

Corrente DC bus dell'inverter

Registro: H:133 Int16 Unità: A numeric

Corrente bus DC

Lettura
MODBUSR(H, 133, Int16)
Tensione bus DC Variabile Solo lettura

Tensione DC bus dell'inverter — valore grezzo moltiplicato per 10

Registro: H:134 Int16 Unità: V numeric

Tensione bus DC

Lettura
MODBUSR(H, 134, Int16) *10
Disinfezione Interruttore

Ciclo di disinfezione anti-legionella per il serbatoio ACS

Registro: H:5H:5 Bool (bit 4) bitfield

Disinfezione

Lettura stato interruttore
GETBIT(MODBUSR(H, 5, Int16),4)
Scrittura stato interruttore
var reg := MODBUSR(H, 5 , UInt16);
MODBUSW(H, 5 , UInt16, SETBIT(reg,4,St));
Frequenza compressore Variabile Solo lettura
Registro: H:100 Int16 Unità: Hz numeric

Frequenza compressore

Lettura
MODBUSR(H, 100, Int16)
Temperatura acqua ingresso Sensore di temperatura Solo lettura

Acqua in entrata nello scambiatore di calore (sensore Tw_in)

Registro: H:104 Int16 (Temperature) Unità: °C numeric

Temperatura acqua ingresso

Lettura temperatura
MODBUSR(H, 104, Int16)
Riscaldamento Interruttore

Abilita o disabilita la funzione di riscaldamento degli ambienti

Registro: H:0H:0 Bool (bit 1) bitfield
Valori / Stati: ${general_yes} · ${general_no}

Riscaldamento

Lettura stato interruttore
GETBIT(MODBUSR(H, 0, Int16),1)
Scrittura stato interruttore
var reg := MODBUSR(H, 0 , UInt16);
MODBUSW(H, 0 , UInt16, SETBIT(reg,1,St));
Velocità ventilatore Variabile Solo lettura

Velocità del ventilatore dell'unità esterna in RPM

Registro: H:102 Int16 Unità: RPM numeric

Velocità ventilatore

Lettura
MODBUSR(H, 102, Int16)
Corrente unità esterna Variabile Solo lettura
Registro: H:118 Int16 Unità: A numeric

Corrente unità esterna

Lettura
MODBUSR(H, 118, Int16)
Alta pressione unità esterna Variabile Solo lettura

Pressione lato alta pressione del refrigerante — protezione attivata oltre 4,3 MPa (codice errore P1)

Registro: H:116 Int16 Unità: kPa numeric

Alta pressione unità esterna

Lettura
MODBUSR(H, 116, Int16)
Bassa pressione unità esterna Variabile Solo lettura

Pressione lato bassa pressione del refrigerante — protezione attivata sotto 0,14 MPa (codice errore P0)

Registro: H:117 Int16 Unità: kPa numeric

Bassa pressione unità esterna

Lettura
MODBUSR(H, 117, Int16)
Tensione unità esterna Variabile Solo lettura
Registro: H:119 Int16 Unità: V numeric

Tensione unità esterna

Lettura
MODBUSR(H, 119, Int16)
Temperatura acqua uscita Sensore di temperatura Solo lettura

Acqua in uscita dallo scambiatore di calore (sensore Tw_out)

Registro: H:105 Int16 (Temperature) Unità: °C numeric

Temperatura acqua uscita

Lettura temperatura
MODBUSR(H, 105, Int16)
Modalità pompa di calore Interruttore multivalore

Selezione modalità operativa — Auto, Raffreddamento, Riscaldamento e modalità aggiuntive

Registro: H:1H:1 Int16 numeric
Valori / Stati: Auto · Auto · Chladenie · Kurenie

Modalità pompa di calore

Lettura stato interruttore
MODBUSR(H, 1, Int16)
Scrittura stato interruttore
MODBUSW(H, 1, Int16, Mu)
Temperatura ACS Termostato

Termostato serbatoio ACS — legge la temperatura attuale del serbatoio, scrive il setpoint target

Registro: H:115 (current), H:4 (setpoint)H:4 Int16 Unità: °C numeric

Temperatura ACS

Lettura temperatura
MODBUSR(H, 115, Int16)
Lettura temperatura desiderata
MODBUSR(H, 4, Int16)
Scrittura temperatura desiderata
MODBUSW(H, 4, Int16, Se)
ACS Interruttore

Abilita o disabilita la funzione di produzione acqua calda sanitaria

Registro: H:0H:0 Bool (bit 2) bitfield

ACS

Lettura stato interruttore
GETBIT(MODBUSR(H, 0, Int16),2)
Scrittura stato interruttore
var reg := MODBUSR(H, 0 , UInt16);
MODBUSW(H, 0, UInt16, SETBIT(reg,2,St));
Temperatura esterna Sensore di temperatura Solo lettura

Temperatura dell'aria esterna — sensore T4 (H:107)

Registro: H:107 Int16 (Temperature) Unità: °C numeric

Temperatura esterna

Lettura temperatura
MODBUSR(H, 107, Int16)
Portata acqua Variabile Solo lettura

Portata dell'acqua nel circuito idronico in m³/h

Registro: H:138 Int16 Unità: m³/h numeric

Portata acqua

Lettura
MODBUSR(H, 138, Int16) / 100
Connessione: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possibili miglioramenti (21)
  • H:6 Curve Selection — Heating curve selection — weather-compensated heating curve parameter
  • H:7 Forced Water Heating — Manual water heating trigger — forces heating cycle
  • H:8 Forced TBH — Tank Booster Heater — forces DHW tank electric backup heater on
  • H:9 Forced IBH1 — Internal Backup Heater 1 — forces electric backup heater on
  • H:10 Smart Grid Max Setpoint (t_SG_MAX) — Maximum setpoint for smart grid operation
  • H:11 T1S Temperature — Final water outlet temperature (T1S sensor). H:110 (T1) is now implemented as 'Calculated Water Temperature'
  • H:101 Operating Mode (read) — Current operating mode status readback — different from the control register H:1
  • H:106 T3 Temperature — Air side heat exchanger refrigerant outlet temperature
  • H:108 Tp Temperature (Discharge) — Discharge pipe temperature. Protection: >115°C triggers P4 error
  • H:109 Th Temperature (Suction) — Suction pipe temperature
  • H:112 T2 Temperature (Liquid pipe) — Water side heat exchanger liquid pipe temperature
  • H:113 T2B Temperature (Gas pipe) — Water side heat exchanger gas pipe temperature
  • H:124 Current Fault Code — Active error code — could enable fault monitoring in TapHome
  • H:128 Bit Status 1 — System status bit field
  • H:129 Load Output — Current load percentage output
  • H:132 Target Frequency — Requested compressor speed — useful to compare against actual frequency (H:100)
  • H:143–144 Electricity Consumption — Int32 across 2 registers — cumulative electricity consumption in kWh. Requires 32-bit read support
  • H:145–146 Power Output — Int32 across 2 registers — cumulative heat energy output in kWh. Requires 32-bit read support
  • H:250 IBH1 Power — Internal Backup Heater 1 power setting
  • H:251 IBH2 Power — Internal Backup Heater 2 power setting
  • H:252 TBH Power — Tank Booster Heater power setting

Fonti