TapHome

Xvent Xcont Central

Modbus RTU
Submitted by
Last updated: 03. 2026
Xvent Xcont Central

L’Xvent Xcont Central è un controller Modbus RTU per le unità centrali di recupero calore Xvent Xhouse (XH) e Xflat (XF). Si collega a TapHome tramite RS-485 utilizzando un connettore RJ45 attraverso l’XCONT-HUB. Il template fornisce controllo della velocità del ventilatore, monitoraggio della temperatura ambiente e dell’umidità, temperatura di protezione antigelo, misurazione del flusso d’aria, soglie di attivazione CO2 e umidità e modalità operative tra cui boost e modalità estiva.

È richiesta la versione firmware 100 o superiore per la comunicazione Modbus.

Collegamento hardware

Cablaggio RS-485 tramite RJ45

L’Xcont Central utilizza un connettore RJ45 per la comunicazione RS-485 attraverso l’XCONT-HUB. Il bus opera in modalità half-duplex.

Xvent Xcont Central RJ45 connector pinout for RS-485 connection to XCONT-HUB

Assegnazione pin RJ45:

PinFunzione
1Non collegato
2Non collegato
3Linea dati bus RS-485 A
4Linea dati bus RS-485 A
5Linea dati bus RS-485 B
6Linea dati bus RS-485 B
7Non collegato
8Non collegato

Collegare i fili A (pin 3, 4) a TapHome RS-485 A+/D+ e i fili B (pin 5, 6) a TapHome RS-485 B-/D-. I pin 1, 2, 7 e 8 devono rimanere non collegati.

Il bus opera in modalità half-duplex. L’unità richiede una pausa minima di 4 ms tra i frame Modbus per il corretto rilevamento dei frame. Il tempo di risposta tipico è di circa 4 ms.

Specifiche tecniche
  • Protocollo: Modbus RTU Slave, RS-485
  • Baud rate: 19200 (supporta anche 4800 e 9600)
  • Parità: Even (supporta anche nessuna parità)
  • Bit dati: 8
  • Stop bit: 1
  • Range indirizzo slave: 1–247

Configurazione

Abilitazione comunicazione Modbus

L’indirizzo slave Modbus e i parametri di comunicazione si configurano tramite il registro di ritenzione DCFG all’indirizzo 0x9C50. Le impostazioni predefinite sono:

  • Baud rate: 19200 (bit 5–6 = 3)
  • Parità: Even (bit 7 = 0)
  • Indirizzo slave: Configurato nei bit 8–15 (range 1–247)

Per modificare le impostazioni Modbus, scrivere nel registro H:40016 utilizzando la funzione Modbus 0x10:

BitFunzioneValori
5–6Baud rate0=Disabilitato, 1=4800, 2=9600, 3=19200
7Parità0=Even, 1=Nessuna parità
8–15Indirizzo slave1–247

Le modifiche al baud rate, alla parità e all’indirizzo slave hanno effetto immediato. L’unità interromperà la comunicazione fino a quando il master Modbus non verrà riconfigurato con i nuovi parametri.

Configurazione TapHome

Quando si aggiunge il dispositivo in TapHome, configurare la connessione Modbus RTU con queste impostazioni:

  • Slave ID: Deve corrispondere all’indirizzo configurato nell’unità (il valore predefinito dipende dall’unità)
  • Baud rate: 19200
  • Parità: Even
  • Stop bit: 1
  • Bit dati: 8

Funzionalità del dispositivo

Alimentazione e modalità operative
  • Power (H:40000 bit 0) — interruttore principale ON/OFF dell’unità di recupero calore
  • Fan Mode (H:40000 bit 1) — commutazione tra modalità automatica (gestita da AQS basata su sensori CO2/umidità) e controllo manuale del ventilatore
  • Summer Mode (H:40000 bit 2) — attivazione della modalità bypass estiva con durata configurabile (predefinita 8 ore)
  • Boost Mode (H:40000 bit 4) — attivazione della modalità boost con velocità ventilatore elevata per una durata configurabile (predefinita 60 secondi)
  • Touch Button Lock (H:40000 bit 5) — blocco bambini per i pulsanti touch del pannello frontale

