---
title: "Sistema Sistema-Home 4..18(T)"
description: "Controllo riscaldamento/raffrescamento, ACS e setpoint, monitoraggio temperature, pressioni, portata e 80+ codici errore via Modbus RTU."
url: "https://taphome.com/it/compatibility/sistema-home-418t/"
language: it
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","heat-pump","rs485","dual-circuit","dhw"]
  questions: ["Come integrare la pompa di calore Sistema-Home 4..18(T) con TapHome?","Cosa monitora e controlla il template Sistema-Home 4..18(T) di TapHome?","Come collegare la pompa di calore Sistema-Home via RS-485 a TapHome?","Come cambiare la modalità operativa della pompa di calore Sistema-Home via Modbus?","Quali codici errore segnala il template Sistema-Home 4..18(T)?","Come impostare la temperatura ACS sulla pompa di calore Sistema-Home da remoto?"]
---

# Sistema Sistema-Home 4..18(T)

Comunicazione: Modbus RTU

## Guida all'integrazione

La Sistema-Home 4..18(T) è una pompa di calore a doppio circuito che comunica tramite Modbus RTU (RS-485). Il template TapHome fornisce il controllo della modalità operativa con modalità di riscaldamento, raffrescamento e ACS, la regolazione dei setpoint per i circuiti di riscaldamento e raffrescamento, il setpoint della temperatura ACS e il monitoraggio completo delle temperature dell'acqua, delle pressioni del refrigerante, delle velocità di ventilatore e pompa e della portata d'acqua. Il template segnala inoltre 80+ codici errore dal controllore della pompa di calore tramite registri a campi di bit.

Il controllore è probabilmente basato su una piattaforma CAREL pCO (tipica per le pompe di calore OEM italiane). La mappa dei registri è proprietaria e tutte le informazioni tecniche in questo template provengono esclusivamente dal template XML — dal produttore non è disponibile alcuna documentazione pubblica.

## Collegamento hardware

La Sistema-Home 4..18(T) si collega a TapHome tramite un gateway Modbus RTU CCU utilizzando un bus seriale RS-485. I parametri di comunicazione predefiniti sono 9600 baud, 8 bit di dati, parità pari, 1 bit di stop, Slave ID 1.

Collegare il cablaggio RS-485 tra la porta Modbus della pompa di calore e il TapHome Modbus RTU CCU:

- **A+** sulla pompa di calore → **A+/D+** su TapHome RS-485
- **B-** sulla pompa di calore → **B-/D-** su TapHome RS-485
- **GND** → **GND** (obbligatorio per una comunicazione affidabile)

> [!WARNING]
> Il conduttore GND deve essere collegato tra la pompa di calore e il gateway TapHome. Senza una corretta messa a terra, gli errori di comunicazione Modbus sono probabili, specialmente su tratte di cavo più lunghe.

## Configurazione

### Abilitazione scrittura remota

Il template abilita automaticamente l'accesso in scrittura remota ad ogni ciclo di polling impostando il bit 0 del registro H:7201. Ciò significa che la pompa di calore accetta modifiche di setpoint e modalità da TapHome non appena il template viene importato — non è necessaria alcuna configurazione manuale di questo registro.

### Parametri di comunicazione

Verificare che le seguenti impostazioni corrispondano tra la pompa di calore e TapHome:

| Parametro | Valore |
|-----------|--------|
| Baud rate | 9600 |
| Bit di dati | 8 |
| Parità | Pari |
| Bit di stop | 1 |
| Slave ID | 1 (predefinito) |

Se lo Slave ID sulla pompa di calore differisce da 1, aggiornare il parametro di importazione Slave ID in TapHome.

## Funzionalità dei dispositivi

### Controllo modalità operativa

Il dispositivo **Active Mode** seleziona la modalità operativa della pompa di calore. Modalità disponibili:

| Valore | Modalità | Descrizione |
|--------|----------|-------------|
| 0 | Stand by | Pompa di calore in attesa |
| 1 | Cool | Solo raffrescamento |
| 2 | Heat | Solo riscaldamento |
| 4 | Sanitary | Solo produzione ACS |
| 5 | Cool+DHW | Raffrescamento con ACS |
| 6 | Heat+DHW | Riscaldamento con ACS |

I valori delle modalità 3, 7, 8 e 9 sono definiti nel template ma non hanno nomi significativi — appaiono come cifre segnaposto e potrebbero essere riservati o inutilizzati su questa variante del controllore.

