Home Automation – Humidity

We have a very nice piano, and to keep it in good shape we’d like to have stable humidity in the house, especially in the winter. To that end, I have installed a whole-home steam humidifier, a humidity sensor, and a X-300 device to control everything. The X-300 acts like a thermostat for humidity – in other words, a humidistat. It monitors the humidity using the sensor installed next to the piano, and then turns on/off the humidifier to keep it in the proper range. The X-300 is also connected to the HVAC system, so it can call for the fan to blow whenever the humidifier is running.

Our piano
Humidifier
Humidity sensor, near the piano
X-300 controller

This system was installed many years ago – well before I knew about Home Assistant. If I were installing it today, I might consider having HA act as the humidistat, but there’s a downside: what if Home Assistant crashes? In the 8+ years I’ve been using the X-300, it has never crashed, and that’s important. Maybe someday I’ll retire the X-300 and use HA instead, but for now I’m sticking with it. Really, a great product.

Even so, I wanted to use HA to monitor the humidity, and track how often the humidifier runs (it’s a big electric load). Luckily, there’s an easy way: SNMP. The X-300 supports SNMP ‘gets’ for the state of the relays and the humidity sensor value itself.

This is configured in the configuration.yaml file on Home Assistant:

The upper section tells HA where to fetch the humidity sensor reading, and to treat it as a float percentage. The lower section deals with whether the humidifier is running: it reads a 0/1 value, multiplies by 100, and treats it as a percentage. 0% means its not running, and 100% means it is. These SNMP values are read every 60 seconds, that’s what ‘scan_interval’ means.

With this setup, I can get cool graphs like these:

The blue graph is the humidity, and it is overlaid with a transparent red graph that represents when the humidifier was running. Most of the time the humidity stays between the set points, but early in the graph we can see when it dipped fairly low (probably because someone left the doors and windows open on a cool dry day).

Below that is a simple indicator showing the average of running time over the last 3 days. Yes, the humidifier sometimes runs this much, sometimes more in fact.

X-300 Temperature monitoring

I also use the X-300 to monitor temperatures of various things, using “one-wire” digital temperature sensors. (Actually, there are three wires: +5V, Gnd, and one I/O line). Multiple sensors can all be connected to the same three signals, and the communications protocol allows each to be addressed individually.

Right now I have three temperature sensors. Two of them monitor the water temperature on the underfloor heating system: the hot water being pumped out to the pipes, and the cooler water coming back. This lets me understand the heat transfer happening in the system. The third sensor is attached to the downstairs furnace flue, which obviously will get hot when the natural gas-fired furnace comes on. This is another way to know when the heat is running (in addition to HVACmon), and it also might come in handy diagnosing issues.

Was it worth it?

Since I already had the X-300 installed, adding it to Home Assistant via SNMP was “free” and didn’t require any new purchase, so really it was a no-brainer. Now I have an easy way to monitor the humidity and humidifier. I ought to program some triggers in Home Assistant to alert me if the humidity goes down and stays too low for too long, and also if the humidifier gets stuck ‘on’. I’ll put that on my todo list.

Leave a comment