Advanced Ventilation/AC Management Blueprint

:thermometer: Advanced Ventilation/AC Management Blueprint

Click here to import directly into Home Assistant:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Celcius

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Fahrenheit

:open_book: Overview

This Home Assistant blueprint provides intelligent control of fans and air conditioners based on indoor temperature, outdoor conditions, forecasted heatwaves, and window/door sensor status. The system automatically adjusts cooling devices to maintain optimal comfort while being energy-efficient and responsive to environmental conditions.

:sparkles: Key Features

:electric_plug: Multi-Device Support

Controls various types of fans and AC units with graduated response levels

:sun_behind_small_cloud: Weather Integration

Proactive cooling based on heatwave predictions from weather forecasts

:window: Smart Energy Saving

Window/door awareness prevents energy waste when openings are detected

:thermometer: Intelligent Thresholds

Different cooling levels based on temperature with hysteresis control

:control_knobs: Supported Devices

Fan Types (All Optional)

  • On/Off Fan: Simple switch-controlled fans (exhaust fans, basic fans)
  • Ceiling Fan: Variable speed control with percentage-based speeds (25%, 50%, 75%, 100%)

AC Types (All Optional)

  • Portable AC 1 (Advanced): Full fan mode options (silent, low, medium, high, full, Auto)
  • Portable AC 2 (Basic): Limited fan modes (auto, low, medium, high)

:gear: Configuration Parameters

Parameter Default Description
Fan Start Threshold 24.0Β°C Indoor temperature to start fans
Fan Stop Threshold 22.0Β°C Indoor temperature to stop fans
AC High Temperature 26.0Β°C Temperature for AC high cooling mode
AC Heatwave Threshold 22.0Β°C AC activation temp during heatwave
Max Outdoor Temp for Ventilation 25.0Β°C Maximum outdoor temp to allow ventilation
Heatwave Forecast Threshold 30.0Β°C Forecasted temp triggering heatwave mode

:deciduous_tree: Decision Tree Logic