Tutti questi controlli condividono un singolo registro di ritenzione (H:40000) e utilizzano la manipolazione dei singoli bit — la commutazione di una funzione non influisce sulle altre.

Controllo velocità ventilatore
  • Fan Speed Level (H:40000 bit 6–9) — selezione tra 8 livelli di velocità (0–7), dove ogni livello corrisponde a una specifica tensione di uscita che varia in base al modello dell’unità (XF1-015, XH1-030, XF1-020, XH2-030). L’interruttore multi-valore mostra anche un’opzione Boost (livello 8), ma si consiglia di utilizzare l’interruttore Boost Mode

  • Fan Status (A:30001 bit 8–11) — indicatore in sola lettura dello stato operativo attuale del ventilatore: Unità OFF, OFF raffreddamento, Errore ventilatore 1, Errore ventilatore 2, Attivo normale, Attivo antigelo, Inattivo normale, Inattivo antigelo, Modalità estiva o Modalità boost. Un attributo di servizio mostra lo stato precedente del ventilatore prima della transizione attuale

Monitoraggio temperatura e umidità
  • Room Temperature & Humidity (A:30016 / A:30014) — lettura della temperatura ambiente con risoluzione 0,1 °C e dell’umidità relativa con risoluzione 0,1 % RH. Un attributo di servizio stato sensore segnala se il sensore è OK, disconnesso o in cortocircuito
  • Frost Protection Temperature (A:30015) — lettura del sensore di temperatura protezione antigelo lato scarico con risoluzione 0,1 °C. Un attributo di servizio monitora lo stato di connessione del sensore
  • Desired Temperature (A:30012) — lettura del setpoint di temperatura ambiente attualmente configurato con risoluzione 0,1 °C. Questo valore è in sola lettura nel template — il livello di temperatura viene impostato tramite il registro del pannello frontale
Monitoraggio tensione ventilatore
  • Fan 1 Voltage (A:30018) — lettura della tensione di uscita attuale del ventilatore 1 con risoluzione 0,01 V. Gli attributi di servizio segnalano lo stato dell’ingresso tachimetrico e la conferma dell’avvio motore
  • Fan 2 Voltage (A:30020) — lettura della tensione di uscita attuale del ventilatore 2 con risoluzione 0,01 V. Stessi attributi di servizio del ventilatore 1
Soglie qualità dell’aria
  • CO2 Activation Threshold (H:40001) — livello configurabile di concentrazione CO2 (600–1000 ppm, predefinito 800 ppm) al quale i ventilatori si attivano automaticamente in modalità automatica AQS. Regolabile tramite l’azione di servizio “Set Value”
  • RH Activation Threshold (H:40002) — livello configurabile di umidità relativa (50–75 %, predefinito 65 %) al quale i ventilatori si attivano automaticamente in modalità automatica AQS. Regolabile tramite l’azione di servizio “Set Value”
Misurazione flusso d’aria
  • Airflow (A:30015) — lettura del flusso d’aria attuale dal sensore di flusso con risoluzione 0,1 m³/h
Diagnostica di servizio

Il modulo espone tre attributi di servizio per il monitoraggio:

  • Firmware Version (A:30000) — versione firmware attuale dell’unità
  • UI State (A:30001 bit 0–3) — stato attuale dell’interfaccia utente con 14 valori possibili tra cui Unità spenta, Errori ventilatore, Errori sensore, Stati blocco, Funzionamento normale, Menu servizio e Menu utente
  • Attribute (H:40000 bit 10–15) — impostazione livello temperatura per unità tipo E

Il ReadScript del modulo monitora anche gli errori dei sensori CO2 e RH dal registro di stato A:30003, segnalandoli come errori in TapHome.

