TapHome

Zhong Sheng (XY) Temperatura, umidità, barometro

Modbus TCP
Inviato da
Ultimo aggiornamento: 06. 2026
Zhong Sheng (XY) Temperatura, umidità, barometro

Il Zhong Sheng (XY) Temperatura, umidità, barometro è un sensore cinese tre-in-uno RS-485 Modbus che espone temperatura ambiente, umidità relativa e pressione barometrica. Appartiene alla stessa famiglia OEM del noto trasmettitore di temperatura/umidità XY-MD02, esteso con un chip di pressione di classe BMP — ma con una mappatura registri non standard, specifica di questo rebrand.

Il template TapHome si collega al sensore tramite Modbus TCP attraverso un gateway Ethernet ↔ RS-485, non direttamente. Il gateway collega TapHome Core (LAN) al bus RS-485 su cui risiede il sensore con uno Slave ID configurabile. Sono esposte tre letture — temperatura, umidità relativa e pressione barometrica — ciascuna combinata con un offset di calibrazione per installazione (CORTE, CORH, CORBAR).

Collegamento hardware

Il sensore è un dispositivo Modbus RTU su RS-485. TapHome Core lo raggiunge tramite rete attraverso un gateway Ethernet ↔ RS-485 (è adatto qualsiasi gateway Modbus TCP ↔ RTU standard, ad es. USR-TCP232, Waveshare o un convertitore DIN equivalente).

1
2
3
4
┌─────────────┐            ┌───────────────────────┐            ┌──────────────────┐
│ TapHome Core│  Ethernet  │ Ethernet ↔ RS-485     │  RS-485    │ Sensore XY       │
│             │ ─────────▶ │ gateway (TCP port 502)│ ─────────▶ │ (Slave ID 1)     │
└─────────────┘            └───────────────────────┘            └──────────────────┘
Cablaggio RS-485
Codifica colore cavi RS-485 su terminali a pressione

Il sensore utilizza un cavo con terminali a pressione a quattro conduttori secondo la convenzione del riferimento Seeed S-THP-01A (pin-out identico alla maggior parte dei sensori della serie XY):

Colore del filoFunzione
RossoV+ (alimentazione, 4,5–18 V DC)
NeroGND (massa alimentazione / segnale)
GialloRS-485 A+
BiancoRS-485 B−

Collega A+ e B− ai morsetti corrispondenti del gateway Ethernet ↔ RS-485 e condividi la GND tra sensore, alimentatore e gateway per evitare problemi di modo comune.

Cablaggio RS-485 verso un gateway Ethernet ↔ RS-485 (esempio DataLogger)

I colori esatti dei fili possono variare leggermente tra lotti OEM — verifica sempre l’etichetta sul cavo prima di alimentare il sistema. L’inversione di polarità dell’alimentazione non danneggia il sensore (ha una protezione contro l’inversione di polarità), ma il sensore semplicemente non risponderà.

Per tratte di bus superiori a ~100 m usa cavo a coppie intrecciate schermato per A+ / B− e aggiungi una resistenza di terminazione da 120 Ω all’estremità della linea. Mantieni tutti i sensori sullo stesso potenziale di riferimento GND.

Attivazione comunicazione Modbus

Non sono coinvolti menu o DIP switch — il sensore viene consegnato con Modbus RTU già abilitato. L’integrazione consiste unicamente nel cablaggio del bus RS-485, nella configurazione del gateway e nell’immissione di due valori durante l’importazione in TapHome.

Parametri seriali RS-485 (valori di fabbrica)

La serie XY e il riferimento Seeed S-THP-01A escono di fabbrica con le stesse impostazioni seriali. Il template TapHome assume questi valori predefiniti:

ImpostazioneValore
Baud rate9600 bps
Bit dati8
Paritànessuna
Bit di stop1
Indirizzo slave1

