TapHome

SVC Pompa di calore

Modbus TCP
Inviato da
Ultimo aggiornamento: 06. 2026
SVC Pompa di calore

Il template SVC è un’integrazione Modbus TCP generica per una pompa di calore aria-acqua reversibile che espone sensori, selezione modalità e tre termostati (riscaldamento ambiente, raffrescamento ambiente e acqua calda sanitaria) sulla rete locale. TapHome si collega direttamente all’interfaccia Ethernet della pompa di calore — non sono richiesti cablaggio RS-485 né gateway.

L’identità del produttore non è confermata. La stringa SVC proviene dal campo <Producer> del template XML originale di TapHome e con ogni probabilità è una designazione generica/whitelabel, non un marchio di consumo. Prima di importare questo template, verificare che il controller utilizzi esattamente la mappa dei registri documentata di seguito (holding register H:0–H:34, modalità a H:30 con valori 0–6, temperatura acqua in uscita a H:8, setpoint termostati di riscaldamento/raffrescamento a H:31/H:32 con scaling ×1, setpoint termostato serbatoio a H:33 con scaling ×10). Se un qualsiasi registro non corrisponde, il template leggerà o configurerà il dispositivo in modo errato.

La mappa dei registri, l’enumerazione delle modalità e lo scaling descritti in questa pagina sono estratti direttamente dal file XML canonico di TapHome. Nessun manuale del produttore è disponibile.

Collegamento hardware

Il controller SVC utilizza il modello CCU ModbusTcpCCU, il che significa che TapHome parla Modbus TCP direttamente con l’interfaccia LAN della pompa di calore.

  • Protocollo: Modbus TCP
  • Porta: 502 (standard)
  • Tipo di registro: tutti holding register (H)
  • Tipo di dato: tutti i registri sono Int16, big-endian
  • Ordine dei byte: Modbus standard (high byte per primo)
  • Intervallo dei registri: H:0 – H:34 (i registri 9–14, 17–19, 21–23 e 27–29 non sono referenziati dal template e non è possibile presumere che siano presenti sul controller)
Requisiti di rete
  1. Collegare la porta Ethernet/LAN della pompa di calore alla stessa rete locale del TapHome Core.
  2. Assegnare alla pompa di calore un indirizzo IP stabile — configurare un IP statico sul controller o aggiungere una prenotazione DHCP sul router basata sull’indirizzo MAC. Il valore predefinito del template 192.168.0.1 è solo un segnaposto.
  3. Verificare che nessun firewall tra TapHome Core e la pompa di calore blocchi la porta TCP 502.

Il template non utilizza la discovery mDNS/Zeroconf — l’indirizzo IP della pompa di calore deve essere inserito manualmente durante l’import.

Configurazione

Abilitare la comunicazione Modbus

Poiché il produttore di questo controller è sconosciuto, qui non è documentata alcuna procedura specifica del fornitore. L’approccio generale per questa classe di controller di pompa di calore è:

  1. Accedere al menu di servizio/installatore sul pannello cablato della pompa di calore o sul display integrato (solitamente protetto da PIN).
  2. Individuare la sezione comunicazione o impostazioni di rete.
  3. Abilitare il Modbus TCP se non è attivo per impostazione predefinita.
  4. Impostare l’indirizzo IP (statico consigliato) e, se applicabile, maschera di sottorete e gateway.
  5. Confermare o impostare lo Slave (unit) ID Modbus — il valore predefinito del template è 1.
  6. Salvare le impostazioni e riavviare il controller se necessario.

Per il percorso esatto nel menu consultare il manuale di servizio fornito con l’unità. Se il Modbus TCP non è un’opzione nel menu del controller, questo template non può essere utilizzato.

Parametri di import

All’import del template in TapHome, fornire:

ParametroDescrizionePredefinito
IP AddressIP locale del controller della pompa di calore192.168.0.1
Slave IDIdentificatore Modbus dell’unità1