Funzionalità aggiuntive

L’Xcont Central espone anche registri per le letture del sensore CO2 (A:30013), stato qualità dell’aria AQS e velocità ventilatore richiesta, monitoraggio stato preriscaldamento e postriscaldamento, tracciamento tempo trascorso filtro (A:30028), stato relè preriscaldamento e postriscaldamento, offset correzione temperatura ambiente e vari registri timer. Le opzioni di configurazione includono impostazione durata filtro, velocità e durata della modalità boost, durata della modalità estiva e flag di velocità minima permanente del ventilatore. Queste potranno essere aggiunte in un futuro aggiornamento del template.

Il registro del valore del sensore CO2 (A:30013) e il tempo trascorso del filtro (A:30028) non sono inclusi nel template attuale. Per monitorare direttamente i livelli di CO2, il sensore CO2 può essere aggiunto come dispositivo Modbus personalizzato in TapHome utilizzando il registro di ingresso A:30013 (funzione 0x04, indirizzo 0x753D).

Risoluzione dei problemi

Nessuna comunicazione Modbus
  1. Controllare la connessione del cavo RJ45 — assicurarsi che il cavo sia correttamente inserito sia nell’XCONT-HUB che nell’adattatore RS-485
  2. Verificare il cablaggio dei pin — i pin 3/4 (filo A) e 5/6 (filo B) devono essere correttamente mappati su TapHome RS-485 A+/B-
  3. Verificare i parametri di comunicazione — TapHome deve essere impostato a 19200 baud, parità even, 1 stop bit, 8 bit dati (corrispondenti alle impostazioni predefinite dell’unità)
  4. Controllare l’indirizzo slave — verificare che l’indirizzo configurato corrisponda a quello impostato in TapHome
  5. Rispettare la temporizzazione dei frame — garantire almeno 4 ms di pausa tra i frame Modbus
Errori sensore segnalati in TapHome
  1. Errore sensore CO2 — controllare il collegamento fisico del sensore CO2 all’unità. Il ReadScript del modulo legge il bit 0 del registro A:30003
  2. Errore sensore RH — controllare il collegamento fisico del sensore di umidità. Il ReadScript del modulo legge il bit 1 del registro A:30003
  3. Sensore ambiente disconnesso/in cortocircuito — controllare l’attributo di servizio sul dispositivo Room Temperature. Valori di stato: 0=OK, 1=Disconnesso, 2=In cortocircuito
Errori ventilatore
  1. Controllare il dispositivo Fan Status — i valori 2 e 3 indicano rispettivamente errore del ventilatore 1 o del ventilatore 2
  2. Verificare l’attributo di servizio stato ingresso tachimetrico sui dispositivi Fan Voltage (OK/NG)
  3. Controllare l’attributo di servizio flag avvio motore — NG indica che il motore non è riuscito ad avviarsi
Formato indirizzo registri

L’Xcont Central utilizza indirizzi Modbus elevati. I registri di ingresso iniziano da 0x7530 (decimale 30000) e i registri di ritenzione da 0x9C40 (decimale 40000). Quando si configurano dispositivi personalizzati in TapHome, utilizzare gli indirizzi decimali dei registri (ad es. 30016 per la temperatura ambiente, 40000 per il controllo del pannello frontale).

Dispositivi disponibili

Xvent Xcont Central Modulo
Attributi di servizio
Versione firmware
Stato UI
Attributo

Xvent Xcont Central