Baud rate e indirizzo slave sono configurabili via software tramite holding register direttamente sul sensore (vedi la guida utente Seeed S-THP-01A, registri 0x0200 / 0x0201, o il datasheet XY-MD02). Il template TapHome intenzionalmente non espone questi registri — modificarli da TapHome interromperebbe la connessione attiva.

Configurazione del gateway

Configura il gateway Ethernet ↔ RS-485 come slave Modbus TCP (server) sulla porta TCP 502, che fa da proxy verso il bus RS-485 sottostante a 9600, 8-N-1. Assegnagli un indirizzo IP statico (o una prenotazione DHCP) in modo che non cambi dopo un’interruzione di alimentazione.

Se il gateway supporta più mapping slave, tieni il sensore su Slave ID 1 — è più semplice che riscrivere l’indirizzo del sensore e corrisponde al valore predefinito del template.

Parametri di importazione TapHome

Quando importi il template in TapHome, fornisci due valori:

ParametroPredefinitoDescrizione
Indirizzo IP192.168.1.0IP del gateway Ethernet ↔ RS-485 sulla LAN
Slave ID1Indirizzo Modbus del sensore sul bus RS-485
Variabili di modulo — offset di calibrazione

Dopo l’importazione, in TapHome → Variabili di modulo sono disponibili tre variabili a livello di modulo per la calibrazione per installazione. Vengono applicate sopra ogni lettura grezza:

VariabilePredefinitoUnitàScopo
CORTE0,5°COffset di temperatura aggiunto a ogni lettura grezza di temperatura
CORH0,01%RHOffset di umidità aggiunto a ogni lettura grezza di umidità
CORBAR17hPaOffset di pressione aggiunto a ogni lettura grezza di pressione

CORBAR = 17 è una correzione per quota specifica del sito — deve essere ri-tarata per ogni installazione. Lasciare il valore di fabbrica introdurrà un bias di +17 hPa su ogni lettura di pressione rispetto alla pressione atmosferica locale reale. Parti da CORBAR = 0 e tara rispetto a un barometro di riferimento noto alla quota di installazione. Anche CORTE e CORH vanno verificati rispetto a un termometro/igrometro di riferimento posizionato accanto al sensore.

Capacità del dispositivo

Il template espone tre dispositivi sensore in sola lettura, tutti che leggono holding register attraverso il gateway:

Temperatura

Temperatura dell’aria dal chip integrato di classe SHT, letta da H:0 (uInt16) e scalata come raw / 10 + CORTE. Riportata in °C con risoluzione 0,1 °C e precisione tipica ±0,5 °C.

Umidità relativa

Umidità relativa dallo stesso chip di classe SHT, letta da H:1 (uInt16) e scalata come raw × 0,001 + CORH. Riportata in %RH.

Il fattore di scala dell’umidità è sospetto. Un moltiplicatore di ×0,001 implica che il registro grezzo conterrebbe ≈ 100 000 al 100 %RH, valore che va oltre i limiti di un registro a 16 bit (max 65 535). Il riferimento XY-MD02 usa /10 e il Seeed S-THP-01A usa /100. La formula probabilmente corretta è raw / 10 — conforme alla convenzione XY-MD02. Verifica le letture su hardware reale prima di fidarti; se l’umidità riportata è tagliata o del tutto fuori scala, modifica il template o usa una variante XY diversa.

Pressione barometrica

Pressione atmosferica dal chip integrato di classe BMP, letta da H:4 come intero unsigned a 32 bit (distribuito su H:4H:5) e scalata come raw / 100 + CORBAR. Riportata in hPa con risoluzione 0,1 hPa.

L’intervallo di polling a livello di dispositivo nel template XML è di 1 000 ms per il barometro, un valore troppo aggressivo — la pressione atmosferica varia nell’ordine dei minuti, non dei secondi. Dopo l’importazione aumenta l’intervallo di polling del barometro in TapHome → Variabili di dispositivo a 15 000–30 000 ms per ridurre il carico sul bus senza perdere risoluzione utile. L’intervallo di modulo da 30 000 ms già usato da temperatura e umidità è un buon punto di partenza anche per il barometro.