:bar_chart: TRIGGER EVENT
β”œβ”€β”€ Indoor temperature change
β”œβ”€β”€ Outdoor temperature change
β”œβ”€β”€ Weather forecast update
└── Window/door sensor state change
β–Ό
:mag:INITIAL VALIDATION
β”œβ”€β”€ Check if automation entity is available
β”œβ”€β”€ Verify sensor states are not β€˜unavailable’ or β€˜unknown’
└── Continue if all checks pass
β–Ό
:abacus: VARIABLE CALCULATION
β”œβ”€β”€ current_room_temp = Indoor temperature sensor value
β”œβ”€β”€ current_outdoor_temp = Outdoor temperature sensor value (or default)
β”œβ”€β”€ is_heatwave = Check if forecasted temp β‰₯ heatwave threshold
└── is_window_open = Window/door sensor state
β–Ό
:electric_plug: ON/OFF FAN CONTROL (if configured)
β”œβ”€β”€ IF current_room_temp β‰₯ fan_start_threshold (24Β°C)
β”‚ AND current_outdoor_temp ≀ max_outdoor_temp (25Β°C)
β”‚ └── ACTION: Turn ON fan
└── IF current_room_temp < fan_stop_threshold (22Β°C)
β”‚ └── ACTION: Turn OFF fan
β–Ό
:dash: CEILING FAN CONTROL (if configured)
β”œβ”€β”€ IF current_room_temp > (ac_high_threshold + 2Β°C) [>28Β°C]
β”‚ └── ACTION: Set speed to 100% (Maximum cooling)
β”œβ”€β”€ IF current_room_temp > ac_high_threshold [>26Β°C]
β”‚ └── ACTION: Set speed to 75% (High cooling)
β”œβ”€β”€ IF current_room_temp > (ac_high_threshold - 2Β°C) [>24Β°C]
β”‚ └── ACTION: Set speed to 50% (Medium cooling)
β”œβ”€β”€ IF current_room_temp > (ac_high_threshold - 4Β°C) [>22Β°C]
β”‚ └── ACTION: Set speed to 25% (Low cooling)
└── IF current_room_temp < fan_stop_threshold [<22Β°C]
β”‚ └── ACTION: Turn OFF ceiling fan
β–Ό
:snowflake: PORTABLE AC CONTROL (AC1 & AC2 - if configured)
β”‚
β”œβ”€β”€ :door: WINDOW/DOOR CHECK
β”‚ β”œβ”€β”€ IF is_window_open = TRUE AND turn_off_ac_on_window_open = TRUE
β”‚ β”‚ └── ACTION: Turn OFF AC immediately
β”‚ β”‚ └── REASON: Prevent energy waste with open window
β”‚ β”‚
β”‚ └── IF is_window_open = FALSE
β”‚ └── PROCEED TO TEMPERATURE CONTROL
β”‚
└── :thermometer: TEMPERATURE-BASED AC CONTROL
β”‚
β”œβ”€β”€ :thermometer: HEATWAVE MODE (Priority)
β”‚ β”œβ”€β”€ IF is_heatwave = TRUE AND current_room_temp heatwave_threshold (22Β°C)
β”‚ β”‚ └── ACTION: Set HVAC mode = β€˜cool’, Fan mode = β€˜medium’
β”‚ β”‚ └── REASON: Proactive cooling during forecasted heatwave
β”‚
β”œβ”€β”€ :red_circle: EXTREME HEAT MODE
β”‚ β”œβ”€β”€ IF current_room_temp > (ac_high_threshold + 2Β°C) [>28Β°C]
β”‚ β”‚ └── ACTION: Set HVAC mode = β€˜cool’, Fan mode = β€˜Full’ (AC1) / β€˜high’ (AC2)
β”‚ β”‚ └── REASON: Maximum cooling power for extreme temperatures
β”‚
β”œβ”€β”€ :orange_circle: HIGH HEAT MODE
β”‚ β”œβ”€β”€ IF current_room_temp > ac_high_threshold [>26Β°C]
β”‚ β”‚ └── ACTION: Set HVAC mode = β€˜cool’, Fan mode = β€˜high’
β”‚ β”‚ └── REASON: Strong cooling for high temperatures
β”‚
β”œβ”€β”€ :yellow_circle: MODERATE HEAT MODE
β”‚ β”œβ”€β”€ IF current_room_temp > (ac_high_threshold - 1Β°C) [>25Β°C]
β”‚ β”‚ └── ACTION: Set HVAC mode = β€˜cool’, Fan mode = β€˜medium’
β”‚ β”‚ └── REASON: Moderate cooling for warm temperatures
β”‚
β”œβ”€β”€ :green_circle: MILD HEAT MODE
β”‚ β”œβ”€β”€ IF current_room_temp > (ac_high_threshold - 2Β°C) [>24Β°C]
β”‚ β”‚ └── ACTION: Set HVAC mode = β€˜cool’, Fan mode = β€˜low’
β”‚ β”‚ └── REASON: Gentle cooling for mildly warm temperatures
β”‚
β”œβ”€β”€ :dash: FAN-ONLY MODE
β”‚ β”œβ”€β”€ IF current_room_temp ≀ (ac_high_threshold - 3Β°C) [≀23Β°C]
β”‚ β”‚ AND current_room_temp > fan_stop_threshold [>22Β°C]
β”‚ β”‚ └── ACTION: Set HVAC mode = β€˜fan_only’, Fan mode = β€˜Auto’
β”‚ β”‚ └── REASON: Air circulation without cooling
β”‚
└── :x: OFF MODE
└── IF current_room_temp < fan_stop_threshold [<22Β°C]
└── ACTION: Turn OFF AC
└── REASON: Comfortable temperature reached

:house: Example Scenarios

Scenario 1: Normal Day :sun_behind_small_cloud:
Indoor: 25Β°C, Outdoor: 23Β°C, No heatwave
Result: Ceiling fan at 50%, AC in cool mode with medium fan

Scenario 2: Heatwave Predicted :thermometer:
Indoor: 23Β°C, Outdoor: 35Β°C forecast, Heatwave detected
Result: AC activates proactively in cool mode with medium fan

Scenario 3: Window Open :window:
Indoor: 27Β°C, Window sensor: Open
Result: AC turns off immediately (if configured), fans continue