Lettura (modulo)
IF(GETBIT(MODBUSR(A, 30003, Uint16),0)=1, ADDERROR("Chyba CO2 čidla"));
IF(GETBIT(MODBUSR(A, 30003, Uint16),1)=1, ADDERROR("Chyba RH čidla"));
Attributi di servizio
Firmware Version
MODBUSR(A, 30000, Uint16)
Stav uživatelského rozhraní
SWITCH(GETBITS( MODBUSR(A, 30001, Uint16),0,4 ), 
0, "Vypnutá jednotka",
1, "Vypnuté zařízení probíhá dochlazení předehřevu či dohřevu",
2, "Chyba ventilátoru 1 ",
3, "Chyba ventilátoru 2 ",
4, "Chyba pokojového čidla",
5, "Chyba protimrazového čidla",
6, "Aktivní zámek dotykových tlačítek",
7, "Stav deaktivace zámku dotykových tlačítek",
8, "Stav probuzeného ovladače, zobrazí aktuální nastavení",
9, "Režim nastavení škály ventilátorů",
10, "Režim nastavení škály teplot",
11, "Běžný power ON režim",
12, "Režim servisního menu",
13, "Režim uživatelského menu",
"Chyba"
)
Atribút
GETBITS(MODBUSR(H, 40000, Uint16), 10, 6)
Tensione ventilatore 1 Variabile Solo lettura

Tensione di uscita attuale del ventilatore di mandata — indica la velocità attuale

Registro: A:30018 Int16 Unità: V numeric
Attributi di servizio
Stato ingresso tachimetrico
Flag avvio motore

Tensione ventilatore 1

Lettura
MODBUSR(A, 30018, Int16)/100
Attributi di servizio
Stav tacho vstupu
SWITCH (GETBIT(MODBUSR(A, 30019, Uint16), 0),
1, "OK",
2, "NG",
"Chyba pri komunikaci"
)
Flag úspěšného startu motoru
SWITCH (GETBIT(MODBUSR(A, 30019, Uint16), 1),
1, "OK",
2, "NG",
"Chyba pri komunikaci"
)
Tensione ventilatore 2 Variabile Solo lettura

Tensione di uscita attuale del ventilatore di estrazione — indica la velocità attuale

Registro: A:30020 Int16 Unità: V numeric
Attributi di servizio
Stato ingresso tachimetrico
Flag avvio motore

Tensione ventilatore 2

Lettura
MODBUSR(A, 30020, Int16)/100
Attributi di servizio
Stav tacho vstupu
SWITCH (GETBIT(MODBUSR(A, 30021, Uint16), 0),
1, "OK",
2, "NG",
"Chyba pri komunikaci"
)
Flag úspěšného startu motoru
SWITCH (GETBIT(MODBUSR(A, 30021, Uint16), 1),
1, "OK",
2, "NG",
"Chyba pri komunikaci"
)
Modalità boost Interruttore

Attiva la ventilazione temporanea ad alta velocità per un rapido ricambio d'aria

Registro: H:40000 UInt16 bit
Valori / Stati: Aktivní · Neaktivní

Modalità boost

Lettura stato interruttore
GETBIT(MODBUSR(H, 40000, Uint16), 4)
Scrittura stato interruttore
var val := SETBIT(MODBUSR(H, 40000, Uint16), 4, St);
MODBUSW(H, 40000, Uint16, val);
Temperatura protezione antigelo Sensore di temperatura Solo lettura

Sensore di temperatura lato scarico per protezione antigelo — attiva la riduzione del ventilatore al calo di temperatura

Registro: A:30015 Int16 Unità: °C numeric
Attributi di servizio
Stato sensore

Temperatura protezione antigelo

Lettura temperatura
GETBITS(MODBUSR(A, 30015, Int16),0, 14 )/10
Attributi di servizio
Status čidla
SWITCH (GETBITS(MODBUSR(A, 30017, Uint16), 14, 2),
0, "OK",
1, "Čidlo rozpojeno",
2, "Čidlo skratováno",
"Komunikační chyba"
)
Soglia attivazione CO2 Variabile

Livello di concentrazione CO2 (600–1000 ppm) al quale i ventilatori si attivano automaticamente in modalità AQS

Registro: H:40001 UInt16 Unità: ppm numeric
Azioni di servizio
Imposta valore

Soglia attivazione CO2

