Smart-ifying Aprilaire Whole House Humidifier

Hey guys, I am looking to bounce this idea off of you.

I got a new furnace this year and added a whole house humidifier as I live in the upper Midwest and it can get super dry in the winter. The Aprilaire has been doing it’s job so far and I am happy with it. However, I am not happy with the controls.

There is a box that sits on the cold air return by the furnace with a sensor monitoring the incoming air for humidity. It has a dial where I manually set the desired humidity. The thing is, you need to lower the humidity in the house based on outside air temperature. Otherwise you get condensation and stuff you don’t want.

I did some looking and I could replace the analog box with a ‘digitial’ one from Aprilaire for $100+. I would need to add an exterior temp sensor and wire it in. A bunch of extra work and wiring.

I have a Z-Wave thermostat and a bunch of Z-Wave temp/humidity sensors around the house. I can grab outside temp from any weather service or even add an exterior Z-wave sensor. I should be able to put something together in HA that tracks inside humidity and outside air temp and using a Z-Wave relay, turn the humidifier on or off (when the furnace is running) automatically.

This sounds like a great blueprint as well. Am I off base here? Alas, I don’t know how to make this work.

It might work if you have a separate power cord / outlet for the humidifier.

Just unplug and plug the humidifier to see if that turns it off and back on.

Also try to ask the manufacturer and/or use a review page to ask if that is OK to do so with this unit - it has to handle loosing power, but you’ll probably be doing so many times a day.

I’m thinking of doing the same thing, but have not yet bought a humidifier, and it would be a non-whole house one.

I have Sonoff SNZB-02 sensors, they’re humidity measurements seem to be +/- 10% (based on placing two side by side), I hope they’re good enough to control one of these.

I am looking to do the same thing. I have a bunch of DHT22’s connected to NodeMCU8266 (ESP32) boards with ESPHome firmware that all show up on my dashboard. Further, I have used the temp inputs to control my thermostat. There is a weather widget that came default on lovelace, so that could be the outside air temp input. I think it is just a matter of writing some code with a table of the outside air temp to inside humidity setting and using a relay on a NodeMCU8266 dev board

Similarly, I wanted to use this setup to control dampers and a whole house fan to reduce air conditioning use in summer. Using an algorithm that uses a combination of temp and humidity to control when outside air is drawn in and when internal recirc air and AC is used. If I find time at Christmas I will give both of these related ideas a go.

If anyone has tried this, please advise.

I have an Aprilaire whole house humidifier also. Total interested in a better intergration into HA.
I am currently using an OmniproII to control it and have the OMPro II configured with HA.
Going to try the Generic hygrostat integration next.

I also have an Aprilaire humidifier that I want to integrate into HA. Mine is a digital controller with the optional hookup for an outdoor temperature sensor (which I don’t have), so my ideas below may not apply to the analog humidistat. (Model is an older version of this: Amazon.com)

Bypassing the unit with a relay is an option as @thezfunk mentioned, but I would prefer not to do that as there are several more considerations that need to be made when controlling the solenoid directly:

  • the blower should be running
  • how long to activate solenoid to saturate water panel with the appropriate amount of moisture?
  • how often to cycle solenoid to keep water panel saturated while fan is running?

I think that automating the input to the humidifier will be a more robust solution, however, power cycling the humidifier (and probably keeping it at the max humidity target) as @patmans mentioned should also work. I am essentially doing this with a portable humidifier for specific rooms in my house currently.
In my case for the Aprilaire though, I want to use the built-in humidity sensor on the air coming through the return, so power cycling the unit will not work for this. It is necessary to control the target of the humidistat directly.

I see two possible ways to do this, but both are essentially the same solution in the end.

First, I could spoof the value of the outdoor temperature sensor to make the humidistat target the humidity that I want. Aprilaire lists the following as the target humidity levels based on outdoor temperature and the dial setting on the unit:
image

So, if I set the dial to 5, I could send humidity commands between 20% and 45% by sending the corresponding temperatures from -10 to 40 degF (regardless of the actual outdoor temperature). I could just send the actual outdoor temperature to use the recommended humidity levels, but sending a “control temperature” instead gives the option of setting something above or below that recommended humidity, so I would prefer to have more control. I will use this table as a reference when creating my target humidity template sensor in HA, though.

I also found the following as the specs for the temperature sensor the humidistat is expecting:
image

I haven’t done something like this before, but I think the correct solution here would be to use a digital potentiometer, or a resistor ladder to control the correct resistance.

The second solution would be to bypass the dial on the humidistat and just control the humidity target directly. This may be a good option if the humidistat does not have ODT terminals to use. My unit has dial settings from 1-7 (shown in the table above), as well as 0 (off) and 8 (test/reset for water panel replacement timer), which is a simple potentiometer. This is running at 5V DC, and seems to go up to about 4.5kΩ. So again, using a digital poteniometer would be the solution here. This would require removal of the dial potentiometer, and soldering the digital replacement in, so if the same level of control can be achieved with the ODT method, it seems much easier (and also probably won’t void your warranty).

A couple things I am unsure of:
Is the precision only controlled in steps of 5%? The digital nature of the display on the unit (showing 1-7 from the dial) would indicate such, but the fact that both the dial and temperature sensor are analog would make me think it is not.
The true limits of my unit are 10%-45%, but the table above does not show any single dial setting which could use this full range. This may be because the table is only for reference. I am wondering though, if I set the dial at 4, and the temperature increases above 40degF, or below -10degF, will the humidistat actually command 45% or 10%, as those values are not listed on the row for a dial setting of 4?

Additional thoughts:
The type of digital potentiometer would be different depending on whether the ODT sensor is being spoofed or the dial is being bypassed. First, the resistance ranges are completely different. Additionally, the behavior is different: the dial is a linear type pot, whereas the temperature sensor would probably be better replaced with a logarithmic pot.