Un'azione di servizio **DHW (Sanitary) Setpoint** sul dispositivo Active Mode permette di impostare la temperatura target dell'acqua calda sanitaria (intervallo 25–55 °C).

### Controllo setpoint

Due dispositivi termostato controllano i setpoint di riscaldamento e raffrescamento:

- **Heat Setpoint** — lettura/scrittura del setpoint di riscaldamento (H:1002). La temperatura di riferimento attuale è il sensore del serbatoio di miscelazione (H:440).
- **Cool Setpoint** — lettura/scrittura del setpoint di raffrescamento (H:1001). Utilizza la stessa temperatura del serbatoio di miscelazione come valore attuale.

Entrambi i setpoint utilizzano una conversione ×10 (es. valore registro 350 = 35,0 °C).

### Monitoraggio temperature

Sei sensori di temperatura forniscono il monitoraggio termico attraverso il sistema:

- **Outside Temperature** — temperatura esterna (H:428, polling ogni 30 s)
- **Plant Temperature (Mixing Tank)** — temperatura del serbatoio di accumulo/miscelazione (H:440), utilizzata anche come temperatura di riferimento attuale per entrambi i termostati
- **Water Inlet Temperature** — temperatura dell'acqua in ingresso allo scambiatore di calore (H:400)
- **Water Outlet Temperature** — temperatura dell'acqua in uscita dallo scambiatore di calore (H:401)
- **DHW Temperature** — temperatura del serbatoio dell'acqua calda sanitaria (H:405), con rilevamento guasti (segnala un avviso se il sensore legge "Not configured" o "Fault")
- **Compressor Discharge Temperature** — temperatura di mandata del compressore 1 (H:433), con 7 attributi di servizio che coprono le temperature di mandata dei compressori di entrambi i circuiti del refrigerante e la temperatura di aspirazione del compressore del circuito 2

> [!NOTE]
> Il dispositivo del template denominato "Compressor inhalation" legge in realtà il registro H:433, che secondo la mappa dei registri corrisponde alla mandata del compressore 1. Il registro effettivo di aspirazione del compressore (H:422) non è esposto come dispositivo primario. Il nome visualizzato in TapHome riflette la funzione corretta (Compressor Discharge Temperature).

### Monitoraggio pressioni del refrigerante

Due sensori di pressione monitorano i circuiti del refrigerante:

- **High Pressure** — pressione lato alta del refrigerante in bar (H:406), con attributo di servizio per il circuito 2 (H:20406)
- **Low Pressure** — pressione lato bassa del refrigerante in bar (H:414), con attributo di servizio per il circuito 2 (H:20414)

### Velocità ventilatore e pompa

- **Fan Speed** — velocità del ventilatore in sola lettura in percentuale (H:7000, conversione ÷1000)
- **Pump Speed** — velocità della pompa di circolazione in sola lettura in percentuale (H:7001, conversione ÷1000)

### Portata d'acqua

Il sensore **Water Flow Rate** misura la portata d'acqua del sistema in l/min (H:444). Include il rilevamento guasti — viene generato un avviso se il sensore segnala "Not configured" (32766) o "Fault" (32767).

> [!WARNING]
> L'attributo di servizio dello stato Water Flow Rate legge il registro H:405 (il registro della temperatura ACS) anziché H:444. Questo sembra essere un errore del template — lo stato potrebbe non riflettere accuratamente la condizione del sensore di portata.

### Monitoraggio tempo di funzionamento del compressore

Sei attributi di servizio a livello di modulo tracciano le ore di funzionamento dei compressori:

- **Compressor 1/2/3 Runtime** — ore cumulative per i compressori del circuito 1 (H:305, H:307, H:309)
- **Compressor 1/2/3 Runtime (Circuit 2)** — ore cumulative per i compressori del circuito 2 (H:313, H:315, H:317)

### Monitoraggio errori

Il ReadScript del modulo monitora i registri da H:950 a H:956 (7 registri a campi di bit) e segnala 80+ codici di errore e avviso distinti. Principali categorie di errore:

- **Guasti del circuito refrigerante** — alta pressione (E001), bassa pressione (E002), gelo (E005)
- **Protezione termica** — compressore (E003, E013, E023), ventilatore (E004, E014, E024), pompa (E016, E026)
- **Guasti di temperatura** — alta temperatura di mandata (E009, E019, E029), sovratemperatura (E018), temperature incoerenti (E041)
- **Guasti ACS** — scarso scambio termico (E042), surriscaldamento del serbatoio di accumulo (E050), stato anti-legionella (E060/E061)
- **Errori sensori** — errori sonda per fino a 11 sonde su 3 moduli I/O (E611–E713)
- **Guasti inverter** — errori di comunicazione, guasti hardware, sovracorrente, surriscaldamento, guasti di tensione, errori di sequenza fasi, errori EEPROM per fino a 3 inverter (E801–E973)
- **Guasti modulo I/O** — modulo 1/2 disconnesso (E101, E102)

### Funzionalità aggiuntive

Il controllore della pompa di calore espone anche un registro della temperatura di aspirazione del compressore (H:422) e un flag di abilitazione alla scrittura remota (H:7201) che viene gestito automaticamente dal template. Questi possono essere aggiunti come dispositivi autonomi in un futuro aggiornamento del template se è necessario il monitoraggio diretto della temperatura di aspirazione.

## Risoluzione dei problemi

### Nessuna comunicazione Modbus

1. Verificare il cablaggio RS-485 — A+ su A+, B- su B-, GND collegato
2. Confermare i parametri di comunicazione: 9600 baud, 8E1, Slave ID 1
3. Controllare la lunghezza del cavo e la terminazione — per tratte lunghe, potrebbe essere necessaria una resistenza di terminazione da 120 ohm sull'ultimo dispositivo del bus
4. Assicurarsi che l'interfaccia Modbus sul controllore della pompa di calore sia abilitata (consultare il menu del controllore in loco)

### Sensori che mostrano avviso "Not configured"

I registri che restituiscono il valore speciale 32766 indicano un sensore non cablato o non configurato sul controllore della pompa di calore. Ciò è previsto per i sensori opzionali (es. sonda ACS su unità senza serbatoio ACS). L'avviso può essere confermato in TapHome.

### Le modifiche di modalità non hanno effetto

1. Verificare che il dispositivo Active Mode mostri la modalità prevista dopo la scrittura — il registro di lettura (H:200) e il registro di scrittura (H:7200) sono separati, quindi potrebbe verificarsi un breve ritardo
2. Controllare se è attiva una forzatura locale o un blocco sul controllore della pompa di calore
3. Il flag di abilitazione alla scrittura remota (H:7201 bit 0) viene impostato automaticamente dal template — se la comunicazione è stata interrotta, verrà riabilitato al prossimo ciclo di polling

## Dispositivi disponibili 14

Questi dispositivi compaiono in TapHome dopo l'importazione.

Sistema-Home 4..18(T) Modulo

Attributi di servizio

|                                                   |
|---------------------------------------------------|
| Tempo di funzionamento compressore 1              |
| Tempo di funzionamento compressore 2              |
| Tempo di funzionamento compressore 3              |
| Tempo di funzionamento compressore 1 (circuito 2) |
| Tempo di funzionamento compressore 2 (circuito 2) |
| Tempo di funzionamento compressore 3 (circuito 2) |

Lettura (modulo)