Lettura
MODBUSR(H, 40001, UInt16)
Azioni di servizio
Nastavení hodnoty
Parametri: Value[600-1000] (600–1000 val)
MODBUSW(H, 40001, Uint16, val)
Soglia attivazione RH Variabile

Livello di umidità relativa (50–75 %) al quale i ventilatori si attivano automaticamente in modalità AQS

Registro: H:40002 UInt16 Unità: % RH numeric
Azioni di servizio
Imposta valore

Soglia attivazione RH

Lettura
MODBUSR(H, 40002, UInt16)/1000
Azioni di servizio
Nastavení hodnoty
Parametri: Value [50-75%] (50–75 val)
MODBUSW(H, 4002,BigendianInt16, val*10);
Modalità estiva Interruttore

Attiva la modalità bypass estiva — funziona per una durata configurabile (predefinita 8 ore)

Registro: H:40000 UInt16 bit
Valori / Stati: Aktivní · Neaktivní

Modalità estiva

Lettura stato interruttore
GETBIT(MODBUSR(H, 40000, Uint16), 2)
Scrittura stato interruttore
var val := SETBIT(MODBUSR(H, 40000, Uint16), 2, St);
MODBUSW(H, 40000, Uint16, val);
Alimentazione Interruttore
Registro: H:40000 UInt16 bit

Alimentazione

Lettura stato interruttore
GETBIT(MODBUSR(H, 40000, Uint16), 0)
Scrittura stato interruttore
var val := SETBIT(MODBUSR(H, 40000, Uint16), 0, St);

MODBUSW(H, 40000, Uint16, val);
Temperatura desiderata Variabile Solo lettura

Setpoint temperatura ambiente attualmente configurato — sola lettura, impostazione tramite pannello frontale

Registro: A:30012 Int16 Unità: °C numeric

Temperatura desiderata

Lettura
MODBUSR(A, 30012, Int16)/10
Flusso d'aria Variabile Solo lettura

Portata d'aria attuale dal sensore di flusso in m³/h

Registro: A:30015 UInt16 Unità: m³/h numeric

Flusso d'aria

Lettura
MODBUSR(A, 30015, Uint16)/10
Modalità ventilatore Interruttore

Controllo ventilatore automatico (gestito da AQS basato su CO2/umidità) o manuale

Registro: H:40000 UInt16 bit
Valori / Stati: Automatický · Manuální

Modalità ventilatore

Lettura stato interruttore
GETBIT(MODBUSR(H, 40000, Uint16), 1)
Scrittura stato interruttore
var val := SETBIT(MODBUSR(H, 40000, Uint16), 1, St);

MODBUSW(H, 40000, Uint16, val);
Stato ventilatore Interruttore multivalore Solo lettura

Stato operativo attuale del ventilatore — Unità OFF, Attivo normale, Antigelo, Modalità estiva, Modalità boost o stati di errore

Registro: A:30001 UInt16 multi-value
Valori / Stati: Vypnutá jednotka · OFF - proces dochlazování · Chyba ventilátoru 1 · Chyba ventilátoru 2 · Běžný režim · Antifreeze Režim · Neaktivní ventilátory v běžném režimu · Neaktivní ventilátory v antifreeze režimu · Letní režim · Boost režim

Stato ventilatore

Lettura stato interruttore
GETBITS(MODBUSR(A, 30001, Uint16),8,4 )
Attributi di servizio
Predchozí stav ventilátorů
SWITCH(GETBITS( MODBUSR(A, 30001, Uint16),12,4 ), 
0, "Vypnutá jednotka",
1, "Jednotka je OFF, ventilátory dochlazují předehřev či dohřev",
2, "Chyba ventilátoru 1 ",
3, "Chyba ventilátoru 2 ",
4, "Aktivní ventilátory v běžném režimu",
5, "Aktivní ventilátory ventilátor v antifreeze režimu",
6, "Neaktivní ventilátory v běžném režimu ",
7, "Neaktivní ventilátory v antifreeze režimu ",
8, "Ventilátory v letním režimu",
9, "Ventilátory v Boost režimu ",
"Chyba"
)
Livello velocità ventilatore Interruttore multivalore