Prima dell’import verificare la connettività dall’host del TapHome Core eseguendo il ping sull’IP della pompa di calore e — se possibile — sondando la porta TCP 502 con uno strumento come nc o un client Modbus. Questo individua i problemi di rete prima che si manifestino come errori a livello di template.

Mappa dei registri

Il template espone i seguenti holding register. Tutti i registri sono Int16. Lo scaling della temperatura /10 significa che il valore intero grezzo viene diviso per 10 per ottenere i gradi Celsius (es. valore grezzo 23523,5 °C).

AddrNomeR/WScalingUnitàNote
H:0Out ambient tempR/10°CTemperatura aria esterna all’unità esterna
H:1Out coil tempR/10°CBatteria refrigerante esterna
H:2Discharge tempR/10°CLinea di mandata del compressore
H:3Suction tempR/10°CLinea di aspirazione del compressore
H:4In ambient temp (reversed)R/10°CSensore lato interno; la nota ‘(reversed)’ nell’XML non è spiegata
H:5Tank tempR/10°CSerbatoio ACS; utilizzato anche come sorgente temperatura attuale per il termostato ACS
H:6In coil tempR/10°CBatteria refrigerante interna
H:7In water tempR/10°CIngresso acqua allo scambiatore di calore
H:8Out water tempR/10°CUscita acqua dallo scambiatore; utilizzato anche come sorgente temperatura attuale sia per il termostato di riscaldamento che per quello di raffrescamento
H:15Output statusRrawIntero grezzo, semantica non documentata
H:16Run statusRrawIntero grezzo, semantica non documentata
H:20Main valveRrawIntero grezzo, probabilmente stato della valvola di inversione a quattro vie
H:24Power [Watt]RrawWInt16 — satura a ±32767 W
H:25Low pressure [kPa]RrawkPaPressione refrigerante lato aspirazione
H:26High pressure [kPa]RrawkPaPressione refrigerante lato mandata
H:30ModeR/WenumVedere Modalità operative di seguito
H:31Heat thermostat setpointR/W×1°CRisoluzione a gradi interi
H:32Cool thermostat setpointR/W×1°CRisoluzione a gradi interi
H:33Tank thermostat setpointR/W×10°CRisoluzione decimale — valore scritto Se*10
H:34Difference temp of restartR/Wraw°CIsteresi / differenziale di riavvio

Scaling asimmetrico dei termostati — facile da trascurare. Il termostato del serbatoio ACS (H:33) usa scaling ×10, mentre il termostato di riscaldamento (H:31) e il termostato di raffrescamento (H:32) usano scaling ×1. Significa che il setpoint ACS supporta i decimali (es. 48,5 °C), mentre i setpoint di riscaldamento/raffrescamento sono solo gradi interi. Questa asimmetria proviene dal firmware del controller, non da TapHome.

L’XML imposta IsReadOnly=False sui registri H:15, H:16, H:20, H:24, H:25 e H:26, ma per nessuno di essi è fornita una formula WriteState. Questi registri sono pertanto di fatto di sola lettura tramite il template.

Funzionalità dei dispositivi

Il template espone 20 dispositivi che coprono sensori, un selettore di modalità, tre termostati e un parametro di differenziale di riavvio.

Sensori di temperatura