Scenario 4: Cool Evening :crescent_moon:
Indoor: 21Β°C, Outdoor: 18Β°C
Result: All devices turn off, comfortable temperature achieved

:rocket: Setup Recommendations

Basic Setup (Minimal Configuration)

  1. Configure room temperature sensor
  2. Set fan start/stop thresholds based on comfort
  3. Add one cooling device (fan or AC)

Advanced Setup (Full Features)

  1. Configure all relevant devices
  2. Set up outdoor temperature sensor
  3. Configure weather forecast integration
  4. Add window/door sensors for energy efficiency
  5. Fine-tune all temperature thresholds

:warning: Configuration Tips:
β€’ Fan thresholds: Start 1-2Β°C above your comfort temperature
β€’ AC thresholds: Set 2-4Β°C above fan start threshold
β€’ Heatwave threshold: Set 2-4Β°C below normal AC threshold
β€’ Ensure stop thresholds are lower than start thresholds to prevent cycling

:wrench: Troubleshooting

Common Issues

  • Devices not responding: Verify entity IDs are correct and devices are available
  • Rapid cycling: Ensure stop thresholds are lower than start thresholds
  • AC not starting: Check window sensor status and outdoor temperature limits
  • Weather integration not working: Verify weather entity provides forecast data

Testing Tips

  • Use Home Assistant’s automation trace feature to debug logic
  • Monitor entity states during temperature changes
  • Test window sensor integration by manually opening/closing windows

:bulb: Smart Features

:thermometer: Heatwave Detection

Uses weather forecast entity to predict high temperatures and proactively activates AC at lower indoor temperature (22Β°C vs 26Β°C) to maintain comfort before extreme heat arrives.

:door: Window/Door Integration

Monitors window/door sensors to prevent energy waste with configurable behavior: immediate AC shutdown or prevent startup only.

:arrows_counterclockwise: Hysteresis Control

Different thresholds for starting (24Β°C) and stopping (22Β°C) devices prevents rapid on/off cycling and ensures stable operation.

:thermometer: Multi-Zone Logic

Considers both indoor and outdoor temperatures to prevent inefficient ventilation when outdoor air is too hot, optimizing energy usage based on conditions.

:clipboard: Compatibility

Supported Integrations

  • Climate entities: Any Home Assistant climate integration
  • Fan entities: Standard fan platforms with percentage control
  • Weather entities: Most weather integrations with forecast data
  • Binary sensors: Standard door/window sensors

Device Requirements

  • Temperature sensors: Must report in Celsius with numeric values
  • Climate devices: Must support hvac_mode and fan_mode services
  • Fan devices: Must support percentage control or dimmer functionality

Ready to install? Click here:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Celcius

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Fahrenheit

This blueprint ensures optimal comfort while maximizing energy efficiency through intelligent automation. Perfect for those who want a comprehensive climate control solution that adapts to both current conditions and weather predictions!

4 Likes

I will try it out.
I suppose it works for cold weather too right? It’s winter where I live

The blueprint is based on heat control with climate entities, designed to cool the living space, but I might adapt it to activate the heating in the opposite situation or perhaps create another blueprint. You can download it and modify it as you wish, such as submitting it to artificial intelligence to make changes. In the current blueprint, all temperatures are adjustable.

Note to myself for next release:
add Fahrenheit Celsius selection
add multiple selector for door/windows sensor
fine tune hysteresis and add settings threshold

1 Like

Time Plans via helper are missing :slight_smile:

z.b. 13-20 o’clock

The blueprint automation is designed to be as universal as possible and focus on intelligent heat management in the home to have a certain consistency. Schedule management is not considered since there are several easy ways to manage automation according to calendars, timers, presence, etc. enable disable automation. You can freely modify the blueprint if you want to add options, a wonderful function which is β€œtake control” of the bluerpint thus having it as a normal automation easy to adapt to what you are looking for. I saw this option too customizable and different from one taste to another.

Thank you for an awesome blueprint. I will definitely take a look at the blueprint and try it out.

