TapHome

Zhong Sheng (XY) Temperatură, umiditate, barometru

Modbus TCP
Trimis de
Ultima actualizare: 10. 2026
Zhong Sheng (XY) Temperatură, umiditate, barometru

Zhong Sheng (XY) Temperatură, umiditate, barometru este un senzor chinezesc 3 în 1 RS-485 Modbus care oferă temperatura ambiantă, umiditatea relativă și presiunea barometrică. Face parte din aceeași familie OEM ca binecunoscutul transmițător de temperatură / umiditate XY-MD02, extins cu un cip de presiune din clasa BMP — dar cu o hartă a registrelor nestandard, specifică acestei variante rebranduite.

Șablonul TapHome se conectează la senzor prin Modbus TCP, printr-un gateway Ethernet–RS-485, nu direct. Gateway-ul face legătura dintre TapHome Core (LAN) și magistrala RS-485, pe care se află senzorul cu un Slave ID configurabil. Sunt disponibile trei valori — temperatură, umiditate relativă și presiune barometrică — fiecare combinată cu o corecție de calibrare specifică instalării (CORTE, CORH, CORBAR).

Conectarea hardware

Senzorul este un dispozitiv Modbus RTU pe RS-485. TapHome Core comunică cu el prin rețea, printr-un gateway Ethernet–RS-485 (este potrivit orice gateway standard Modbus TCP ↔ RTU, de ex. USR-TCP232, Waveshare sau un convertor echivalent pe șină DIN).

1
2
3
4
┌─────────────┐            ┌───────────────────────┐            ┌──────────────────┐
│ TapHome Core│  Ethernet  │ Ethernet ↔ RS-485     │  RS-485    │ XY sensor        │
│             │ ─────────▶ │ gateway (TCP port 502)│ ─────────▶ │ (Slave ID 1)     │
└─────────────┘            └───────────────────────┘            └──────────────────┘
Cablarea RS-485
Codul culorilor cablului RS-485 pe terminalele sertizate la rece

Senzorul folosește un cablu cu terminale sertizate la rece, cu patru fire, conform convenției modelului de referință Seeed S-THP-01A (aceeași alocare a pinilor ca la majoritatea senzorilor din seria XY):

Culoarea firuluiFuncție
RoșuV+ (alimentare, 4,5–18 V DC)
NegruGND (masa de alimentare / semnal)
GalbenRS-485 A+
AlbRS-485 B−

Conectați A+ și B− la bornele corespunzătoare ale gateway-ului Ethernet–RS-485 și folosiți un GND comun pentru senzor, sursa lui de alimentare și gateway, pentru a evita problemele de mod comun.

Cablarea RS-485 la un gateway Ethernet–RS-485 (exemplu DataLogger)

Culorile exacte ale firelor pot diferi ușor între loturile OEM — înainte de alimentare verificați întotdeauna eticheta de pe cablu. Inversarea polarității alimentării nu deteriorează senzorul (are protecție la inversarea polarității), dar senzorul pur și simplu nu va răspunde.

Pentru magistrale mai lungi de ~100 m, folosiți cablu torsadat pentru A+ / B− și adăugați un rezistor de terminație de 120 Ω la capătul îndepărtat al liniei. Păstrați toți senzorii pe aceeași referință GND.

Activarea comunicației Modbus

Nu există meniu și nici comutatoare DIP — senzorul vine din fabrică cu Modbus RTU activat. Integrarea înseamnă doar cablarea magistralei RS-485, configurarea gateway-ului și introducerea a două valori la importul în TapHome.

Parametrii seriali RS-485 (setări din fabrică)

Seria XY și modelul de referință Seeed S-THP-01A ies din fabrică cu aceleași setări seriale. Șablonul TapHome pornește de la aceste valori implicite:

SetareValoare
Viteză de transmisie9600 bps
Biți de date8
ParitateNiciuna
Biți de stop1
Adresă slave1

Viteza de transmisie și adresa slave se pot configura software prin registre holding chiar în senzor (consultați ghidul de utilizare Seeed S-THP-01A, registrele 0x0200 / 0x0201, sau fișa tehnică XY-MD02). Șablonul TapHome nu oferă intenționat aceste registre — modificarea lor din TapHome ar întrerupe conexiunea activă.

Configurarea gateway-ului

Configurați gateway-ul Ethernet–RS-485 ca Modbus TCP slave (server) pe portul TCP 502, care transmite comunicația către magistrala RS-485 la 9600, 8-N-1. Atribuiți-i o adresă IP statică (sau o rezervare DHCP), ca adresa să nu se schimbe după o întrerupere a alimentării.

Dacă gateway-ul acceptă mai multe mapări de slave, păstrați acest senzor la Slave ID 1 — este mai simplu decât rescrierea adresei senzorului și corespunde valorii implicite din șablon.