```taphome
#Enablement of writing the machine status remotely
var mod := MODBUSR(H, 7201, UINT16);
if(getbit(mod, 0) = 0, MODBUSW(H, 7201, Uint16, SETBIT(mod, 0, 1)));
#Errors
IF(GETBIT(MODBUSR(H, 950, Uint16),0)=1, ADDERROR("High pressure", "E001"));
IF(GETBIT(MODBUSR(H, 950, Uint16),1)=1, ADDERROR("Low pressure", "E002"));
IF(GETBIT(MODBUSR(H, 950, Uint16),2)=1, ADDERROR("Compressor thermal protection", "E003"));
IF(GETBIT(MODBUSR(H, 950, Uint16),3)=1, ADDERROR("Fan thermal protection", "E004"));
IF(GETBIT(MODBUSR(H, 950, Uint16),4)=1, ADDERROR("Frost", "E005"));
IF(GETBIT(MODBUSR(H, 950, Uint16),5)=1, ADDERROR("Lack of flow", "E006"));
IF(GETBIT(MODBUSR(H, 950, Uint16),6)=1, ADDERROR("DHW preparer low temperature", "E007"));
IF(GETBIT(MODBUSR(H, 950, Uint16),7)=1, ADDERROR("Lack of lubrication", "E008"));
IF(GETBIT(MODBUSR(H, 950, Uint16),8)=1, ADDERROR("High discharge temperature of Cp1", "E009"));
IF(GETBIT(MODBUSR(H, 950, Uint16),9)=1, ADDERROR("Solar collector at high temperature", "E010"));
IF(GETBIT(MODBUSR(H, 950, Uint16),12)=1, ADDERROR("Compressor 2 thermal protection", "E013"));
IF(GETBIT(MODBUSR(H, 950, Uint16),13)=1, ADDERROR("Fan 2 thermal protection", "E014"));
IF(GETBIT(MODBUSR(H, 950, Uint16),15)=1, ADDERROR("Pump thermal protection", "E016"));

IF(GETBIT(MODBUSR(H, 951, Uint16),1)=1, ADDERROR("High temperature", "E018"));
IF(GETBIT(MODBUSR(H, 951, Uint16),2)=1, ADDERROR("High discharge temperature of Cp2", "E019"));
IF(GETBIT(MODBUSR(H, 951, Uint16),3)=1, ADDERROR("Inverted pressure transcuders", "E020"));
IF(GETBIT(MODBUSR(H, 951, Uint16),6)=1, ADDERROR("Compressor 3 thermal protection", "E023"));
IF(GETBIT(MODBUSR(H, 951, Uint16),7)=1, ADDERROR("Fan 3 thermal protection", "E024"));
IF(GETBIT(MODBUSR(H, 951, Uint16),9)=1, ADDERROR("Pump 2 thermal protection", "E026"));
IF(GETBIT(MODBUSR(H, 951, Uint16),11)=1, ADDERROR("Incongruent temperatures", "E041"));
IF(GETBIT(MODBUSR(H, 951, Uint16),12)=1, ADDERROR("Poor heat exchange DHW", "E042"));
IF(GETBIT(MODBUSR(H, 951, Uint16),13)=1, ADDERROR("DHW accumulation tank in high temperature", "E050"));
IF(GETBIT(MODBUSR(H, 951, Uint16),14)=1, ADDERROR("I/O module 1 disconnected", "E101"));
IF(GETBIT(MODBUSR(H, 951, Uint16),15)=1, ADDERROR("I/O module 2 disconnected", "E102"));

IF(GETBIT(MODBUSR(H, 952, Uint16),0)=1, ADDERROR("Probe 1 error", "E611"));
IF(GETBIT(MODBUSR(H, 952, Uint16),1)=1, ADDERROR("Probe 2 error", "E621"));
IF(GETBIT(MODBUSR(H, 952, Uint16),2)=1, ADDERROR("Probe 3 error", "E631"));
IF(GETBIT(MODBUSR(H, 952, Uint16),3)=1, ADDERROR("Probe 4 error", "E641"));
IF(GETBIT(MODBUSR(H, 952, Uint16),4)=1, ADDERROR("Probe 5 error", "E651"));
IF(GETBIT(MODBUSR(H, 952, Uint16),5)=1, ADDERROR("Probe 6 error", "E661"));
IF(GETBIT(MODBUSR(H, 952, Uint16),6)=1, ADDERROR("Probe 7 error", "E671"));
IF(GETBIT(MODBUSR(H, 952, Uint16),7)=1, ADDERROR("Probe 8 error", "E681"));
IF(GETBIT(MODBUSR(H, 952, Uint16),8)=1, ADDERROR("Probe 9 error", "E691"));
IF(GETBIT(MODBUSR(H, 952, Uint16),9)=1, ADDERROR("Probe 10 error", "E701"));
IF(GETBIT(MODBUSR(H, 952, Uint16),10)=1, ADDERROR("Probe 11 error", "E711"));
IF(GETBIT(MODBUSR(H, 952, Uint16),11)=1, ADDERROR("Module 1 probe 1 error", "E612"));
IF(GETBIT(MODBUSR(H, 952, Uint16),12)=1, ADDERROR("Module 1 probe 2 error", "E622"));
IF(GETBIT(MODBUSR(H, 952, Uint16),13)=1, ADDERROR("Module 1 probe 3 error", "E632"));
IF(GETBIT(MODBUSR(H, 952, Uint16),14)=1, ADDERROR("Module 1 probe 4 error", "E642"));
IF(GETBIT(MODBUSR(H, 952, Uint16),15)=1, ADDERROR("Module 1 probe 5 error", "E652"));

IF(GETBIT(MODBUSR(H, 953, Uint16),0)=1, ADDERROR("Module 1 probe 6 error", "E662"));
IF(GETBIT(MODBUSR(H, 953, Uint16),1)=1, ADDERROR("Module 1 probe 7 error", "E672"));
IF(GETBIT(MODBUSR(H, 953, Uint16),2)=1, ADDERROR("Module 1 probe 8 error", "E682"));
IF(GETBIT(MODBUSR(H, 953, Uint16),3)=1, ADDERROR("Module 1 probe 9 error", "E692"));
IF(GETBIT(MODBUSR(H, 953, Uint16),4)=1, ADDERROR("Module 1 probe 10 error", "E702"));
IF(GETBIT(MODBUSR(H, 953, Uint16),5)=1, ADDERROR("Module 1 probe 11 error", "E712"));
IF(GETBIT(MODBUSR(H, 953, Uint16),6)=1, ADDERROR("Module 2 probe 1 error", "E613"));
IF(GETBIT(MODBUSR(H, 953, Uint16),7)=1, ADDERROR("Module 2 probe 2 error", "E623"));
IF(GETBIT(MODBUSR(H, 953, Uint16),8)=1, ADDERROR("Module 2 probe 3 error", "E633"));
IF(GETBIT(MODBUSR(H, 953, Uint16),9)=1, ADDERROR("Module 2 probe 4 error", "E643"));
IF(GETBIT(MODBUSR(H, 953, Uint16),10)=1, ADDERROR("Module 2 probe 5 error", "E653"));
IF(GETBIT(MODBUSR(H, 953, Uint16),11)=1, ADDERROR("Module 2 probe 6 error", "E663"));
IF(GETBIT(MODBUSR(H, 953, Uint16),12)=1, ADDERROR("Module 2 probe 7 error", "E673"));
IF(GETBIT(MODBUSR(H, 953, Uint16),13)=1, ADDERROR("Module 2 probe 8 error", "E683"));
IF(GETBIT(MODBUSR(H, 953, Uint16),14)=1, ADDERROR("Module 2 probe 9 error", "E693"));
IF(GETBIT(MODBUSR(H, 953, Uint16),15)=1, ADDERROR("Module 2 probe 10 error", "E703"));

IF(GETBIT(MODBUSR(H, 954, Uint16),0)=1, ADDERROR("Module 2 probe 11 error", "E713"));
IF(GETBIT(MODBUSR(H, 954, Uint16),1)=1, ADDERROR("Link inverter 1", "E801"));
IF(GETBIT(MODBUSR(H, 954, Uint16),2)=1, ADDERROR("Link inverter 2", "E802"));
IF(GETBIT(MODBUSR(H, 954, Uint16),3)=1, ADDERROR("Link inverter 3", "E803"));
IF(GETBIT(MODBUSR(H, 954, Uint16),4)=1, ADDERROR("Hardware fault inverter 1", "E851"));
IF(GETBIT(MODBUSR(H, 954, Uint16),5)=1, ADDERROR("Hardware fault inverter 2", "E852"));
IF(GETBIT(MODBUSR(H, 954, Uint16),6)=1, ADDERROR("Hardware fault inverter 3", "E853"));
IF(GETBIT(MODBUSR(H, 954, Uint16),7)=1, ADDERROR("Overcurrent inverter 1", "E861"));
IF(GETBIT(MODBUSR(H, 954, Uint16),8)=1, ADDERROR("Overcurrent inverter 2", "E862"));
IF(GETBIT(MODBUSR(H, 954, Uint16),9)=1, ADDERROR("Overcurrent inverter 3", "E863"));
IF(GETBIT(MODBUSR(H, 954, Uint16),10)=1, ADDERROR("High temperature inverter 1", "E871"));
IF(GETBIT(MODBUSR(H, 954, Uint16),11)=1, ADDERROR("High temperature inverter 2", "E872"));
IF(GETBIT(MODBUSR(H, 954, Uint16),12)=1, ADDERROR("High temperature inverter 3", "E873"));
IF(GETBIT(MODBUSR(H, 954, Uint16),13)=1, ADDERROR("Bad voltage inverter 1", "E881"));
IF(GETBIT(MODBUSR(H, 954, Uint16),14)=1, ADDERROR("Bad voltage inverter 2", "E882"));
IF(GETBIT(MODBUSR(H, 954, Uint16),15)=1, ADDERROR("Bad voltage inverter 3", "E883"));

IF(GETBIT(MODBUSR(H, 955, Uint16),0)=1, ADDERROR("Phase sequence inverter 1", "E891"));
IF(GETBIT(MODBUSR(H, 955, Uint16),1)=1, ADDERROR("Phase sequence inverter 2", "E892"));
IF(GETBIT(MODBUSR(H, 955, Uint16),2)=1, ADDERROR("Phase sequence inverter 3", "E893"));
IF(GETBIT(MODBUSR(H, 955, Uint16),3)=1, ADDERROR("Model error inverter 1", "E901"));
IF(GETBIT(MODBUSR(H, 955, Uint16),4)=1, ADDERROR("Model error inverter 2", "E902"));
IF(GETBIT(MODBUSR(H, 955, Uint16),5)=1, ADDERROR("Model error inverter 3", "E903"));
IF(GETBIT(MODBUSR(H, 955, Uint16),6)=1, ADDERROR("Overload error inverter 1", "E911"));
IF(GETBIT(MODBUSR(H, 955, Uint16),7)=1, ADDERROR("Overload error inverter 2", "E912"));
IF(GETBIT(MODBUSR(H, 955, Uint16),8)=1, ADDERROR("Overload error inverter 3", "E913"));
IF(GETBIT(MODBUSR(H, 955, Uint16),9)=1, ADDERROR("Overcurrent PFC inverter 1", "E921"));
IF(GETBIT(MODBUSR(H, 955, Uint16),10)=1, ADDERROR("Overcurrent PFC inverter 2", "E922"));
IF(GETBIT(MODBUSR(H, 955, Uint16),11)=1, ADDERROR("Overcurrent PFC inverter 3", "E923"));
IF(GETBIT(MODBUSR(H, 955, Uint16),12)=1, ADDERROR("Internal communication error inverter 1", "E931"));
IF(GETBIT(MODBUSR(H, 955, Uint16),13)=1, ADDERROR("Internal communication error inverter 2", "E932"));
IF(GETBIT(MODBUSR(H, 955, Uint16),14)=1, ADDERROR("Internal communication error inverter 3", "E933"));
IF(GETBIT(MODBUSR(H, 955, Uint16),15)=1, ADDERROR("Fault PFC inverter 1", "E941"));

IF(GETBIT(MODBUSR(H, 956, Uint16),0)=1, ADDERROR("Fault PFC inverter 2", "E942"));
IF(GETBIT(MODBUSR(H, 956, Uint16),1)=1, ADDERROR("Fault PFC inverter 3", "E943"));
IF(GETBIT(MODBUSR(H, 956, Uint16),2)=1, ADDERROR("Probe error inverter 1", "E951"));
IF(GETBIT(MODBUSR(H, 956, Uint16),3)=1, ADDERROR("Probe error inverter 2", "E952"));
IF(GETBIT(MODBUSR(H, 956, Uint16),4)=1, ADDERROR("Probe error inverter 3", "E953"));
IF(GETBIT(MODBUSR(H, 956, Uint16),5)=1, ADDERROR("Abnormal condition inverter 1", "E961"));
IF(GETBIT(MODBUSR(H, 956, Uint16),6)=1, ADDERROR("Abnormal condition inverter 2", "E962"));
IF(GETBIT(MODBUSR(H, 956, Uint16),7)=1, ADDERROR("Abnormal condition inverter 3", "E963"));
IF(GETBIT(MODBUSR(H, 956, Uint16),8)=1, ADDERROR("Inverter 1 EEPROM error", "E971"));
IF(GETBIT(MODBUSR(H, 956, Uint16),9)=1, ADDERROR("Inverter 2 EEPROM error", "E972"));
IF(GETBIT(MODBUSR(H, 956, Uint16),10)=1, ADDERROR("Inverter 3 EEPROM error", "E973"));
IF(GETBIT(MODBUSR(H, 956, Uint16),11)=1, ADDERROR("High discharge temperature of Cp3", "E029"));
IF(GETBIT(MODBUSR(H, 956, Uint16),12)=1, ADDWARNING("Anti-legionella performed correctly", "E060"));
IF(GETBIT(MODBUSR(H, 956, Uint16),13)=1, ADDERROR("Anti-legionella failed or stopped", "E061"));
```

