
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).
| |
RS-485-Verdrahtung

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):
| Aderfarbe | Funktion |
|---|---|
| Rot | V+ (Versorgung, 4,5–18 V DC) |
| Schwarz | GND (Versorgungs-/Signalmasse) |
| Gelb | RS-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.

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:
| Einstellung | Wert |
|---|---|
| Baudrate | 9600 bps |
| Datenbits | 8 |
| Parität | keine |
| Stoppbits | 1 |
| Slave-Adresse | 1 |
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:
| Parameter | Voreinstellung | Beschreibung |
|---|---|---|
| IP-Adresse | 192.168.1.0 | IP des Ethernet-zu-RS-485-Gateways im LAN |
| Slave-ID | 1 | Modbus-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:
| Variable | Voreinstellung | Einheit | Zweck |
|---|---|---|---|
CORTE | 0,5 | °C | Temperaturoffset, zu jedem Roh-Temperaturwert addiert |
CORH | 0,01 | %RH | Feuchteoffset, zu jedem Roh-Feuchtewert addiert |
CORBAR | 17 | hPa | Druckoffset, zu jedem Roh-Druckwert addiert |
CORBAR = 17ist 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 mitCORBAR = 0und stimme gegen ein bekanntes Referenzbarometer in der Installationshöhe ab. AuchCORTEundCORHsollten 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,001impliziert, 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/10und der Seeed S-THP-01A nutzt/100. Die wahrscheinlich richtige Formel istraw / 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:4–H: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
| Register | Parameter | Datentyp | Skala / Offset | Einheit | Abfrageintervall |
|---|---|---|---|---|---|
H:0 | Temperatur | uInt16 | / 10 + CORTE (0,5) | °C | 30 000 ms (Modulebene) |
H:1 | Feuchte | uInt16 | × 0,001 + CORH (0,01) — prüfen | %RH | 30 000 ms (Modulebene) |
H:4–H:5 | Luftdruck | uInt32 | / 100 + CORBAR (17) | hPa | 1 000 ms (zu aggressiv) |
Der Rohdatentyp
uInt16kann 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
- 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.
- Stelle sicher, dass das Gateway als Modbus-TCP-Server auf Port 502 konfiguriert ist und nicht als transparente TCP-Brücke.
- Prüfe, dass die seriellen RS-485-Einstellungen des Gateways 9600, 8-N-1 entsprechen — eine Abweichung hier erzeugt stillschweigend Timeouts ohne Messwerte.
- 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. - Inspiziere die RS-485-Verdrahtung:
A+anA+,B−anB−, 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.