Nove sensori di temperatura di sola lettura coprono il circuito frigorifero, il circuito idraulico e le condizioni ambiente:

  • Temperatura aria esterna (H:0) — temperatura dell’aria esterna all’unità esterna.
  • Temperatura batteria esterna (H:1) — batteria del refrigerante sul lato esterno (evaporatore in riscaldamento, condensatore in raffrescamento).
  • Temperatura batteria interna (H:6) — batteria del refrigerante sul lato interno (condensatore in riscaldamento, evaporatore in raffrescamento).
  • Temperatura di mandata del compressore (H:2) — refrigerante lato caldo in uscita dal compressore.
  • Temperatura di aspirazione del compressore (H:3) — refrigerante lato freddo di ritorno al compressore.
  • Temperatura aria interna (reversed) (H:4) — sensore ambientale lato interno. Il suffisso (reversed) è riportato testualmente dall’XML; senza documentazione del produttore il suo significato esatto non può essere confermato — potrebbe indicare una polarità invertita del sensore o un posizionamento rivolto verso l’interno dell’unità esterna.
  • Temperatura serbatoio ACS (H:5) — serbatoio accumulo acqua calda sanitaria. Questo registro è utilizzato anche come sorgente di temperatura attuale per il termostato ACS.
  • Temperatura acqua in ingresso (H:7) — acqua di ritorno dal circuito idraulico verso lo scambiatore.
  • Temperatura acqua in uscita (H:8) — acqua in uscita dallo scambiatore. Questo registro è utilizzato anche come sorgente di temperatura attuale per entrambi i termostati — riscaldamento e raffrescamento.

Sorgente di temperatura attuale condivisa. I registri H:5 (temperatura serbatoio) e H:8 (temperatura acqua in uscita) sono utilizzati ciascuno due volte — una come sensore autonomo e una come sorgente di temperatura attuale per un termostato. In particolare, il termostato di riscaldamento e quello di raffrescamento leggono entrambi H:8, quindi il template non può distinguere una ’temperatura attuale di zona’ separata per riscaldamento e raffrescamento. Il controller semplicemente non espone sensori di zona indipendenti.

Modalità operativa

Il selettore di modalità operativa (H:30, Read/Write) è esposto come multi-value switch con i seguenti valori:

ValoreModalitàSignificato
0Power OffPompa di calore spenta
1HeatSolo riscaldamento ambiente
2Powerful HeatBoost / riscaldamento forzato
3Tank HeatSolo ACS
4CoolSolo raffrescamento ambiente
5Heat + Tank HeatRiscaldamento ambiente combinato con ACS
6Cool + Tank HeatRaffrescamento ambiente combinato con ACS

I valori 71, 72 e 73 appaiono nell’XML come slot segnaposto con nomi in cifre grezze ("7", "8", "9") — sono riservati nel firmware e non devono essere utilizzati.

Termostati

Sono esposti tre termostati, ciascuno come dispositivo TapHome separato con il proprio setpoint e una sorgente condivisa di temperatura attuale:

  • Termostato di riscaldamento ambiente (H:31, Read/Write, scaling ×1) — setpoint a gradi interi per il riscaldamento ambiente. La temperatura attuale viene letta da H:8 (acqua in uscita).
  • Termostato di raffrescamento ambiente (H:32, Read/Write, scaling ×1) — setpoint a gradi interi per il raffrescamento ambiente. La temperatura attuale viene letta anch’essa da H:8.
  • Termostato serbatoio ACS (H:33, Read/Write, scaling ×10) — setpoint a risoluzione decimale per il serbatoio ACS. La temperatura attuale viene letta da H:5 (temperatura serbatoio). Non è disponibile alcun feedback sulla valvola (ReadValveState è fisso a 0).

La logica interna della pompa di calore decide se è attivo il setpoint di riscaldamento o di raffrescamento in base alla modalità operativa selezionata in H:30. Scrivere su un registro di setpoint non commuta da sola l’unità tra riscaldamento e raffrescamento — cambiare prima la modalità, poi regolare il setpoint corrispondente.

Potenza e pressioni del refrigerante
  • Potenza elettrica (H:24) — consumo istantaneo di potenza della pompa di calore in watt (W). Poiché il registro è Int16, il valore satura a ±32767 W; grandi unità commerciali possono superare questo intervallo.
  • Pressione lato bassa (H:25) — pressione del refrigerante lato aspirazione in kilopascal (kPa). I valori tipici R410A/R32 lato bassa si collocano nell’intervallo ~100–700 kPa.
  • Pressione lato alta (H:26) — pressione del refrigerante lato mandata in kilopascal (kPa). I valori tipici R410A/R32 lato alta si collocano nell’intervallo ~1500–4500 kPa.