Parametri de import TapHome

La importul șablonului în TapHome, introduceți două valori:

ParametruValoare implicităDescriere
Adresa IP192.168.1.0 (valoare substituent)Introduceți adresa IP reală a gateway-ului Ethernet–RS-485 în rețeaua LAN
Slave ID1Adresa Modbus a senzorului pe magistrala RS-485
Variabilele modulului — corecții de calibrare

După import, în TapHome → Variabilele modulului sunt disponibile trei variabile la nivel de modul pentru calibrarea specifică fiecărei instalări. Aceste corecții se adaugă la fiecare valoare brută:

VariabilăValoare implicităUnitateScop
CORTE0.5°CCorecția de temperatură adăugată la fiecare valoare brută a temperaturii
CORH0.01%RHCorecția de umiditate adăugată la fiecare valoare brută a umidității
CORBAR17hPaCorecția presiunii barometrice adăugată la fiecare valoare brută a presiunii

CORBAR = 17 este o corecție de altitudine specifică unui amplasament — trebuie reglată din nou la fiecare instalare. Dacă rămâne la valoarea implicită, fiecare valoare a presiunii va fi cu 17 hPa mai mare decât presiunea atmosferică locală reală. Începeți cu CORBAR = 0 și reglați după un barometru de referință cunoscut, la altitudinea instalării. La fel, CORTE și CORH trebuie verificate cu un termometru / higrometru de referință amplasat lângă senzor.

Funcțiile dispozitivului

Șablonul oferă trei dispozitive senzor doar pentru citire; toate citesc registre holding prin gateway:

Temperatură

Temperatura aerului de la cipul încorporat din familia SHT, citită din H:0 (uInt16) și scalată cu raw / 10 + CORTE. Se raportează în °C, cu rezoluție de 0,1 °C și precizie tipică de ±0,5 °C.

Umiditate relativă

Umiditatea relativă de la același cip din familia SHT, citită din H:1 (uInt16) și scalată cu raw × 0.001 + CORH. Se raportează în %RH.

Factorul de scalare al umidității este suspect. Un multiplicator ×0.001 ar însemna că registrul brut conține ≈ 100 000 la 100 %RH, ceea ce depășește un registru de 16 biți (maximum 65 535). Modelul de referință XY-MD02 folosește /10, iar Seeed S-THP-01A folosește /100. Formula corectă cea mai probabilă este raw / 10 — conform convenției XY-MD02. Verificați valorile pe hardware real înainte de a vă baza pe ele; dacă valoarea umidității raportate rămâne blocată la o valoare-limită sau este complet în afara intervalului, ajustați șablonul sau folosiți o altă variantă XY.

Presiune barometrică

Presiunea atmosferică de la cipul încorporat din clasa BMP, citită din H:4 ca număr întreg fără semn pe 32 de biți (ocupă H:4–H:5) și scalată cu raw / 100 + CORBAR. Se raportează în hPa, cu rezoluție de 0,1 hPa.

Intervalul de interogare la nivel de dispozitiv din șablonul XML este 1 000 ms pentru barometru, ceea ce este mult prea agresiv — presiunea atmosferică variază pe intervale de ordinul minutelor, nu al secundelor. După import, măriți intervalul de interogare al barometrului în TapHome → Variabilele dispozitivului la 15 000–30 000 ms, pentru a reduce încărcarea magistralei fără a pierde rezoluție utilă. Intervalul de interogare la nivel de modul (30 000 ms), folosit deja pentru temperatură și umiditate, este un bun punct de pornire și pentru barometru.

Rezumatul hărții registrelor

RegistruParametruTip de dateScalare / corecțieUnitateInterval de interogare
H:0TemperaturăuInt16/ 10 + CORTE (0.5)°C30 000 ms (la nivel de modul)
H:1UmiditateuInt16× 0.001 + CORH (0.01) — de verificat%RH30 000 ms (la nivel de modul)
H:4–H:5Presiune barometricăuInt32/ 100 + CORBAR (17)hPa1 000 ms (prea agresiv)

Tipul de date brut uInt16 nu poate reprezenta nativ valori negative. Pe hardware-ul XY-MD02 real, temperaturile sub zero sosesc ca numere întregi cu semn în complement față de doi. Dacă senzorul este instalat într-un mediu în care temperatura scade frecvent sub 0 °C, verificați dacă temperaturile negative sunt decodate corect înainte de a vă baza pe ele.

Rezolvarea problemelor

