Tuya “Tem&Hum Sensor mit Sonde” in Home Assistant mit individuellem Quirk einbinden

Einige Tuya Temperatur- und Feuchtigkeitssensoren mit externer Sonde liefern über die offizielle Tuya-Integration in Home Assistant nur die interne Temperatur.
Die externe Sonde funktioniert in der Tuya-App und taucht auf der Tuya IoT-Plattform als ext_temp (DP 101) auf, aber Home Assistant erstellt dafür keine eigene Entität.

Um das zu lösen, haben wir einen Custom-Tuya-Quirk mit der Bibliothek tuya-device-handlers gebaut, die Home Assistant intern zur Normalisierung von Tuya-Geräten verwendet.
Dieser Quirk bringt Home Assistant bei, welche zusätzlichen Datenpunkte das Gerät hat, sodass die externe Temperatur (und optional weitere Sonden-Parameter) als Entitäten verfügbar werden.

Warum dieser Quirk nötig war

Das konkrete Gerät ist ein Tuya „Tem&Hum Sensor with Probe“:

  • Tuya-Kategorie: wsdcg

  • Produkt-ID: m7kacaxrxbxeegfs

Auf der Tuya IoT-Plattform meldet das Gerät zusätzliche Datenpunkte für die Sonde:

  • ext_temp (DP 101) – Temperatur der externen Sonde

  • ext_maxtemp (DP 102) – oberer Alarm-Grenzwert

  • ext_mintemp (DP 103) – unterer Alarm-Grenzwert

  • ext_temp_sensivitity (DP 104) – Empfindlichkeit für Temperaturänderungen

  • ext_temp_alarm (DP 105) – Alarmmodus

  • ext_temp_calibration (DP 106) – Temperaturkalibrierung

In den Home-Assistant-Diagnosen und in der offiziellen Tuya-Integration erscheinen dagegen nur:

  • interne Temperatur (va_temperature)

  • Luftfeuchtigkeit (va_humidity)

  • Batteriestatus (battery_state)

Die Temperatur der externen Sonde existiert in Home Assistant nicht, was den Sensor für die Überwachung von Kühlschränken, Gefriertruhen oder Tanks deutlich weniger nützlich macht.

Wie der Quirk aufgebaut wurde

Die Tuya-Integration in Home Assistant nutzt die Bibliothek tuya-device-handlers, die sogenannte Quirks definiert – kleine Python-Skripte, die rohe Tuya-Datenpunkte (DPs) in strukturierte Entitäten übersetzen.

Für diesen Sensor haben wir eine Quirk-Datei erstellt, die:

  1. Gezielt dieses Produkt per Product ID anspricht

    python
    .applies_to(product_id="m7kacaxrxbxeegfs")

    Damit gilt der Quirk nur für dieses spezifische Tuya-Produkt und nicht für alle wsdcg-Geräte.

  2. Die externe Sonde als Integer-Temperatursensor hinzufügt

    python
    .add_dpid_integer( dpid=101, # ext_temp dpcode="ext_temp", # oder ein anderer Temperatur-DP-Code dpmode=DPMode.READ, unit="℃", min=-200, max=1000, scale=1, step=1, )

    Bereich und Skalierung entsprechen der internen Temperatur (va_temperature), sodass ein Rohwert 245 als 24.5 °C interpretiert wird.

  3. Optional die Alarm- und Kalibrierungs-Datenpunkte abbildetWeitere add_dpid_integer-Aufrufe können ext_maxtemp, ext_mintemp, ext_temp_sensivitity und ext_temp_calibration abbilden, damit Home Assistant diese Werte lesen und, falls unterstützt, schreiben kann.

  4. Den Quirk im globalen Registry registriert

    python
    .register(TUYA_QUIRKS_REGISTRY)

    Dadurch findet die Tuya-Integration den Quirk beim Start von Home Assistant.

Das Ergebnis ist eine kleine Python-Datei, die Home Assistant erklärt, wie DP 101–106 als Temperatur- und Konfigurationsentitäten der Sonde genutzt werden, statt ignoriert zu werden.

Installation des Quirks in Home Assistant (File Editor)

Sie müssen weder Home Assistant noch die Tuya-Integration patchen. Der Quirk wird als Custom-Tuya-Quirk im Verzeichnis /config abgelegt, ähnlich wie benutzerdefinierte ZHA-Quirks.

  1. File-Editor-Add-on installieren

    • Einstellungen → Add-ons → Add-on Store.

    • File Editor installieren (oder Studio Code Server).

  2. Ordner für Tuya-Quirks anlegen

    • Im File Editor /config öffnen.

    • Einen neuen Ordner anlegen, z. B.:
      tuya_quirks

    • Darin eine neue Datei anlegen, z. B.:
      wsdcg_bf0376ec16496a5b0apzxs.py (der Dateiname ist frei wählbar).

  3. Quirk-Code einfügen

    • Den Python-Code mit DeviceQuirk(), add_dpid_integer für DP 101 (und evtl. weitere Sonden-DPs) sowie .register(TUYA_QUIRKS_REGISTRY) ans Ende kopieren.

    • Datei speichern.

  4. Home Assistant neu starten

    • Ein kompletter Neustart stellt sicher, dass die Tuya-Integration den neuen Quirk lädt.

  5. Tuya-Gerät neu laden oder neu hinzufügen

    • Einstellungen → Geräte & Dienste → Tuya → Neu laden oder das betreffende Gerät entfernen und erneut hinzufügen.

Nutzung der neuen Entität für die externe Temperatur

Nach Neustart und Reload sollte das Gerät eine zusätzliche Temperatur-Entität bereitstellen, z. B.:

  • sensor.tem_hum_sensor_with_probe_external_temperature
    oder

  • sensor.tem_hum_sensor_with_probe_ext_temp

Diese Entität können Sie:

  • in Dashboards einbinden,

  • in Automatisierungen verwenden (z. B. Alarm, wenn die Gefrierschrank-Temperatur steigt),

  • in Historie und Statistiken auswerten.

Beachten Sie, dass viele batteriebetriebene Tuya-Sensoren Messwerte nur bei größeren Änderungen oder in festen Intervallen senden, sodass Aktualisierungen verzögert auftreten können.

Empfohlene Produkte1

%s ...
%s
%image %title %code %s