DIY Dew Point Ventilation with Home Assistant & Node-RED for Basement Humidity Control
Home automation project

Table of Contents
Have questions?
Controlling humidity the smart way: This guide shows how to build a fully automated dew point ventilation system using Home Assistant and Node-RED. By comparing indoor and outdoor dew point values, you only ventilate when the air outside can actually reduce moisture inside, saving energy and preventing mold growth, especially in basements or utility rooms.
What is a Dew Point Ventilation?
Dew point ventilation systems automate fresh air intake + exhaust based on moisture physics instead of just running fans on a timer. It uses temperature + relative humidity to calculate dew point (the temperature where condensation occurs). If outdoor air can absorb more moisture (i.e., its dew point is sufficiently lower than indoors), ventilating reduces indoor humidity naturally.
Dehumidifiers consume more power, need drainage, add noise, and don’t scale well if you have multiple rooms. A dew point driven fan system:
- Uses inexpensive sensors + fans
- Scales by duplicating logic per room
- Avoids running when ineffective
- Can integrate with presence, doors, buttons, or time windows
If outdoor air is too moist (e.g. rainy summer), your system simply waits.
Needed Setup Materials
- Running Home Assistant instance
- Temperature + humidity sensor (indoor)
- Temperature + humidity sensor (outdoor)
- 2–4 inline or axial fans (continuous-rated preferred)
- Smart plugs or smart relay (HA compatible, optional energy monitoring)
Optional upgrades: Door sensor, wall buttons, additional room sensors
Setup
Step 1: Place Sensors
Install at least one indoor sensor in the target room (basement recommended) and one outdoor sensor shielded from sun/rain.
All sensors must report into Home Assistant.
If the sensors/ integrations already provide dew point values, you can skip this next section.
Create template sensors in the configuration.yaml file. Make sure to replace sensor.humidity / sensor.temperature with your actual entity IDs, then restart Home Assistant. Adjust the unit_of_measurement if you use Fahrenheit.
sensor:
- platform: template
sensors:
dewpoint_inside:
friendly_name: "Dewpoint Inside"
value_template: >-
{% set H = states('sensor.humidity') | float(default=0) %}
{% set T = states('sensor.temperature') | float(default=0) %}
{% set b = 18.678 %}
{% set c = 257.14 %}
{% set d = 234.5 %}
{% set gamma = log(H / 100 * e ** ((b - T / d) * (T / (c + T)))) %}
{% set Tdp = ((c * gamma / (b - gamma))) | round(2) %}
{{ Tdp | float | round(1) }}
unit_of_measurement: "°C"
dewpoint_outside:
friendly_name: "Dewpoint Outside"
value_template: >-
{% set H = states('sensor.humidity_outside') | float(default=0) %}
{% set T = states('sensor.temperature_outside') | float(default=0) %}
{% set b = 18.678 %}
{% set c = 257.14 %}
{% set d = 234.5 %}
{% set gamma = log(H / 100 * e ** ((b - T / d) * (T / (c + T)))) %}
{% set Tdp = ((c * gamma / (b - gamma))) | round(2) %}
{{ Tdp | float | round(1) }}
unit_of_measurement: "°C"Step 2: Select & Mount Fans
Pick fans rated for continuous operation (e.g. quiet inline duct fans or quality PC-style 120–140mm units). Use at least one intake + one exhaust for airflow balancing. For basements, Plexiglas window inserts or existing wall vents work well.
Mount orientation matters: Ensure pairs blow in opposite directions (two intake, two exhaust if using four). Seal edges to prevent back drafts.
Step 3: Smart Control Hardware
Use smart plugs / relays that integrate with Home Assistant. Energy monitoring is optional.
Label your entities clearly (e.g. switch.basement_fan_intake_1). Consistent naming speeds up Node-RED mapping.
Step 5: Home Assistant Setup
Create one input_number per room for the dew point threshold (difference you require before ventilating). Example values: 1.5–3.5 °C. Higher = fewer, more effective ventilation cycles.
Install the official Node-RED add-on and add these extra nodes for logic:
Step 6: Node-RED Automation Flows
Download the template and import it into Node-RED.
Download Node-RED TemplateAfter import:
- Duplicate a template group per room.
- Edit each Home Assistant node: set correct entity IDs + HA server.
- Connect every group to the trigger chain.
- Deploy and watch debug (optional) for first cycle.
Trigger Logic

The trigger subsystem fires initially when HA is available, then repeats every 60s (adjustable). Shorter intervals = faster reaction but more state flips. 60s is a good balance;
Simple Flow (Core Decision)

Logic: If dewpoint_inside > dewpoint_outside + threshold → Turn ON fans. Else → Turn OFF.
Use this as a building block. Duplicate for each room and swap entities + threshold helper.
Button Override Flow

Adds two buttons:
- Pause fan automation for 30 min (change delay node to adjust)
- Resume immediately (clears timeout)
Ideal for meetings, sleeping areas, or washing rooms.
Door Trigger Flow

When a monitored door opens (e.g. basement exterior), fans pause (prevent drafting or noise). After close + next evaluation cycle, logic resumes automatically.
Conclusion
You now have a scalable, low-energy dew point ventilation automation that intelligently reduces indoor humidity and helps prevent mold—using widely available components and open tools. Extend it with overrides, presence, or air quality metrics as your smart home evolves.
If you have questions or improvement ideas, feel free to reach out.