Variabili di stato (grezze)

Tre registri di stato sono esposti come valori Int16 grezzi perché il produttore del controller non ha documentato bitmask o enumerazioni:

  • Output Status (H:15)
  • Run Status (H:16)
  • Stato valvola principale (H:20) — probabilmente lo stato della valvola di inversione a quattro vie (percorso del refrigerante per riscaldamento vs. raffrescamento), ma questa interpretazione non è confermata.

Questi valori possono essere monitorati per rilevare le variazioni, ma senza documentazione del produttore non possono essere tradotti in etichette comprensibili per l’utente.

Parametro di servizio
  • Differenziale di riavvio (H:34, Read/Write, intero grezzo in °C) — valore di isteresi che determina di quanti gradi al di sotto del setpoint attivo deve scendere la temperatura prima che il compressore riparta. I controller tipici di questa classe usano valori tra 1 e 15 °C, ma l’intervallo valido per questo dispositivo specifico non è stato verificato.

Risoluzione dei problemi

Nessuna comunicazione Modbus
  1. Confermare che la porta Ethernet della pompa di calore sia collegata fisicamente e abbia un link (controllare il LED di stato della rete sul controller, se presente).
  2. Verificare l’indirizzo IP — ispezionare il menu delle impostazioni di rete del controller o la tabella dei lease DHCP del router.
  3. Assicurarsi che TapHome Core e la pompa di calore si trovino nella stessa sottorete, o che il routing tra sottoreti consenta la porta TCP 502.
  4. Verificare che nessuna regola di firewall o VLAN blocchi la porta 502.
  5. Confermare che il Modbus TCP sia effettivamente abilitato nel menu di servizio del controller (alcuni controller vengono consegnati con questa funzione disabilitata per impostazione predefinita).
I valori appaiono evidentemente errati (temperature distorte, numeri impossibili)

Se le temperature vengono lette come migliaia di gradi, le pressioni come numeri minuscoli o il selettore di modalità mostra valori sconosciuti, la pompa di calore usa molto probabilmente una mappa dei registri diversa da quella attesa da questo template. L’etichetta SVC copre un controller OEM non identificato — altre pompe di calore OEM (SPRSUN/Carel, Fairland, Gree Versati, Midea/Clivet/Kaisai, LG Therma V, Aermec, Sibotherm) utilizzano layout di registri differenti. Non lasciare il template in esecuzione contro un dispositivo non corrispondente, poiché le scritture sui registri di modalità e termostato potrebbero alterare impostazioni non correlate.

Le modifiche dei setpoint appaiono ‘dimezzate’ o ‘decuplicate’

Si tratta quasi sempre di una discrepanza di scaling. Il termostato ACS (H:33) usa scaling ×10, mentre i termostati di riscaldamento (H:31) e raffrescamento (H:32) usano scaling ×1. Se vedete un setpoint applicato 10× più grande o più piccolo del previsto, confermare che state scrivendo sul termostato giusto — il template applica già lo scaling corretto per ciascun dispositivo, quindi la causa più probabile è che il firmware del controller differisca dalla mappa presunta.

I termostati di riscaldamento e raffrescamento mostrano la stessa temperatura attuale

Questo è il comportamento atteso. Sia il termostato di riscaldamento sia quello di raffrescamento leggono la temperatura attuale dal registro H:8 (acqua in uscita). Il template non può separare la „temperatura attuale della zona di riscaldamento" dalla „temperatura attuale della zona di raffrescamento" perché il controller espone un solo sensore di uscita. Se servono sensori di zona distinti, aggiungere sensori di temperatura TapHome separati (cablati direttamente a un TapHome IO).

Il valore di potenza resta fermo a 32767 o –32768

Il registro H:24 della potenza è un intero con segno a 16 bit, quindi un consumo istantaneo superiore a 32 767 W (32,77 kW) va in overflow. Riguarda solo le grandi unità commerciali — le unità residenziali rimangono tipicamente ben al di sotto di questo limite.