Once the right component is found, this seems like a good job for ESPHome.

Am I overcomplicating this?

Seems like the best/safest/most reliable bet, given that things going wrong have potential to damage your home would be to just get a thermostat that integrates with Home Assistant and can control a whole-house humidifier.

The venstar T7900 can control a whole house humidifier, and that’s fully local: Venstar - Home Assistant
Looks like some of their other models can, too, but you can check them out yourself.

Various ecobee models can control a humidifier:
https://support.ecobee.com/s/articles/How-do-I-add-accessories-to-my-ecobee-thermostat
Though those don’t have full functionality over homekit, meaning you’d probably need to use that PLUS the cloud integration.

I would agree that bypassing the humidistat could lead to undesirable results if not implemented in a robust way.
But the worst thing that can happen with the solution I detailed above (using the outdoor temperature sensor signal to control humidistat) is that the humidifier runs at its maximum setpoint of 45%. This solution does not bypass the humidistat. This is no worse than it being manually set to that point and forgotten about on a cold winter day (potential for condensation in the house).

The products you linked to seem like they would also work well. Unfortunately, I cannot see justifying the cost to replace my already smart z wave thermostat with ones of those.

I’m looking at getting the AprilAire E080 Pro and controlling it with HA. Came across this post in the process. Looking at the owners manual for the E080, it appears that it accepts an external control by just wiring in a relay switch. (Though there is a 3 minute delay when starting via an external switch.)

Figure I’ll connect a smart relay, from Shelly most likely, and use that to control the dehumidifier, using the several humidity sensors I already have around the house as the trigger. I don’t know that the AprilAire humidifiers have the same external control functionality, but figured I’d share just in case they do. Better late than never, right?

Well, incidentally, my humidistat just died, about a year after my other post here. Needing a solution, and being lucky that the solenoid still works, I decided to just bypass it with a relay. This ended up being very simple.

Here is the original wiring that went to the control board:
image
H are just the two wires for the solenoid.

I found this Zigbee relay that allowed me to power it directly from the 24VAC of the HVAC control wires, no USB power required. This, combined with a Generic Hygrostat helper, and a humidity sensor is basically all you need.

Here is how I wired it up:
image
Using W to power the solenoid ensures that it won’t run unless there is a call for heat. This also acts as a small safeguard in case my control logic is faulty or the relay fails on, the worst that can happen is the solenoid runs every time there is heat vs running 24/7 (including during seasons where heat is not used). You could also use G instead of W, but evaporation off the pad is less efficient without the hot air, leading to more wasted water (and a less stringent safeguard).

One small change I needed to make to get this working with the hygrostat integration: for some reason the zigbee configuration of this device reports the relay as a light, instead of a switch. You need a switch entity to use it in a controller.

Below is a guide I wrote for handling this, as I had not seen this done before:

A final optional step would be to use an outdoor temperature sensor, or a weather service to set the target humidity. For me, this was the original reason why I wanted to do this. But after the humidistat went out, I finally had to get it done.

1 Like

I’ve been looking into the “optimal” target humidity a bit more, and thought I would share what I found, in case others might find it useful.

Generally, the “ideal” range of relative humidity indoors is listed as 30-50%, although I have also seen 40-60%, among other variations. The EPA specifically says that RH should stay below 60% to inhibit mold growth. Energy Star states that in cold climates, RH should be kept between 30-40% to avoid condensation on windows.

Several posts above, there is a chart I found from my Aprilaire installation guide which details RH targets for a given outdoor temperature, and then different dial settings to adjust that range higher or lower.

Aprilaire also details the various risk levels associated with different humidity levels (outside of condensation):


Credit: Aprilaire

Additionally, they provide a straightforward recommendation of humidity levels at given outdoor temperatures:
image
This directly correlates with dial setting 5 in the table I posted previously.

While this table of recommendations above is great as a baseline, to make this more adaptable, I want to allow for variations based on different people’s comfort levels and needs based on the various risks plotted in the graphic above, as well as the needs of different homes (a home with better insulated windows and walls may be able to tolerate higher humidity levels without risking condensation, whereas a home with single pane aluminum frame windows may need to target lower humidity to prevent ice from forming on their windows). Therefore, the relative humidity guide from Aprilaire with 7 dial settings seems ideal.

With all this in mind, let’s do some actual automating!

Taking the numbers from Aprilaire’s guide, the following transfer function can be derived:

RHT = (0.5 * ODT) + (5 * DS)

Where:

RHT = Relative Humidity Target (%)
ODT = Outdoor Temperature (°F)
DS = Dial Setting (Comfort Level from 1-7, with 5 being the baseline)

From here, clips should be applied, I am choosing 10% as a minimum, and 50% as a maximum.

First, I made an input number helper for the comfort level:

image

Next, I created a template sensor for the RH target:

{{ max(10, min(50, (0.5 * float(states.sensor.odt.state)) + (5 * int(states.input_number.aprilaire_humidifier_comfort_level.state)))) | round }}

image

Then, all that’s left is to wire this up to set the target.

alias: Automatic Humidity Target
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.aprilaire_target_relative_humidity
    from: null
    to: null
conditions: []
actions:
  - action: humidifier.set_humidity
    metadata: {}
    data:
      humidity: |
        {{ states.sensor.aprilaire_target_relative_humidity.state }}
    target:
      entity_id: humidifier.aprilaire_500_humidifier
mode: single

I know this is somewhat basic, but I hope it was helpful to someone!

1 Like

Amazing thread! Fairly new at HA and this was very easy to follow along. I only wish i would’ve seen this before I bought a 600 with the humidistat.