Riepilogo registri

RegistroParametroTipo di datoScala / offsetUnitàIntervallo di polling
H:0TemperaturauInt16/ 10 + CORTE (0,5)°C30 000 ms (modulo)
H:1UmiditàuInt16× 0,001 + CORH (0,01) — verificare%RH30 000 ms (modulo)
H:4H:5Pressione barometricauInt32/ 100 + CORBAR (17)hPa1 000 ms (troppo aggressivo)

Il tipo di dato grezzo uInt16 non può rappresentare nativamente valori negativi. Sull’hardware XY-MD02 reale, le temperature sotto lo zero arrivano come interi con segno in complemento a due. Se il sensore è installato in un ambiente che scende regolarmente sotto 0 °C, verifica su hardware reale che le temperature negative vengano decodificate correttamente prima di fare affidamento su di esse.

Risoluzione problemi

Nessuna lettura dopo l’importazione
  1. Pinga l’IP del gateway dalla stessa sottorete di TapHome Core — se non risponde, il problema è sulla LAN o sull’alimentazione, non su Modbus.
  2. Verifica che il gateway sia configurato come server Modbus TCP sulla porta 502, non come bridge TCP trasparente.
  3. Controlla che le impostazioni seriali RS-485 del gateway corrispondano a 9600, 8-N-1 — un disallineamento qui produce silenziosamente timeout senza letture.
  4. Verifica che lo Slave ID del sensore corrisponda al valore inserito durante l’importazione in TapHome (predefinito 1). Un secondo sensore sullo stesso bus con lo stesso indirizzo causerà una collisione.
  5. Ispeziona il cablaggio RS-485: A+ su A+, B− su B−, GND condivisa tra sensore, alimentatore e gateway.
Valori di umidità non plausibili

Il template XML usa un moltiplicatore di umidità × 0,001 che è incoerente con la famiglia XY-MD02 (/10) e il riferimento Seeed S-THP-01A (/100). Se l’umidità rimane bloccata vicino allo zero o non raggiunge mai valori plausibili, il registro grezzo probabilmente usa la convenzione XY-MD02. Confronta il valore del registro grezzo con uno strumento di debug Modbus (ad es. qModbus) contro un igrometro di riferimento; se valori grezzi attorno a 500 corrispondono a ~50 %RH, la formula deve essere /10 e il template va corretto.

Lettura pressione con bias di ~17 hPa

Il valore predefinito del template CORBAR = 17 è una vecchia correzione per quota specifica del sito. Se la pressione è costantemente ~17 hPa superiore rispetto a un barometro di riferimento vicino (ad es. una stazione meteo), imposta CORBAR a 0 in TapHome → Variabili di modulo e tara rispetto al riferimento.

Alto carico del bus / errori di comunicazione

Aumenta l’intervallo di polling del barometro da 1 000 ms a 15 000–30 000 ms in TapHome → Variabili di dispositivo. Un polling a 1 Hz su un bus RS-485 condiviso lascia poca banda agli altri slave e non offre alcun vantaggio per un barometro.

La temperatura negativa appare come un grande numero positivo

Il template legge la temperatura come uInt16. L’hardware XY reale restituisce le temperature negative come interi con segno in complemento a due — un valore grezzo di 0xFF33 (≈ 65 331) decodificato come unsigned diventa ≈ 6 533,1 °C, ma dovrebbe essere decodificato come −20,5 °C. Se il sensore è installato in un ambiente che può scendere sotto 0 °C, verifica il comportamento su hardware reale e valuta la sostituzione del template con una variante Int16 con segno prima di fare affidamento sulle letture sotto lo zero.

Dispositivi disponibili

