Made my ‘dumb’ steam boiler smart for monitoring run time

It all began in late October or early November. You had my steam boiler serviced annually, but the heating season started (I live in northern New Jersey). Everything was fine, as I had received a satisfactory report from the PM in late September.

One night in mid-November, on a weekend when I was home alone (my wife and daughter were away), I was watching TV. It was about 40 degrees outside, and something caught my attention. I noticed that the boiler was running. My Ecobee premium thermostat is in the living room, where my TV is. I noticed the amber square-shaped light around the thermostat. About 30 minutes later, I looked over and it was still on. I don’t remember exactly how long the boiler ran at that time, but it felt like a long time. So, I went to the basement to investigate.

Once I was in the boiler room, I saw that the boiler was off. While I was there, about 20 seconds later, the boiler fired up. Then, I looked at my Beestat app on my phone. I saw that the Ecobee had been calling for heat for over 90 minutes, and it was only maintaining the temperature, not increasing it. I checked the usual things (for a DIY noob like me, since I had lived in this house for over 10 years with this boiler and single-pipe steam to cast iron radiators). The site glass was full enough, the low water cutoff wasn’t on, and the boiler switch was on. So, what should a IT/security guy do next? Of course, I should reboot. So, I turned the boiler switch off, waited 30 seconds, and then turned it back on. Instantly, the boiler fired up, but it shut off 15 seconds later.

I then made an emergency service call to our HVAC company. They arrived at about 11:30 p.m. that night. They checked the usual things, the pigtail, the pressure control, and so on. Everything looked good. They turned the pressure control up a bit that night. After they left, everything seemed to work again. Fast forward to Monday morning when I woke up for work. The boiler was running. I checked the Beestat app, and it had been running for 100 minutes so far.

Okay, another call to the HVAC company. They come back out, check the natural gas pressure, and say it’s low at 3.8. It should be at least 5. So, I had to call our natural gas company, who sent a technician. Turns out, the pressure regulator and heater both need to be replaced. Now, we’re close to 7 pounds of pressure. I’ll monitor the heat for a couple more days after.

Turns out, it’s still not fixed. The boiler is still turning on and off and taking one to three hours to complete a heat cycle.

Another call back to the HVAC company. They send the most experienced tech with steam heat. He sets the pressure regulator even higher (around 2 1/4) and opens up all the radiator vents on the first floor. He says this will fix it.

Okay, I don’t know much about this stuff, and he’s the experienced one, so I listen. Later that day after he left, he misbehaves again. He stops randomly, starts again, and takes 1-3 hours for a heat cycle.

At this point, I started researching more on my own. From what I’m trying to understand, something with the pressure regulator or the controller could be the problem. I also spoke to a couple of engineers at work, and he offered to come over and check it. After about 10 minutes, he says he believes the electronic control needs replacing. We ordered a replacement one from supplyhouse.com, had it the next day, and installed it together. The boiler has been working great since.

Here’s the main point of my post. I wanted a foolproof way to monitor the boiler to ensure it’s running and not stopping. I tried various sensors like vibration and light sensors, but none worked consistently. After days of brainstorming, I finally came up with the idea of using a Zigbee motion, lux, temperature, and humidity sensor. I mounted it under the boiler, close to the flame tubes, so my automations could detect the heat rising a certain amount of degrees over a short period. Additionally, I set a condition for the lux to be above 7 but below 20, as the below flames generate lux between 8 and 14 when the boiler is running.

The sensor would send a notification to my phone when the boiler started running. If the temperature dropped in a specific time frame, it would send a stop notification, including the time it ran.

I also created a temperature vertical mini-graph dashboard card to monitor the heating of all rooms evenly. Only when the boiler is running will the boiler running card be visible. The graphs on the mini-graph cards use different shades of color to represent the warmth or coolness of each room. Another note is that I set the mobile notifications so that clicking on them opens directly to my indoor temperature card.

As always, this is a work in progress.

Please let me know if anyone has questions or wants the YAML file. Thanks!

1 Like