TapHome

Midea M-Thermal Pompa di calore

Modbus RTU
Inviato da
Ultimo aggiornamento: 09. 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, i termostati ACS e zona 1, i sensori di temperatura, i contatti di stato di sbrinamento e resistenza di riserva, i contatori di energia cumulativi, 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 (pompa di calore) (H:0 bit 1) — abilita o disabilita il riscaldamento degli ambienti tramite pompa di calore
  • ACS (H:0 bit 2) — abilita o disabilita la funzione di produzione acqua calda sanitaria

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

La disinfezione del serbatoio ACS è esposta due volte: Stato disinfezione legge H:5 bit 4 come contatto di sola lettura e accanto compare un interruttore Disinfezione.

L’interruttore Disinfezione non ha alcuna formula di lettura o scrittura nel template attuale — viene visualizzato nell’app ma non avvia né arresta il ciclo di disinfezione. Per sapere se il ciclo è in corso, usare Stato disinfezione.

Contatti di stato

Tre contatti di sola lettura espongono i bit delle parole di stato della pompa di calore:

  • Sbrinamento (H:128 bit 1) — l’unità esterna sta eseguendo un ciclo di sbrinamento
  • Resistenza a immersione IBH1 (3 kW) (H:129 bit 0) — la resistenza di riserva interna da 3 kW è alimentata
  • Valvola a 3 vie SV1 (H:129 bit 4) — la valvola SV1 devia l’acqua di riscaldamento verso la serpentina del serbatoio ACS
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.

Termostato zona 1

Temperatura acqua zona 1 legge e scrive il byte basso di H:2, ovvero la temperatura acqua target del circuito di riscaldamento della zona 1. Il registro riunisce due valori in una sola parola, quindi il template scrive il byte basso con SETBYTE e lascia intatto il byte alto. Non esiste un registro separato per la temperatura attuale — come valore attuale viene riletto il byte di setpoint.

Monitoraggio temperature

Il template fornisce sei 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
  • Sensore temperatura ACS (H:115) — temperatura del serbatoio di acqua calda sanitaria (sonda T5) come semplice sensore di sola lettura, la stessa sonda letta dal termostato ACS
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)
Contatori di energia
  • Consumo elettrico totale (H:144) — consumo elettrico cumulativo della pompa di calore in kWh
  • Produzione di calore (H:146) — energia termica cumulativa erogata dalla pompa di calore in kWh

Entrambi i contatori sono documentati nella mappa dei registri della community come valori Int32 su due registri (H:143–H:144 e H:145–H:146). Il template legge solo la parola bassa, quindi le letture vanno in overflow a 32767 kWh.

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 un attributo di servizio:

  • Versione software (H:130) — numero di versione firmware della pompa di calore
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 frequenza target del compressore e i bit rimanenti delle parole di stato (H:128, H:129). 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
Versione softwarereads H:130 (UInt16); heat pump firmware version number
Software version

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
Consumo elettrico totale Contatore elettrico Solo lettura

Consumo elettrico cumulativo della pompa di calore in kWh (H:144)

Registro: H:144 Int16 Unità: kWh numeric

Consumo elettrico totale

Lettura consumo totale
MODBUSR(H, 144, Int16)
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
Sbrinamento Contatto reed Solo lettura

Indica se l'unità esterna sta eseguendo un ciclo di sbrinamento (H:128 bit 1)

Registro: H:128 Bool (bit 1) bitfield

Sbrinamento

Lettura
GETBIT(MODBUSR(H, 128, Int16),1)
Stato disinfezione Contatto reed Solo lettura

Indica se è in corso il ciclo di disinfezione anti-legionella (H:5 bit 4)

Registro: H:5 Bool (bit 4) bitfield

Stato disinfezione

Lettura
GETBIT(MODBUSR(H, 5, Int16),4)
Disinfezione Interruttore

Ciclo di disinfezione anti-legionella per il serbatoio ACS

Bool bitfield
Valori / Stati: ON · OFF
Frequenza compressore Variabile Solo lettura
Registro: H:100 Int16 Unità: Hz numeric

Frequenza compressore

Lettura
MODBUSR(H, 100, Int16)
Resistenza a immersione IBH1 (3 kW) Contatto reed Solo lettura

Indica se la resistenza di riserva interna da 3 kW è alimentata (H:129 bit 0)

Registro: H:129 Bool (bit 0) bitfield

Resistenza a immersione IBH1 (3 kW)

Lettura
GETBIT(MODBUSR(H, 129, Int16),0)
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 (pompa di calore) Interruttore

Abilita o disabilita il riscaldamento degli ambienti tramite pompa di calore

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

Riscaldamento (pompa di calore)

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)
Produzione di calore Contatore elettrico Solo lettura

Energia termica cumulativa erogata dalla pompa di calore in kWh (H:146)

Registro: H:146 Int16 Unità: kWh numeric

Produzione di calore

Lettura consumo totale
MODBUSR(H, 146, 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)
Valvola a 3 vie SV1 Contatto reed Solo lettura

Indica se la valvola SV1 devia l'acqua di riscaldamento verso il serbatoio ACS (H:129 bit 4)

Registro: H:129 Bool (bit 4) bitfield

Valvola a 3 vie SV1

Lettura
GETBIT(MODBUSR(H, 129, Int16),4)
Sensore temperatura ACS Sensore di temperatura Solo lettura

Temperatura del serbatoio ACS come sensore di sola lettura — sonda T5 (H:115)

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

Sensore temperatura ACS

Lettura temperatura
MODBUSR(H, 115, Int16)
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
Valori / Stati: ON · OFF

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
Temperatura acqua zona 1 Termostato

Temperatura acqua target del circuito di riscaldamento zona 1 — byte basso di H:2

Registro: H:2 (low byte)H:2 (low byte) Int16 (low byte) Unità: °C packed-byte

Temperatura acqua zona 1

Lettura temperatura
MODBUSR(H, 2, Int16) & 0xFF
Scrittura temperatura desiderata
MODBUSW(H, 2, Int16, SETBYTE(MODBUSR(H, 2, UInt16), 0, Se))
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 — remaining bits — System status bit field. Bit 1 is implemented as the Defrosting contact; the other status bits are not exposed
  • H:129 Load Output — remaining bits — Load output bit field. Bit 0 is implemented as the IBH1 immersion heater contact and bit 4 as the SV1 3-way valve contact; the other load bits are not exposed
  • H:132 Target Frequency — Requested compressor speed — useful to compare against actual frequency (H:100)
  • H:143 (high word) Electricity Consumption — high word — The counter is Int32 across H:143–H:144. The template implements the low word only (Total Electricity Consumption); the high word is not read, so readings wrap at 32767 kWh
  • H:145 (high word) Power Output — high word — The counter is Int32 across H:145–H:146. The template implements the low word only (Heat Production); the high word is not read, so readings wrap at 32767 kWh
  • 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

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Verificato da TapHome

Vuoi usarlo nel tuo TapHome Core?

Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo.

Apri nel portale