Dispositivi disponibili

SVC Modulo
Temperatura aria esterna Sensore di temperatura Solo lettura

Temperatura dell'aria esterna misurata all'unità esterna

Registro: H:0 Int16 Unità: °C

Temperatura aria esterna

Lettura temperatura
MODBUSR(H, 0, Int16) / 10
Modalità operativa Interruttore multivalore

Modalità operativa della pompa di calore — Spento, Riscaldamento, Riscaldamento forzato (boost), ACS (solo acqua calda sanitaria), Raffrescamento, Riscaldamento + ACS (riscaldamento combinato con ACS), Raffrescamento + ACS (raffrescamento combinato con ACS)

Registro: H:30 Int16 numeric
Valori / Stati: Power Off · Heat · Powerful Heat · Tank Heat · Cool · Heat + Tank Heat · Cool + Tank Heat

Modalità operativa

Lettura stato interruttore
MODBUSR(H, 30, Int16)
Scrittura stato interruttore
MODBUSWNE(H, 30, Int16, Mu)
Temperatura batteria esterna Sensore di temperatura Solo lettura

Temperatura della batteria del refrigerante lato esterno — evaporatore in riscaldamento, condensatore in raffrescamento

Registro: H:1 Int16 Unità: °C

Temperatura batteria esterna

Lettura temperatura
MODBUSR(H, 1, Int16) / 10
Temperatura di mandata del compressore Sensore di temperatura Solo lettura

Temperatura del refrigerante lato caldo in uscita dal compressore

Registro: H:2 Int16 Unità: °C

Temperatura di mandata del compressore

Lettura temperatura
MODBUSR(H, 2, Int16) / 10
Temperatura di aspirazione del compressore Sensore di temperatura Solo lettura

Temperatura del refrigerante lato freddo di ritorno al compressore

Registro: H:3 Int16 Unità: °C

Temperatura di aspirazione del compressore

Lettura temperatura
MODBUSR(H, 3, Int16) / 10
Temperatura aria interna Sensore di temperatura Solo lettura

Sensore ambientale lato interno — l'etichetta XML '(reversed)' suggerisce cablaggio con polarità invertita o posizionamento rivolto verso l'interno sull'unità esterna (non confermato dal produttore)

Registro: H:4 Int16 Unità: °C

Temperatura aria interna

Lettura temperatura
MODBUSR(H, 4, Int16) / 10
Temperatura serbatoio ACS Sensore di temperatura Solo lettura

Temperatura del serbatoio accumulo acqua calda sanitaria — utilizzata anche come sorgente di temperatura attuale per il termostato ACS

Registro: H:5 Int16 Unità: °C

Temperatura serbatoio ACS

Lettura temperatura
MODBUSR(H, 5, Int16) / 10
Temperatura batteria interna Sensore di temperatura Solo lettura

Temperatura della batteria del refrigerante lato interno — condensatore in riscaldamento, evaporatore in raffrescamento

Registro: H:6 Int16 Unità: °C

Temperatura batteria interna

Lettura temperatura
MODBUSR(H, 6, Int16) / 10
Temperatura acqua in ingresso Sensore di temperatura Solo lettura

Temperatura dell'acqua in ingresso allo scambiatore della pompa di calore (ritorno dal circuito idraulico)

Registro: H:7 Int16 Unità: °C

Temperatura acqua in ingresso

Lettura temperatura
MODBUSR(H, 7, Int16) / 10
Temperatura acqua in uscita Sensore di temperatura Solo lettura

Temperatura dell'acqua in uscita dallo scambiatore della pompa di calore — utilizzata anche come sorgente di temperatura attuale sia per il termostato di riscaldamento che per quello di raffrescamento

Registro: H:8 Int16 Unità: °C

Temperatura acqua in uscita

Lettura temperatura
MODBUSR(H, 8, Int16) / 10
Output Status Variabile Solo lettura

