
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
SVCproviene 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 registerH:0–H:34, modalità aH:30con valori0–6, temperatura acqua in uscita aH:8, setpoint termostati di riscaldamento/raffrescamento aH:31/H:32con scaling ×1, setpoint termostato serbatoio aH:33con 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
- Collegare la porta Ethernet/LAN della pompa di calore alla stessa rete locale del TapHome Core.
- 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. - 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 è:
- Accedere al menu di servizio/installatore sul pannello cablato della pompa di calore o sul display integrato (solitamente protetto da PIN).
- Individuare la sezione comunicazione o impostazioni di rete.
- Abilitare il Modbus TCP se non è attivo per impostazione predefinita.
- Impostare l’indirizzo IP (statico consigliato) e, se applicabile, maschera di sottorete e gateway.
- Confermare o impostare lo Slave (unit) ID Modbus — il valore predefinito del template è
1. - 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:
| Parametro | Descrizione | Predefinito |
|---|---|---|
| IP Address | IP locale del controller della pompa di calore | 192.168.0.1 |
| Slave ID | Identificatore 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
nco 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 235 → 23,5 °C).
| Addr | Nome | R/W | Scaling | Unità | Note |
|---|---|---|---|---|---|
| H:0 | Out ambient temp | R | /10 | °C | Temperatura aria esterna all’unità esterna |
| H:1 | Out coil temp | R | /10 | °C | Batteria refrigerante esterna |
| H:2 | Discharge temp | R | /10 | °C | Linea di mandata del compressore |
| H:3 | Suction temp | R | /10 | °C | Linea di aspirazione del compressore |
| H:4 | In ambient temp (reversed) | R | /10 | °C | Sensore lato interno; la nota ‘(reversed)’ nell’XML non è spiegata |
| H:5 | Tank temp | R | /10 | °C | Serbatoio ACS; utilizzato anche come sorgente temperatura attuale per il termostato ACS |
| H:6 | In coil temp | R | /10 | °C | Batteria refrigerante interna |
| H:7 | In water temp | R | /10 | °C | Ingresso acqua allo scambiatore di calore |
| H:8 | Out water temp | R | /10 | °C | Uscita acqua dallo scambiatore; utilizzato anche come sorgente temperatura attuale sia per il termostato di riscaldamento che per quello di raffrescamento |
| H:15 | Output status | R | raw | — | Intero grezzo, semantica non documentata |
| H:16 | Run status | R | raw | — | Intero grezzo, semantica non documentata |
| H:20 | Main valve | R | raw | — | Intero grezzo, probabilmente stato della valvola di inversione a quattro vie |
| H:24 | Power [Watt] | R | raw | W | Int16 — satura a ±32767 W |
| H:25 | Low pressure [kPa] | R | raw | kPa | Pressione refrigerante lato aspirazione |
| H:26 | High pressure [kPa] | R | raw | kPa | Pressione refrigerante lato mandata |
| H:30 | Mode | R/W | enum | — | Vedere Modalità operative di seguito |
| H:31 | Heat thermostat setpoint | R/W | ×1 | °C | Risoluzione a gradi interi |
| H:32 | Cool thermostat setpoint | R/W | ×1 | °C | Risoluzione a gradi interi |
| H:33 | Tank thermostat setpoint | R/W | ×10 | °C | Risoluzione decimale — valore scritto Se*10 |
| H:34 | Difference temp of restart | R/W | raw | °C | Isteresi / 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=Falsesui registriH:15,H:16,H:20,H:24,H:25eH:26, ma per nessuno di essi è fornita una formulaWriteState. 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) eH: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 entrambiH: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:
| Valore | Modalità | Significato |
|---|---|---|
| 0 | Power Off | Pompa di calore spenta |
| 1 | Heat | Solo riscaldamento ambiente |
| 2 | Powerful Heat | Boost / riscaldamento forzato |
| 3 | Tank Heat | Solo ACS |
| 4 | Cool | Solo raffrescamento ambiente |
| 5 | Heat + Tank Heat | Riscaldamento ambiente combinato con ACS |
| 6 | Cool + Tank Heat | Raffrescamento 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 daH: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 daH:8. - Termostato serbatoio ACS (
H:33, Read/Write, scaling ×10) — setpoint a risoluzione decimale per il serbatoio ACS. La temperatura attuale viene letta daH:5(temperatura serbatoio). Non è disponibile alcun feedback sulla valvola (ReadValveStateè fisso a0).
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
- 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).
- Verificare l’indirizzo IP — ispezionare il menu delle impostazioni di rete del controller o la tabella dei lease DHCP del router.
- 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.
- Verificare che nessuna regola di firewall o VLAN blocchi la porta 502.
- 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.