Nu există valori după import
  1. Dați ping la adresa IP a gateway-ului din aceeași subrețea ca TapHome Core — dacă nu răspunde, problema este în rețeaua LAN / la alimentare, nu în Modbus.
  2. Confirmați că gateway-ul este configurat ca server Modbus TCP pe portul 502, nu ca punte TCP transparentă.
  3. Verificați dacă setările seriale RS-485 ale gateway-ului sunt 9600, 8-N-1 — o nepotrivire aici produce timeout-uri fără niciun mesaj de eroare și fără valori.
  4. Verificați dacă Slave ID-ul senzorului corespunde valorii introduse la importul în TapHome (implicit 1). Un al doilea senzor cu aceeași adresă pe aceeași magistrală va provoca un conflict de adrese.
  5. Verificați cablajul RS-485: A+ la A+, B− la B−, GND comun pentru senzor, sursa de alimentare și gateway.
Valori de umiditate neplauzibile

Șablonul XML folosește pentru umiditate un multiplicator × 0.001, care nu corespunde familiei XY-MD02 (/10) și nici modelului de referință Seeed S-THP-01A (/100). Dacă umiditatea pare blocată aproape de zero sau nu atinge niciodată valori plauzibile, registrul brut folosește probabil convenția XY-MD02. Comparați valoarea brută a registrului, citită cu un instrument de depanare Modbus (de ex. qModbus), cu un higrometru de referință; dacă valorile brute în jur de 500 corespund unei umidități de ~50 %RH, formula trebuie să fie /10, iar șablonul trebuie corectat.

Presiunea este cu ~17 hPa prea mare

Valoarea implicită din șablon CORBAR = 17 este o corecție de altitudine moștenită, specifică unui amplasament. Dacă presiunea este constant cu ~17 hPa mai mare decât la un barometru de referință din apropiere (de ex. o stație meteo), setați CORBAR la 0 în TapHome → Variabilele modulului și reglați după referință.

Încărcare mare a magistralei / erori de comunicare

Măriți intervalul de interogare al barometrului de la 1 000 ms la 15 000–30 000 ms în TapHome → Variabilele dispozitivului. O interogare la 1 Hz pe o magistrală RS-485 comună lasă puțină lățime de bandă pentru celelalte dispozitive slave și nu aduce niciun beneficiu pentru un barometru.

Temperatura negativă apare ca un număr pozitiv foarte mare

Șablonul citește temperatura ca uInt16. Hardware-ul XY real returnează temperaturile negative ca numere întregi cu semn în complement față de doi — o valoare brută 0xFF33 (≈ 65 331) decodată fără semn devine ≈ 6 533,1 °C, dar ar trebui decodată ca −20,5 °C. Dacă senzorul este instalat într-un mediu în care temperatura poate scădea sub 0 °C, verificați comportamentul pe hardware real și luați în considerare înlocuirea șablonului cu o variantă Int16 cu semn înainte de a vă baza pe valorile sub zero.

Dispozitive disponibile

Temperatură, umiditate, barometru Modul
Variabile personalizate
CORBAR (numeric) = 17Corecția presiunii barometrice în hPa, adăugată la fiecare valoare brută a barometrului — folosită ca corecție de altitudine / nivel de referință specifică amplasamentului
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.01Corecția umidității relative în %RH, adăugată la fiecare valoare brută a umidității — folosită pentru compensarea derivei fiecărui senzor
Adjust in TapHome → Module Variables after import. Typical factory calibration is within ±3 %RH; tune against a reference hygrometer.
CORTE (numeric) = 0.5Corecția temperaturii în °C, adăugată la fiecare valoare brută a temperaturii — folosită pentru compensarea derivei fiecărui senzor
Adjust in TapHome → Module Variables after import. Tune against a reference thermometer placed next to the sensor.
Presiune barometrică Variabilă Doar citire

Presiunea atmosferică de la cipul încorporat din clasa BMP, în hPa, cu aplicarea corecției CORBAR specifice instalării

Registru: H:4 uInt32 Unitate: hPa

Presiune barometrică

Citire
MODBUSR(H, 4, uInt32)/100 + CORBAR
Temperatură Variabilă Doar citire

Temperatura aerului ambiant de la senzorul încorporat din familia SHT, în °C, cu aplicarea corecției CORTE specifice instalării

Registru: H:0 uInt16 Unitate: °C

Temperatură

Citire
MODBUSR(H, 0, uInt16)/10 + CORTE
Umiditate relativă Variabilă Doar citire

Umiditatea relativă de la senzorul încorporat din familia SHT, în %RH, cu aplicarea corecției CORH specifice instalării

Registru: H:1 uInt16 Unitate: %RH

Umiditate relativă

Citire
MODBUSR(H, 1, uInt16)*0.001 + CORH
Conexiune: Modbus TCP • Slave ID: $[SlaveId]
Îmbunătățiri posibile (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.

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal