TapHome

Zhong Sheng (XY) Temperatur, Feuchte, Barometer

Modbus TCP
Eingereicht von
Zuletzt aktualisiert: 06. 2026
Zhong Sheng (XY) Temperatur, Feuchte, Barometer

Der Zhong Sheng (XY) Temperatur-, Feuchte- und Barometer-Sensor ist ein chinesischer Drei-in-eins RS-485 Modbus-Sensor, der Umgebungstemperatur, relative Feuchte und Luftdruck liefert. Er stammt aus derselben OEM-Familie wie der bekannte Temperatur-/Feuchte-Messumformer XY-MD02, erweitert um einen Drucksensor der BMP-Klasse — allerdings mit einem nicht standardmäßigen Registerlayout, das speziell für diese Rebrand-Variante gilt.

Die TapHome-Vorlage verbindet sich mit dem Sensor über Modbus TCP via Ethernet-zu-RS-485-Gateway, nicht direkt. Das Gateway verbindet TapHome Core (LAN) mit dem RS-485-Bus, auf dem der Sensor unter einer konfigurierbaren Slave-ID sitzt. Drei Messwerte werden bereitgestellt — Temperatur, relative Feuchte und Luftdruck — jeweils kombiniert mit einem deployment-spezifischen Kalibrieroffset (CORTE, CORH, CORBAR).

Hardware-Anschluss

Der Sensor ist ein Modbus-RTU-Gerät am RS-485-Bus. TapHome Core erreicht ihn über das Netzwerk mithilfe eines Ethernet-zu-RS-485-Gateways (geeignet ist jedes Standard-Modbus-TCP-zu-RTU-Gateway, z. B. USR-TCP232, Waveshare oder ein gleichwertiger Hutschienen-Konverter).

1
2
3
4
┌─────────────┐            ┌───────────────────────┐            ┌──────────────────┐
│ TapHome Core│  Ethernet  │ Ethernet ↔ RS-485     │  RS-485    │ XY Sensor        │
│             │ ─────────▶ │ Gateway (TCP Port 502)│ ─────────▶ │ (Slave-ID 1)     │
└─────────────┘            └───────────────────────┘            └──────────────────┘
RS-485-Verdrahtung
Farbcodierung der RS-485-Kabel an den Quetschklemmen

Der Sensor verwendet ein Kabel mit Quetschklemmen und vier Adern nach der Konvention der Seeed-S-THP-01A-Referenz (identische Belegung wie bei den meisten Sensoren der XY-Serie):

AderfarbeFunktion
RotV+ (Versorgung, 4,5–18 V DC)
SchwarzGND (Versorgungs-/Signalmasse)
GelbRS-485 A+
WeißRS-485 B−

Schließe A+ und B− an die entsprechenden Klemmen des Ethernet-zu-RS-485-Gateways an und lege GND gemeinsam zwischen Sensor, Netzteil und Gateway, um Common-Mode-Probleme zu vermeiden.

RS-485-Verdrahtung zu einem Ethernet-zu-RS-485-Gateway (DataLogger-Beispiel)

Die genauen Aderfarben können je nach OEM-Charge leicht abweichen — überprüfe die Beschriftung direkt am Kabel, bevor du Spannung anlegst. Eine Verpolung der Versorgung beschädigt den Sensor nicht (er besitzt einen Verpolungsschutz), er antwortet dann jedoch einfach nicht.

Für Buslängen über ~100 m verwende verdrilltes, geschirmtes Kabel für A+ / B− und setze am Leitungsende einen 120-Ω-Abschlusswiderstand. Halte alle Sensoren auf demselben GND-Referenzpotential.

Modbus-Kommunikation aktivieren

Es sind weder ein Menü noch DIP-Schalter nötig — der Sensor wird mit aktiviertem Modbus RTU ausgeliefert. Die Integration besteht ausschließlich aus der RS-485-Verdrahtung, der Gateway-Konfiguration und zwei Eingaben beim TapHome-Import.

RS-485 Serielle Parameter (Werkseinstellung)

Sowohl die XY-Serie als auch die Seeed-S-THP-01A-Referenz verlassen das Werk mit denselben seriellen Einstellungen. Die TapHome-Vorlage geht von diesen Werkseinstellungen aus:

EinstellungWert
Baudrate9600 bps
Datenbits8
Paritätkeine
Stoppbits1
Slave-Adresse1

Baudrate und Slave-Adresse lassen sich per Software über Holding-Register direkt am Sensor konfigurieren (siehe Seeed-S-THP-01A-Anleitung, Register 0x0200 / 0x0201, oder XY-MD02-Datenblatt). Die TapHome-Vorlage legt diese Register bewusst nicht offen — eine Änderung aus TapHome heraus würde die aktive Verbindung abbrechen.

Gateway-Konfiguration

Konfiguriere das Ethernet-zu-RS-485-Gateway als Modbus-TCP-Slave (Server) auf TCP-Port 502, das zum darunterliegenden RS-485-Bus mit 9600, 8-N-1 proxyt. Weise ihm eine statische IP-Adresse (oder eine DHCP-Reservierung) zu, damit sie nach einem Stromausfall unverändert bleibt.

Wenn das Gateway mehrere Slave-Mappings unterstützt, belasse diesen Sensor auf Slave-ID 1 — das ist einfacher als die Adresse am Sensor zu ändern und entspricht der Vorlagen-Voreinstellung.

TapHome-Importparameter

Gib beim Import der Vorlage in TapHome zwei Werte an:

ParameterVoreinstellungBeschreibung
IP-Adresse192.168.1.0IP des Ethernet-zu-RS-485-Gateways im LAN
Slave-ID1Modbus-Adresse des Sensors am RS-485-Bus
Modulvariablen — Kalibrieroffsets

Nach dem Import stehen in TapHome → Modulvariablen drei Variablen auf Modulebene für die deployment-spezifische Kalibrierung zur Verfügung. Sie werden auf jeden Rohmesswert addiert:

VariableVoreinstellungEinheitZweck
CORTE0,5°CTemperaturoffset, zu jedem Roh-Temperaturwert addiert
CORH0,01%RHFeuchteoffset, zu jedem Roh-Feuchtewert addiert
CORBAR17hPaDruckoffset, zu jedem Roh-Druckwert addiert

CORBAR = 17 ist eine standortspezifische Höhenkorrektur — sie muss bei jeder Installation neu abgestimmt werden. Wird die Werkseinstellung belassen, wird jeder Druckmesswert um +17 hPa gegenüber dem tatsächlichen lokalen Luftdruck verfälscht. Starte mit CORBAR = 0 und stimme gegen ein bekanntes Referenzbarometer in der Installationshöhe ab. Auch CORTE und CORH sollten gegen ein Referenzthermometer/-hygrometer direkt neben dem Sensor überprüft werden.

Gerätefunktionen

Die Vorlage stellt drei Read-only-Sensorgeräte bereit, die alle Holding-Register über das Gateway lesen:

Temperatur

Lufttemperatur vom integrierten Chip der SHT-Klasse, aus H:0 (uInt16) gelesen und als raw / 10 + CORTE skaliert. Angabe in °C mit 0,1 °C Auflösung und typisch ±0,5 °C Genauigkeit.

Relative Feuchte

Relative Feuchte vom selben Chip der SHT-Klasse, aus H:1 (uInt16) gelesen und als raw × 0,001 + CORH skaliert. Angabe in %RH.

Der Feuchte-Skalierungsfaktor ist verdächtig. Ein Multiplikator von ×0,001 impliziert, dass der Rohregister bei 100 %RH ≈ 100 000 enthalten müsste, was einen 16-Bit-Register (max. 65 535) überläuft. Die Referenz XY-MD02 nutzt /10 und der Seeed S-THP-01A nutzt /100. Die wahrscheinlich richtige Formel ist raw / 10 — analog zur XY-MD02-Konvention. Überprüfe die Messwerte auf echter Hardware, bevor du ihnen vertraust; wenn die gemeldete Feuchte geclippt oder völlig aus dem Rahmen ist, passe die Vorlage an oder nutze eine andere XY-Variante.

Luftdruck

Luftdruck vom integrierten Chip der BMP-Klasse, aus H:4 als 32-Bit-Unsigned-Integer gelesen (über H:4H:5 verteilt) und als raw / 100 + CORBAR skaliert. Angabe in hPa mit 0,1 hPa Auflösung.

Das Abfrageintervall auf Geräteebene steht in der XML-Vorlage beim Barometer auf 1 000 ms, was viel zu aggressiv ist — der Luftdruck ändert sich im Minuten-, nicht im Sekundenbereich. Erhöhe das Abfrageintervall des Barometers nach dem Import in TapHome → Gerätevariablen auf 15 000–30 000 ms, um die Buslast zu reduzieren, ohne sinnvolle Auflösung zu verlieren. Das Modulintervall von 30 000 ms, das bereits für Temperatur und Feuchte gilt, ist auch für das Barometer ein guter Ausgangspunkt.

Register-Übersicht

RegisterParameterDatentypSkala / OffsetEinheitAbfrageintervall
H:0TemperaturuInt16/ 10 + CORTE (0,5)°C30 000 ms (Modulebene)
H:1FeuchteuInt16× 0,001 + CORH (0,01) — prüfen%RH30 000 ms (Modulebene)
H:4H:5LuftdruckuInt32/ 100 + CORBAR (17)hPa1 000 ms (zu aggressiv)

Der Rohdatentyp uInt16 kann negative Werte nicht nativ darstellen. Auf echter XY-MD02-Hardware kommen Temperaturen unter null als Zweierkomplement mit Vorzeichen an. Wird der Sensor in einer Umgebung eingesetzt, die regelmäßig unter 0 °C fällt, prüfe auf echter Hardware, ob negative Temperaturen korrekt dekodiert werden, bevor du dich darauf verlässt.

Fehlerbehebung

Keine Messwerte nach dem Import
  1. Pinge die Gateway-IP aus dem gleichen Subnetz wie TapHome Core — antwortet es nicht, liegt das Problem im LAN oder in der Stromversorgung, nicht bei Modbus.
  2. Stelle sicher, dass das Gateway als Modbus-TCP-Server auf Port 502 konfiguriert ist und nicht als transparente TCP-Brücke.
  3. Prüfe, dass die seriellen RS-485-Einstellungen des Gateways 9600, 8-N-1 entsprechen — eine Abweichung hier erzeugt stillschweigend Timeouts ohne Messwerte.
  4. Prüfe, dass die Slave-ID des Sensors dem beim TapHome-Import eingegebenen Wert entspricht (Voreinstellung 1). Ein zweiter Sensor am selben Bus mit derselben Adresse erzeugt eine Kollision.
  5. Inspiziere die RS-485-Verdrahtung: A+ an A+, B− an B−, gemeinsames GND zwischen Sensor, Netzteil und Gateway.
Unplausible Feuchtewerte

Die XML-Vorlage verwendet einen Feuchtemultiplikator von × 0,001, der mit der XY-MD02-Familie (/10) und der Seeed-S-THP-01A-Referenz (/100) nicht konsistent ist. Wenn die Feuchte nahe null festhängt oder nie plausible Werte erreicht, verwendet der Rohregister wahrscheinlich die XY-MD02-Konvention. Überprüfe den Rohregisterwert mit einem Modbus-Debugging-Tool (z. B. qModbus) gegen ein Referenzhygrometer; entsprechen Rohwerte um 500 etwa ~50 %RH, sollte die Formel /10 sein und die Vorlage angepasst werden.

Druckmessung um ~17 hPa verschoben

Die Voreinstellung CORBAR = 17 der Vorlage ist eine alte standortspezifische Höhenkorrektur. Wenn der Druck durchgehend ~17 hPa über einem nahegelegenen Referenzbarometer (z. B. Wetterstation) liegt, setze CORBAR in TapHome → Modulvariablen auf 0 und stimme gegen die Referenz ab.

Hohe Buslast / Kommunikationsfehler

Erhöhe das Abfrageintervall des Barometers von 1 000 ms auf 15 000–30 000 ms in TapHome → Gerätevariablen. Eine 1-Hz-Abfrage auf einem gemeinsam genutzten RS-485-Bus lässt kaum Bandbreite für andere Slaves und bringt beim Barometer keinerlei Nutzen.

Negative Temperatur erscheint als riesige positive Zahl

Die Vorlage liest die Temperatur als uInt16. Echte XY-Hardware liefert negative Temperaturen als Zweierkomplement-Zahlen — ein Rohwert von 0xFF33 (≈ 65 331) als Unsigned dekodiert ergibt ≈ 6 533,1 °C, sollte aber als −20,5 °C dekodiert werden. Wenn der Sensor in einer Umgebung installiert ist, die unter 0 °C fallen kann, prüfe das Verhalten auf echter Hardware und erwäge, die Vorlage durch eine Variante mit vorzeichenbehaftetem Int16 zu ersetzen, bevor du dich auf Werte unter null verlässt.

Verfügbare Geräte

Temperatur, Feuchte, Barometer Modul
Benutzerdefinierte Variablen
CORBAR (numeric) = 17Luftdruck-Offset in hPa, der zu jedem Roh-Barometerwert addiert wird — dient als standortspezifische Höhen-/Referenzpegelkorrektur
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 der relativen Feuchte in %RH, der zu jedem Roh-Feuchtewert addiert wird — zur Kompensation der sensorindividuellen Drift
Adjust in TapHome → Module Variables after import. Typical factory calibration is within ±3 %RH; tune against a reference hygrometer.
CORTE (numeric) = 0.5Temperatur-Offset in °C, der zu jedem Roh-Temperaturwert addiert wird — zur Kompensation der sensorindividuellen Drift
Adjust in TapHome → Module Variables after import. Tune against a reference thermometer placed next to the sensor.
Luftdruck Variable Nur lesen

Luftdruck vom integrierten Chip der BMP-Klasse in hPa, mit angewandtem deployment-spezifischem CORBAR-Offset

Register: H:4 uInt32 Einheit: hPa

Luftdruck

Lesen
MODBUSR(H, 4, uInt32)/100 + CORBAR
Temperatur Variable Nur lesen

Umgebungslufttemperatur vom integrierten Sensor der SHT-Familie in °C, mit angewandtem deployment-spezifischem CORTE-Offset

Register: H:0 uInt16 Einheit: °C

Temperatur

Lesen
MODBUSR(H, 0, uInt16)/10 + CORTE
Relative Feuchte Variable Nur lesen

Relative Feuchte vom integrierten Sensor der SHT-Familie in %RH, mit angewandtem deployment-spezifischem CORH-Offset

Register: H:1 uInt16 Einheit: %RH

Relative Feuchte

Lesen
MODBUSR(H, 1, uInt16)*0.001 + CORH
Verbindung: Modbus TCP • Slave ID: $[SlaveId]
Mögliche Verbesserungen (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.

Quellen

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Von TapHome verifiziert

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen