How to detect mold risk with Home Assistant
Learn how to use Home Assistant locally to monitor humidity and temperature, spot mold-prone conditions, and set up alerts that keep your home healthy.
Mold thrives in damp, poorly ventilated spaces, and early detection can save you from costly repairs and health issues. Home Assistant, running locally, lets you pull together temperature, humidity, and air-quality data from a variety of sensors, then turn those readings into actionable warnings. Below is a practical guide to building a mold-risk monitoring system that stays private, reliable, and easy to expand.
A handful of local temperature/humidity sensors - the Aqara Climate Sensor W100 or an AirGradient ONE, or an Eve Room if you already own one - feeding a template sensor that flags sustained humidity above 60%, plus an automation that notifies you and switches on an exhaust fan or dehumidifier.
How the monitoring works
Mold growth typically begins when relative humidity stays above 60 % for extended periods, especially in cool corners like basements, bathrooms, or behind furniture. By continuously logging temperature and humidity, you can calculate dew point and assess a simple humidity-based mold risk score. The established building-science model is the VTT Mould Index, which also factors in temperature; the template below is a simplified humidity-only proxy. Home Assistant can take readings from any sensor that speaks MQTT, Zigbee, Z-Wave, or ESPHome, with nothing leaving your network.
The real power comes from automations: when conditions cross a threshold, you can trigger notifications, turn on exhaust fans, or even adjust a dehumidifier. Everything runs on hardware you control, such as a Home Assistant Green. Budget for one extra part if the Green is your host: it has no built-in radios. The Zigbee or Thread sensors below need a USB stick such as the Home Assistant Connect ZBT-2, and a Z-Wave sensor like the ZSE44 needs its own 800-series stick. Wi-Fi monitors such as the AirGradient ONE are the exception: they reach the Green over your own network with no stick at all.
Key sensors and placement
Choosing the right sensors is the first step. For basic temperature/humidity monitoring, the Aqara Climate Sensor W100 is a reliable choice that reports every few minutes and works well in bedrooms or living rooms. If you want to compare options first, see the best Zigbee temperature and humidity sensors ranked. One setup detail catches people out: the W100 runs either Zigbee 3.0 or Thread (Matter), never both at once, and it ships in Thread firmware. To pair it to Zigbee2MQTT or ZHA you first switch its protocol to Zigbee in the Aqara Home app. That is a one-time step: afterwards you can remove the sensor from your Aqara account and it stays on Zigbee, fully local, with no Aqara hub involved. If you prefer a Thread/HomeKit device, the Eve Room offers accurate readings plus VOC sensing, which can hint at early mold-related volatile compounds. Note the buying situation first, though: Eve has taken the Eve Room product page off evehome.com (the old URL now redirects to Eve’s home page), and Amazon US, Best Buy, Newegg and Verizon all show it unavailable, no longer available new, or delisted (checked 2026-08-28). Eve has published no discontinuation notice, so this is not a formal end-of-life, it is realistically an option only if you already own one.
For dedicated air-quality insight indoors, the AirGradient ONE is the pick: an open-source monitor measuring PM2.5, CO2, temperature, and humidity for a broader picture of indoor health. For a wider comparison of these monitors, see the best air quality sensors for Home Assistant. Place one near your HVAC return and another in a high-moisture area like the bathroom. Its outdoor sibling, the AirGradient Open Air, is built for exterior reference when you want to compare indoor against outside conditions.
If you already use HomeKit, the Eve Weather can sit outdoors to compare indoor/outdoor conditions, helping you decide when to ventilate. For Z-Wave networks, the Zooz ZSE44 Temp Humidity Sensor is a rugged choice for basements or crawlspaces.
When positioning sensors, avoid direct sunlight, drafts from vents, or placement behind furniture. Aim for breathing height (about 1 m) in the center of the room, and keep them at least 30 cm away from walls to capture true ambient conditions. In multi-story homes, place at least one sensor per floor and one in each bathroom.
Automations and alerts
Once sensors are feeding data into Home Assistant, create a template sensor that computes the mold risk index:
template:
- sensor:
- name: "Bathroom Mold Risk"
unit_of_measurement: "%"
state: >-
{{ ((states('sensor.bathroom_humidity') | float(0)) - 60) * 2 }}
This simple example subtracts the 60 % baseline and scales the result. The float(0) default matters: since Home Assistant 2021.12 there is no implicit default, so a bare | float raises a template error whenever the source sensor is unavailable or unknown, which happens on every restart and routinely with battery sensors. You can replace the formula with a more sophisticated model (such as the VTT Mould Index, which also accounts for temperature) if desired. Next, set up an automation that fires when the index exceeds a safe level:
- Trigger: Numeric state of
sensor.bathroom_mold_riskabove 30 for 10 minutes. - Action:
- Send a persistent notification to your phone.
- Turn on a bathroom exhaust fan (e.g., via a Shelly 1 Mini Gen3).
- If you have a dehumidifier plugged into a smart plug, switch it on (any local Z-Wave, Zigbee, or Matter smart plug rated for the load works).
Add a second automation to reset the fan/dehumidifier when humidity drops below 50 % for 15 minutes, preventing over-drying and saving energy.
For a more polished dashboard, add a gauge card showing the mold risk percentage and a history graph of temperature/humidity. You can also include a “ventilation recommended” button that manually triggers the exhaust fan for 20 minutes.