Temperatura, umidità, barometro Modulo
Variabili personalizzate
CORBAR (numeric) = 17Offset di pressione barometrica in hPa aggiunto a ogni lettura grezza del barometro — usato come correzione di quota/livello di riferimento specifica del sito
Adjust in TapHome → Module Variables after import. Start with 0 and tune against a known reference barometer at the installation altitude; +17 hPa is a legacy site-specific default and will bias pressure readings if left unchanged.
CORH (numeric) = 0.01Offset di umidità relativa in %RH aggiunto a ogni lettura grezza di umidità — per compensare la deriva del singolo sensore
Adjust in TapHome → Module Variables after import. Typical factory calibration is within ±3 %RH; tune against a reference hygrometer.
CORTE (numeric) = 0.5Offset di temperatura in °C aggiunto a ogni lettura grezza di temperatura — per compensare la deriva del singolo sensore
Adjust in TapHome → Module Variables after import. Tune against a reference thermometer placed next to the sensor.
Pressione barometrica Variabile Solo lettura

Pressione atmosferica dal chip integrato di classe BMP in hPa, con l'offset CORBAR per installazione applicato

Registro: H:4 uInt32 Unità: hPa

Pressione barometrica

Lettura
MODBUSR(H, 4, uInt32)/100 + CORBAR
Temperatura Variabile Solo lettura

Temperatura dell'aria ambiente dal sensore integrato della famiglia SHT in °C, con l'offset CORTE per installazione applicato

Registro: H:0 uInt16 Unità: °C

Temperatura

Lettura
MODBUSR(H, 0, uInt16)/10 + CORTE
Umidità relativa Variabile Solo lettura

Umidità relativa dal sensore integrato della famiglia SHT in %RH, con l'offset CORH per installazione applicato

Registro: H:1 uInt16 Unità: %RH

Umidità relativa

Lettura
MODBUSR(H, 1, uInt16)*0.001 + CORH
Connessione: Modbus TCP • Slave ID: $[SlaveId]
Possibili miglioramenti (10)
  • H:2 Dew Point — INT16 /100, °C — commonly exposed by SHT-family chips alongside temperature and humidity; not read by the current TapHome template.
  • H:3 Atmospheric Pressure (INT16 variant) — INT16 /10, hPa — alternative lower-resolution pressure register present on sister devices; this template uses the 32-bit variant at H:4 instead.
  • H:4 (frost point) Frost Point — INT16 /100, °C — useful for condensation prevention; register overlap with this template's barometer variant means it would only be available on firmware variants without the packed 32-bit pressure register.
  • H:5 (vapor pressure) Vapor Pressure / Wet Bulb / Vapor Concentration — Reference devices expose vapor pressure (/10, hPa), vapor concentration (/10, g/m³) and related psychrometric values; not known to be available on this specific Zhong Sheng (XY) rebrand.
  • H:0x0020 Temperature Unit Selector — UINT16 RW, 0=°C / 1=°F — configuration register for switching display units; not typically needed when the template fixes °C.
  • H:0x0200 Slave Address (writable) — UINT16 RW, 0..255 — would allow changing the Modbus slave ID from TapHome; intentionally left out because mis-writing it would break the connection.
  • H:0x0201 Baud Rate (writable) — UINT16 RW, 0..5 mapping to standard baud rates — same rationale as slave address: unsafe to expose in a user-editable template.
  • H:0x1000 Temperature (IEEE Float variant) — 32-bit IEEE float temperature at offset 0x1000; this template reads the cheaper uInt16 ×0.1 variant at H:0 instead.
  • H:0x1002 Humidity (IEEE Float variant) — 32-bit IEEE float humidity at offset 0x1002; this template reads the uInt16 variant at H:1 instead — consider switching to float if the uInt16 scaling proves wrong on real hardware.
  • H:0x1006 Atmospheric Pressure (IEEE Float variant) — 32-bit IEEE float pressure at offset 0x1006; alternative to the packed uInt32 this template uses at H:4.

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