Valore grezzo di output status — il produttore non documenta la bitmask o la semantica enum, quindi il valore viene esposto così com'è

Registro: H:15 Int16 raw-int-value

Output Status

Lettura
MODBUSR(H, 15, Int16)
Run Status Variabile Solo lettura

Valore grezzo di run status — il produttore non documenta la bitmask o la semantica enum, quindi il valore viene esposto così com'è

Registro: H:16 Int16 raw-int-value

Run Status

Lettura
MODBUSR(H, 16, Int16)
Stato valvola principale Variabile Solo lettura

Stato grezzo della valvola principale — probabilmente la valvola di inversione a quattro vie che commuta tra i percorsi del refrigerante per riscaldamento e raffrescamento (interpretazione non confermata)

Registro: H:20 Int16 raw-int-value

Stato valvola principale

Lettura
MODBUSR(H, 20, Int16)
Potenza elettrica Variabile Solo lettura

Consumo istantaneo di potenza elettrica della pompa di calore in watt — satura a ±32767 W perché il registro è un intero a 16 bit con segno

Registro: H:24 Int16 Unità: W

Potenza elettrica

Lettura
MODBUSR(H, 24, Int16)
Pressione lato bassa Variabile Solo lettura

Pressione del refrigerante lato aspirazione (lato a bassa pressione del circuito frigorifero) in kilopascal

Registro: H:25 Int16 Unità: kPa

Pressione lato bassa

Lettura
MODBUSR(H, 25, Int16)
Pressione lato alta Variabile Solo lettura

Pressione del refrigerante lato mandata (lato ad alta pressione del circuito frigorifero) in kilopascal

Registro: H:26 Int16 Unità: kPa

Pressione lato alta

Lettura
MODBUSR(H, 26, Int16)
Termostato serbatoio ACS Termostato

Setpoint per il serbatoio accumulo acqua calda sanitaria — risoluzione decimale (scaling ×10), temperatura attuale letta dal sensore del serbatoio ACS

Registro: H:33 Int16 Unità: °C

Termostato serbatoio ACS

Lettura temperatura
MODBUSR(H, 5, Int16) / 10
Lettura temperatura desiderata
MODBUSR(H, 33, Int16) / 10
Scrittura temperatura desiderata
MODBUSWNE(H, 33, Int16, Se * 10)
Lettura stato valvola
0
Termostato di riscaldamento ambiente Termostato

Setpoint per il riscaldamento ambiente — risoluzione a gradi interi (scaling ×1), temperatura attuale letta dal sensore di uscita acqua e condivisa con il termostato di raffrescamento

Registro: H:31 Int16 Unità: °C

Termostato di riscaldamento ambiente

Lettura temperatura
MODBUSR(H, 8, Int16) / 10
Lettura temperatura desiderata
MODBUSR(H, 31, Int16)
Scrittura temperatura desiderata
MODBUSWNE(H, 31, Int16, Se)
Termostato di raffrescamento ambiente Termostato

Setpoint per il raffrescamento ambiente — risoluzione a gradi interi (scaling ×1), temperatura attuale letta dal sensore di uscita acqua e condivisa con il termostato di riscaldamento

Registro: H:32 Int16 Unità: °C

Termostato di raffrescamento ambiente

Lettura temperatura
MODBUSR(H, 8, Int16) / 10
Lettura temperatura desiderata
MODBUSR(H, 32, Int16)
Scrittura temperatura desiderata
MODBUSWNE(H, 32, Int16, Se)
Differenziale di riavvio Variabile

Valore di isteresi — di quanti gradi al di sotto del setpoint attivo deve scendere la temperatura prima che il compressore riparta

Registro: H:34 Int16 Unità: °C

Differenziale di riavvio

Lettura
MODBUSR(H, 34, Int16)
Scrittura
MODBUSWNE(H, 34, Int16, Va)
Connessione: Modbus TCP • Slave ID: $[SlaveId]

Fonti

  • TapHome Official Modbus Template (SVC.xml)
    github.com 2026-04-24

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