Livello velocità ventilatore 0–7 — la tensione per livello varia in base al modello

Registro: H:40000 UInt16 multi-value
Valori / Stati: Boost

Livello velocità ventilatore

Lettura stato interruttore
GETBITS(MODBUSR(H, 40000, Uint16), 6, 4)
Scrittura stato interruttore
var val := SETBITS(MODBUSR(H, 40000, Uint16), 6, 4,  Mu);
MODBUSW(H, 40000, Uint16, val);
Temperatura ambiente e umidità Sensore di temperatura Solo lettura

Temperatura ambiente e umidità relativa dal sensore combinato

Registro: A:30016 Int16 Unità: °C numeric
Attributi di servizio
Stato sensore

Temperatura ambiente e umidità

Lettura umidità
MODBUSR(A, 30014, Int16)/10
Lettura temperatura
GETBITS(MODBUSR(A, 30016, Int16), 0 , 14) / 10
Attributi di servizio
Status čidla
SWITCH(GETBITS(MODBUSR(A, 30016, Int16), 14 , 2),
0,"Ok",
1,"Čidlo rozpojeno",
2,"Čidlo zkratováno",
"Chyba komunikace"
)
Blocco pulsanti touch Interruttore

Blocco bambini per i pulsanti touch del pannello frontale — previene modifiche accidentali

Registro: H:40000 UInt16 bit
Valori / Stati: Zamčeno · Odomčeno

Blocco pulsanti touch

Lettura stato interruttore
GETBIT(MODBUSR(H, 40000, Uint16), 5)
Scrittura stato interruttore
var val := SETBIT(MODBUSR(H, 40000, Uint16), 5, St);
MODBUSW(H, 40000, Uint16, val);
Connessione: Modbus RTU • 19200 baud• 8E1 • Slave ID: $[SlaveId]
Possibili miglioramenti (14)
  • A:30002 Status Register 2 (Preheat/Reheat) — Preheat status (bit 0–3), previous preheat (bit 4–7), last preheat with active fans (bit 8–11), fan modification stage (bit 12–15)
  • A:30003 Status Register 3 (Reheat/Filter) — Reheat status, filter status, various change flags. Module readscript checks bits 0–1 for CO2/RH sensor errors only
  • A:30004 AQS State — Air quality sensor status: CO2/RH sensor errors, AQS ventilation request, active CO2/RH levels, required fan speed. Partially covered by module readscript error checks
  • A:30005 AQS Required Flow — Required flow value according to AQS values (0.1 m3/h)
  • A:30006 Required Fan Flow — Required fan flow combining user and AQS settings (0.1 m3/h)
  • A:30011 Required Fan Speed — Required fan voltage combining user and AQS settings (0.01 V)
  • A:30013 CO2 Sensor Value — Current CO2 sensor reading (1 ppm). Key air quality measurement — surprisingly missing from template
  • A:30028 Filter Elapsed Time — Filter active time (1 h). Useful for filter replacement tracking
  • A:30033 Relay Status — Relay status: bit 0 = preheat relay, bit 1 = reheat relay
  • H:40016 DCFG Configuration — System configuration: auto shutdown flag, permanent min fan speed, Modbus baud rate/parity/address settings. WARNING: writing baud/parity/address takes effect immediately
  • H:40017 Room Temperature Correction — Room temperature sensor offset correction (0.1 degC, range -10.0 to +10.0°C)
  • H:40018 Summer Mode Duration — Duration of summer mode (1 s, range 3600–32400, default 28800 = 8 h)
  • H:40021 Boost Mode Duration — Duration of boost mode (1 s, range 30–3600, default 60)
  • H:40023 Filter Lifetime — Filter lifetime setting (1 h, range 2200–8800, default 4400)

Fonti