Attributi di servizio

Compressor 1 runtime

```taphome
MODBUSR(H, 305, Uint16) + "h"
```

Compressor 2 runtime

```taphome
MODBUSR(H, 307, Uint16) + "h"
```

Compressor 3 runtime

```taphome
MODBUSR(H, 309, Uint16) + "h"
```

Compressor 1 runtime (circuit 2)

```taphome
MODBUSR(H, 313, Uint16) + "h"
```

Compressor 2 runtime (circuit 2)

```taphome
MODBUSR(H, 315, Uint16) + "h"
```

Compressor 3 runtime (circuit 2)

```taphome
MODBUSR(H, 317, Uint16) + "h"
```

Modalità attiva Interruttore multivalore Lettura e scrittura

Selettore modalità operativa — Stand by, Cool, Heat, Sanitary (ACS), Cool+DHW, Heat+DHW

Registro: H:200 → H:7200 Int16 numeric

Valori / Stati: Stand by · Cool · Heat · Cool+DHW · Heat+DHW

Azioni di servizio

|              |                                                                       |
|--------------|-----------------------------------------------------------------------|
| Setpoint ACS | Impostare la temperatura target dell'acqua calda sanitaria (25–55 °C) |

Lettura stato interruttore

```taphome
MODBUSR(H, 200, Int16)
```

