Keller schwitzen. An einem warmen, schwülen Tag ist die Luft, die du hereinlässt, wärmer als der kalte Beton, und in dem Moment, in dem sie eine kalte Oberfläche berührt, gibt sie ihr Wasser ab. Das ist Kondensation, und über genug Sommer hinweg ist das der Weg, auf dem ein Keller in den Ecken Schimmel bekommt, in die du nie schaust. Ich wollte eine Zahl, die mich warnt, bevor das passiert. Den Haken kannte ich schon vorher: Ein roher Wert der relativen Feuchte ist diese Zahl nicht.
Das ist Teil 08 der Serie. Der Hub lief schon im Haus für andere Dinge, und die Installation war ehrlich gesagt die einfachen 20 Minuten. Der Teil, über den es sich zu schreiben lohnt, kam danach: die beiden rohen Messwerte des Sensors in eine Taupunkt-Spanne zu verwandeln und zu entscheiden, wann diese Spanne "handeln" heißt und wann "den Ausschlag ignorieren".
Warum der H100, und warum 868 MHz der ganze Punkt ist
Der Hub ist ein TP-Link Tapo H100, ein kleiner Smart Hub, der als Funkbrücke für TP-Links Batteriesensoren dient — den T100 (Bewegung), den T110 (Kontakt) und den, um den es mir hier geht, den T310 Temperatur-/Feuchtesensor. Hier das tragende Detail, und es ist der Grund, warum ich zu diesem Hub statt zu einem WLAN-Sensor gegriffen habe: Die Tapo-Sensoren funken kein WLAN. Sie sprechen mit dem H100 über 868-MHz-Sub-GHz-Funk.
Das zählt im Keller mehr als irgendwo sonst. Sub-GHz ist langreichweitig und durchdringt Beton und Decken auf eine Art, wie es 2,4-GHz-WLAN schlicht nicht tut. In meinem Keller gibt es kein WLAN, das der Rede wert wäre, und keine Lust, einen Repeater in einen feuchten Raum zu hängen, nur um einen Sensor auszulesen. Der T310 sitzt da unten am Akku, der H100 oben, wo das Netzwerk ist, und die Funkstrecke dazwischen erledigt die Arbeit. Ein H100 unterstützt bis zu 64 Sensoren — für ein Haus mehr Reserve, als ich je nutzen werde.
Die Sensoren in Home Assistant bekommen
Die native TP-Link-Integration legt die Kindsensoren des H100 nicht offen — sie ist für die Steckdosen und Lampen gebaut. Was funktioniert, ist die Community-Integration Tapo Controller (petretiandreas TP-Link Tapo), installiert über HACS, denselben Store für Custom-Integrationen, auf den ich mich durch diese ganze Serie gestützt habe. Wenn du mitgelesen hast, hast du HACS schon; das ist ein weiteres Repository zum Hinzufügen.
Die Einrichtung läuft über die lokale IP des Hubs plus die E-Mail und das Passwort deines Tapo-Cloud-Kontos — der ehrliche Haken, den es zu erwähnen lohnt, denn das heißt, das erste Pairing braucht Internet statt eines rein lokalen Tokens. Sobald gekoppelt, wird jeder Sensor am Hub automatisch erkannt. Jeder T310 taucht als zwei Entitäten auf — ein sensor.tapo_temperature_* und ein sensor.tapo_humidity_* — plus ein Batteriesensor pro Gerät. Ich habe die Kinder des Keller-Geräts nach Standort umbenannt, sodass ich mit sensor.tapo_humidity_keller arbeite statt mit einem zufälligen Suffix. Mach das früh; es macht jedes nachgelagerte Template lesbar.
Relative Feuchte ist der falsche Auslöser — der Taupunkt ist der richtige
Hier der technische Kern. Warne bei "Feuchte über 70%", und du bekommst einen Sensor, der an jedem schwülen Nachmittag schreit und dir nichts darüber sagt, ob der Keller tatsächlich in Gefahr ist. Relative Feuchte ist relativ zur Temperatur; 75% rF in einem kühlen Keller und 75% rF in einem warmen Raum sind völlig verschiedene Wassermengen in der Luft. Was Kondensation wirklich vorhersagt, ist der Taupunkt — und die Spanne zwischen ihm und der kältesten Oberfläche im Raum. Wird diese Spanne klein, bist du nah dran, dass die Wand nass wird.
Home Assistant liefert dir keinen Taupunkt. Aber es liefert dir Temperatur und Feuchte, und der Taupunkt ist Arithmetik darüber — die Magnus-Formel. Genau dieses Muster habe ich an anderer Stelle in meiner Konfiguration genutzt: Ich pflege schon eine templates.yaml, in der rohe Sensoren zu abgeleiteten werden — ein rohes Boiler-Register skalieren, PV-Prozentsätze wie Eigenverbrauch und Autarkie berechnen. Ein Keller-Taupunkt-Sensor ist derselbe Zug, mit einer anderen Gleichung, definiert als Template-Sensor mit eigener unique_id, Einheit und device_class. Hier der für den Keller.
# Derived dew-point sensor for the cellar T310 (templates.yaml style)
template:
- sensor:
- name: "Taupunkt Keller"
unique_id: taupunkt_keller
unit_of_measurement: "°C"
device_class: temperature
state: >
{% set t = states('sensor.tapo_temperature_keller') | float(0) %}
{% set rh = states('sensor.tapo_humidity_keller') | float(0) %}
{% set a = 17.27 %}{% set b = 237.7 %}
{% set g = (a * t) / (b + t) + log(rh / 100) %}
{{ ((b * g) / (a - g)) | round(1) }}Ein Wort zu den Schwellen, um ehrlich zu sein, was gemessen ist und was Richtwert. Das sind allgemeine bauphysikalische Werte, nichts, was ich an meinen eigenen Wänden kalibriert habe: relative Feuchte wird bei anhaltenden 65–70% rF zum Thema, das Schimmelrisiko steigt, sobald die Oberflächen-rF über rund 70–80% liegt, und eine Taupunkt-Spanne unter etwa 3 °C ist die echte "Kondensation steht bevor"-Linie. Behandle sie als Start-Regler, nicht als Evangelium. Der Sinn, den Taupunkt lokal zu berechnen, ist ja gerade, dass du sie justieren kannst — die Formel und der Auslöser gehören dir.
Den Alarm bei einem echten Problem auslösen, nicht bei einem Ausschlag
Die andere Entscheidung, die mehr wert ist als die Formel: das Timing. Feuchte ist verrauscht. Mach eine Tür auf, trockne Wäsche in der Nähe, und der Wert springt für ein paar Minuten hoch und beruhigt sich. Würde die Automation bei einem einzigen hohen Messwert auslösen, hätte ich mir innerhalb einer Woche antrainiert, sie zu ignorieren. Also löst der Auslöser nur bei einer anhaltenden Überschreitung aus — Feuchte über Schwelle, durchgehend 30 Minuten gehalten. Diese Entprellung ist der Unterschied zwischen einem Alarm, dem ich traue, und einem, den ich stummschalte.
Und dann der Teil, den ich an diesem Hub wirklich mag: Der Alarm braucht keine Extra-Hardware. Der H100 ist nicht nur eine passive Brücke — er legt einen Schalter für seine eingebaute Sirene offen, ein Select für den Alarmton, eine Number für die Lautstärke und einen RGB-Nachtlichtring. Eine Feuchtewarnung kann also das eigene Licht des Hubs ansteuern: rot blinken lassen, wenn der Keller die Linie überschreitet. Kein Summer zu verdrahten, keine smarte Lampe zu kaufen — das Ding, das den Sensor anbindet, meldet auch das Problem. Das sind drei Eskalationen gratis: ein Home-Assistant-Push, der Sirenenschalter und der RGB-Ring.
# Flash the H100's own light red when cellar humidity is too high
automation:
- alias: "Keller: Feuchtigkeit Warnung"
trigger:
- platform: numeric_state
entity_id: sensor.tapo_humidity_keller
above: 70
for: "00:30:00"
action:
- service: light.turn_on
target:
entity_id: light.tapo_h100_light
data:
rgb_color: [255, 0, 0]
brightness: 128Dieses Rot ist ein bewusstes [255, 0, 0] bei Helligkeit 128 — hell genug, um auf der Treppe ins Auge zu fallen, kein Flutlicht. Für ein langsames Problem wie Kellerfeuchte reichen ein leiser Push plus ein rotes Glühen völlig; die Sirene hebe ich für Dinge auf, die wirklich laut sein wollen.
Wenn Sensoren nicht auftauchen
Drei Dinge erklären fast jeden "mein T310 ist nicht in Home Assistant"-Moment. Am häufigsten ist der Sensor schlicht noch nicht in der Tapo-App mit dem H100 gekoppelt — die Integration sieht nur, was der Hub schon kennt, also passiert das Pairing zuerst in der App, die Erkennung danach. Als Nächstes eine leere Batterie; das sind Knopfzellengeräte, und ein leeres wird einfach still. Und manchmal muss Home Assistant neu starten, um ein frisch gekoppeltes Gerät zu erkennen. Wenn nichts davon es erklärt, filtere ich das Log auf tapo und lese, worüber sich die Integration tatsächlich beschwert — meist ein Auth-Schluckauf gegen das Cloud-Konto oder ein Hub, den sie nicht erreicht.
Fair sein bei den Kompromissen. Der Cloud-Konto-Login ist der nervige Teil eines sonst lokalen Setups; die 64-Sensor-Grenze ist für ein Haus kein Thema. Aber der Funk ist der Grund, warum das überhaupt funktioniert: ein Batteriesensor auf der falschen Seite einer Betonwand, der periodisch meldet, statt abgefragt zu werden, und einen Hub im Stockwerk darüber über 868 MHz erreicht — ein Problem, das WLAN-Sensoren nicht lösen. Das Taupunkt-Template und die 30-Minuten-Entprellung waren das Neue, das ich obendrauf gebaut habe; der Hub und seine automatisch erkannten Entitäten liefen schon. Das ist die ehrliche Form der Sache: ein kleiner günstiger Sensor und etwas Arithmetik machten aus einem Wert, mit dem ich nichts anfangen konnte, eine Warnung, mit der ich etwas anfangen kann.