I’m still a bit unsure how I would like to make my AC’s smart and one of my considerations are that I perhaps only want an automation to turn on automatically the AC’s when I have excessive solar power. But I don’t want such an automation to turn off my AC when I manually (HA Lovelace or remote) turn on my AC. Any thoughts on this?

You could create a toggle helper (device create helper) choose toggle, then create a simple automation If the toggle creates example (auto-manual) enable or disable the automation depending on what you want to do.

@Lyntoo, I was trying to figure out how to configure one of my devices using this blueprint and was looking at the blueprint code what it was doing. One of the things I noted was the way you handle the fan mode which I think is really relevant depending on the differences between the outside temperature and the room temperature. In the code you set fan modes like low or high. When I look at my device I guess that is not going to work.

Looking at the docs I guess it really depends on the implementation of the manufacturer of your AC what these fan modes look like (Melcloud in my case). That makes it probably a bit more challenging to create a blueprint that fits all needs.

The other thing I was not really sure on filling out the blueprint is in what is really needed if you for example only want to make sure that the AC start’s cooling when it is too hot for your liking. I was looking at this part:

But I guess the naming of these enitities remain a bit unclear to me. I guess it should be one of the last two, but I’m not sure yet.

And one of the other things I was thinking about is what temperature should the climate be changed to? Does it depend on difference between outside temp and indoor temp or something else?

Hello, thanks for the feedback, when I get back from vacation I will try to add the ventilation level of your air conditioner as another option, the outside temperature is used to anticipate the heat wave and start the air conditioning in advance.

This is a pretty cool Blueprint! I already have my AC automations set to my preferences, so I probably won’t use it, but it’s a pretty neat Template for those just getting started on Automating their Hvac and Ventilation!

Good job, it does what it says. I have this problem. My AC is β€œAuto,” not β€œauto.” Can I fix it somehow? Sorry for my writing, it’s translated by Google.

Error while executing automation automation.ventilacion_avanzada: Fan mode Auto is not valid. Valid fan modes are: auto, low, medium low, medium, medium high, high

I support the option of adding a start and end time. I’m not always home.

Thanks for the feedback, the Auto for auto can be easily fixed in the yaml, I will fix it soon in a new release (add multiple attribute name situation) and let you know in a comment on the main publication, I will validate that the attribute name change does not affect other users. In the meantime you can manually edit the yaml and modify them if you wish.

1 Like

Add Climate entity for an AC with numbered fan modes (auto, 1, 2, 3, 4, 5)
Fixed fan_mode attribute name error: β€œAuto” to β€œauto”
Same download link, top and bottom page overwrite blueprint,

For those who would like to add timers, schedules, and device tracker for enable and disable, the links below are considered beta. If you want to give me feedback, and if desired, I will replace it with the official link. the following link does not overwrite the main page blueprint, it creates a new one

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Celcius

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Fahrenheit

2 Likes

Good morning, thank you for these new options. I’m willing to try them out. When installing, I get the following error:

Message malformed: Entity is neither a valid entity ID nor a valid UUID for dictionary value @ data[β€˜entity_id’].

Sorry if it’s my mistake, I’m new to HomeAssistant.

Positions to create new options, it would also be interesting to add days of the week

This is a programming error, the automation expects to have a valid or non-null entity value. I will look into this as soon as I have some free time at home and make more simulation before posting.

Same beta link direct download with fix, no entity ID error from my side, don’t enable option with nothing select in the box or the error will apear.

Good morning, I’ve installed the new version and am testing it.
Currently, if we start the blueprint after the start time has passed, it works correctly, but if the time rule is after the start time of the blueprint, it won’t start. It also does not stop at the indicated time.

Good afternoon, if β€œOutdoor Temperature Sensor (Optional)” is left blank, it gives an error. I’ll keep trying.

Good morning,
I have already seen, because it does not start at the scheduled time. Although there are shots through the sensors, the scheduled time does not start until the time, the problem is that there is a new shot by the sensors, today for example has spent 45 minutes until it has shot again, despite the fact that the temperatures exceeded and with much those established for the shot. I guess the same thing happens with the final time option, since I have to manually deactivate the rule. If there is something that does not express me correctly, tell me, thanks