Scrittura stato interruttore

```taphome
MODBUSW(H, 7200, int16, Mu)
```

Azioni di servizio

DHW (sanitary) setpoint

Parametri: Temp setpoint (25–55 ts)

```taphome
MODBUSW(H, 7205, Uint16, ts*10);
```

Temperatura di mandata compressore Sensore di temperatura Solo lettura

Temperatura di mandata del compressore 1 con attributi di servizio per tutti i sensori di mandata dei compressori su entrambi i circuiti

Registro: H:433 Int16 Unità: °C numeric

Attributi di servizio

|                                      |
|--------------------------------------|
| Mandata compressore 1                |
| Mandata compressore 2                |
| Mandata compressore 3                |
| Aspirazione compressore (circuito 2) |
| Mandata compressore 1 (circuito 2)   |
| Mandata compressore 2 (circuito 2)   |
| Mandata compressore 3 (circuito 2)   |

Lettura temperatura

```taphome
MODBUSR(H, 433, Int16) / 10
```

Attributi di servizio

Compressor discharge 1

```taphome
var temp := MODBUSR(H, 433, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor discharge 2

```taphome
var temp := MODBUSR(H, 434, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor discharge 3

```taphome
var temp := MODBUSR(H, 435, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor inhalation (circuit 2)

```taphome
var temp := MODBUSR(H, 20422, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor 1 discharge (circuit 2)

```taphome
var temp := MODBUSR(H, 20433, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor 2 discharge (circuit 2)

```taphome
var temp := MODBUSR(H, 20434, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor 3 discharge (circuit 2)

```taphome
var temp := MODBUSR(H, 20435, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Setpoint raffrescamento Termostato Lettura e scrittura

Termostato setpoint raffrescamento — temperatura attuale dal serbatoio di miscelazione

Registro: H:1001 Int16 Unità: °C numeric

Lettura temperatura

```taphome
MODBUSR(H, 440, Int16)/10
```

Lettura temperatura desiderata

```taphome
MODBUSR(H, 1001, Int16) / 10
```

Scrittura temperatura desiderata

```taphome
MODBUSW(H, 1001, Int16, Se * 10)
```

Temperatura ACS Sensore di temperatura Solo lettura

Temperatura dell'acqua calda sanitaria con rilevamento guasti (avvisi Not configured / Fault)

Registro: H:405 Int16 Unità: °C numeric

Attributi di servizio

|       |
|-------|
| Stato |

Lettura temperatura

```taphome
var reg := MODBUSR(H, 405, Int16);
SWITCH(reg, 32766, ADDWARNING("DHW temperature not configured"), 32767, ADDWARNING("DHW temperature at fault"), Return(reg/10));
Return (nan);
```

Attributi di servizio

Status

```taphome
SWITCH(MODBUSR(H, 405, Uint16), 32766, "Not configured", 32767, "Fault", "Ok")
```

Velocità ventilatore Dimmer Solo lettura

Velocità del ventilatore in sola lettura in percentuale

Registro: H:7000 Int16 Unità: % numeric

Lettura livello

```taphome
MODBUSR(H, 7000, Int16)/1000
```

Setpoint riscaldamento Termostato Lettura e scrittura

Termostato setpoint riscaldamento — temperatura attuale dal serbatoio di miscelazione

Registro: H:1002 Int16 Unità: °C numeric

Lettura temperatura

```taphome
MODBUSR(H, 440, Int16)/10
```

Lettura temperatura desiderata

```taphome
MODBUSR(H, 1002, Int16) / 10
```

Scrittura temperatura desiderata

```taphome
MODBUSW(H, 1002, Int16, Se * 10)
```

Alta pressione Variabile Solo lettura

Pressione lato alta del refrigerante in bar con attributo di servizio per il circuito 2

Registro: H:406 Int16 Unità: bar numeric

Attributi di servizio

|                           |
|---------------------------|
| Alta pressione circuito 2 |

Lettura

```taphome
MODBUSR(H, 406, Int16)/100
```

Attributi di servizio

High Pressure Circuit 2

```taphome
MODBUSR(H, 20406, Int16)/100 + " bar"
```

Bassa pressione Variabile Solo lettura

Pressione lato bassa del refrigerante in bar con attributo di servizio per il circuito 2

Registro: H:414 Int16 Unità: bar numeric

Attributi di servizio

|                            |
|----------------------------|
| Bassa pressione circuito 2 |

Lettura

```taphome
MODBUSR(H, 414, Int16)/100
```

Attributi di servizio

Low Pressure Circuit 2

```taphome
MODBUSR(H, 20414, Int16)/100 + " bar"
```

Temperatura esterna Sensore di temperatura Solo lettura

Registro: H:428 Int16 Unità: °C numeric

Lettura temperatura

```taphome
MODBUSR(H, 428, int16) / 10
```

Temperatura impianto (serbatoio di miscelazione) Sensore di temperatura Solo lettura

Temperatura del serbatoio di accumulo/miscelazione — utilizzata anche come temperatura di riferimento attuale per i termostati di riscaldamento e raffrescamento

Registro: H:440 Int16 Unità: °C numeric

Lettura temperatura

```taphome
MODBUSR(H, 440, Int16)/10
```

Velocità pompa Dimmer Solo lettura

Velocità della pompa di circolazione in sola lettura in percentuale

Registro: H:7001 Int16 Unità: % numeric

Lettura livello

```taphome
MODBUSR(H, 7001, Int16)/1000
```

Portata d'acqua Variabile Solo lettura

Portata d'acqua in l/min con rilevamento guasti (avvisi Not configured / Fault)

Registro: H:444 Int16 Unità: l/min numeric

Attributi di servizio

|       |
|-------|
| Stato |

Lettura

```taphome
var reg := MODBUSR(H, 444, Int16);
SWITCH(reg, 32766, ADDWARNING("Water flow not configured"), 32767, ADDWARNING("Water flow at fault"), Return(reg/10));
Return (nan);
```

Attributi di servizio

Status

```taphome
SWITCH(MODBUSR(H, 405, Uint16), 32766, "Not configured", 32767, "Fault", "Ok")
```

Temperatura acqua in ingresso Sensore di temperatura Solo lettura

Registro: H:400 Int16 Unità: °C numeric

Lettura temperatura

```taphome
MODBUSR(H, 400, Int16) / 10
```

Temperatura acqua in uscita Sensore di temperatura Solo lettura

Registro: H:401 Int16 Unità: °C numeric

Lettura temperatura

```taphome
MODBUSR(H, 401, Int16) / 10
```

**Connessione:** Modbus RTU • 9600 baud• 8E1 • Slave ID: $\[SlaveId]

Possibili miglioramenti (2)

- H:422 Compressor Inhalation Temperature — Int16, /10 = °C. Register H:422 is listed in report but template device named 'Compressor inhalation' actually reads H:433 (discharge). True inhalation temp is not exposed as a primary device
- H:7201 Remote Write Enable (direct access) — UInt16 bit 0 — module readscript auto-enables this on every poll. Not exposed as a standalone device but could be useful for manual override

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app | Predefinito   |
|--------------------|---------------|
| Slave Id           | `1`           |
| IP address         | `192.168.1.0` |

## Documentazione correlata

- [Modbus Integration](https://taphome.com/it/compatibility/modbus-guide/)
- [Modbus - Configurazione](https://taphome.com/it/docs/integration/modbus/)
- [Configurazione semplice utilizzando modelli](https://taphome.com/it/docs/integration/modbus/templates/)
- [Script Modbus e prefetch](https://taphome.com/it/docs/script/modbus-scripts/)
- [Funzioni Modbus](https://taphome.com/it/docs/script/modbus/)
- [Tipi di dati Modbus](https://taphome.com/it/docs/script/modbus-data-types/)

