Home Automation Predictive Heating

Chassmain

Member
Hey guys, thinking about creating some sort of predictive heating algorithm that ties my HAI thermostats in with the weather report. My home is a passive solar house pointed due solar south with maybe a few too many windows (hey… beautiful view… how could I not!). Problem is, on sunny fall/spring days before it’s overly cold outside, but the sun’s angle is still low enough I’m getting considerable solar gain, the place is overheating… Sometimes 82-84+ degrees Fahrenheit.

What I was thinking of doing was using Elve to look at the weather forecast and from that alter the settings on my thermostats. If it’s going to be a beautiful, sunny day let the house chill down a bit more at night, but if it’s going to be cloudy/rainy/crappy weather then kick up the temp a little higher.

Got some ideas, but not totally sure about the right way to approach this. One more thing that complicates this is my heating system is a hydronic one in a very high thermal mass concrete slab. Does great for holding its temperature, but makes it tough to move things in a hurry.
 
I think predictive weather could be considered oxymoron. Since a high thermal mass heating system is involved, the question, “will my house be cold in few hours,” calculation will lag behind the current conditions. The problem is similar to farm irrigation scheduling using evaporation http://www.irrigationcalculator.com/help.asp history along with current conditions. The http://www.nest.com/ learns your usage patterns. I wonder if someone could combine usage patterns, weather, and occupancy. I suspect there’s a patent waiting….
 
I like this concept. I have been pondering something like this as well, but didn't consider predicted weather data. I think you may be able to do it, depending on how accurate the predictions are.
I think the data collected over time is going to be the answer. "how long did it take to cool/heat the house to your set point under "X" conditions" Use this to create the algorithm. Look at a PID concept(Proportional-Integral-Derivative). While your algorithm will operate at a much slower time scale, the concept will be the same.

You sure created an issue with the windows and the hydronic system! Windows make for a rapid change in temps which the hydronic system was definitely not designed for.. Ultimately I think you'll need a forced air system to compensate on some days if you want true comfort.
 
This seems similar to trying to predict when to water based on forecast rain which I have looked at some and also similar to automating ventilation - if tomorrow is going to be sunny and hot (I have forced air heating but built in some passive solar with south windows and overhang for seasonal shading) and the outdoor conditions are favorable (low temp without too much humidity) then cool the house down at night.

The main problem is that the weather has a significant randomness to it. With rainfall the variation between predicted and actual can be quite large - maybe we get a downpour or maybe nothing. I think temperature swings and cloud cover/amount of sun shouldn't vary from predictions quite as much.

Before you actually put together the hardware to control your system you could write code to just look at the forecast and output what it would do. You could then compare what it planned to do vs. what would have been most effective. Of course you could do the same thing with a live system and adjust the tuning as you saw how the system reacted.

Do you have a way to automatically ventilate for cooling if it overheats and the conditions are good for cooling that way?

Very interesting problem. Would love to hear more about it if you dig into this further.
 
Before you actually put together the hardware to control your system you could write code to just look at the forecast and output what it would do. You could then compare what it planned to do vs. what would have been most effective.
Yes you could actually test the performance before implementing the actual automation.
 
What you've stumbled upon, chassmain, is one of the more complex problems in the world of automation and controls. That is, the problem of controlling a system that is affected by many variables. This is the stuff upon which Master's theses are founded!!

The PID algorithm mentioned above won't do the job. PID controllers are very specifically defined as one input, one output. Some variations on the PID (cascading control, feedforward) can be used to tweak PID controllers to help them be somewhat "predictive", but what's really needed here is a Model Predictive Controller. This is a control algorithm that takes several measured inputs (room temp now, sunrise time, sunset time, angle on horizon, blinds open/closed, heating capacity of your heating syjkstem, predicted daytime high ...), populates a mathematical model, then makes a decision on control action.

In industry, I've seen places like pulp mills and chem plants that pay in the hundreds of thousands for a license to run a single instance of an MPC algorithm!! Obviously, few of us are willing or able to go anywhere close to that route, nor is there any payback worth that much in a home heating setup. I just point out these examples to show how crazy sophisticated that sort of thing gets

If you have the time and inclination, I'd suggest looking into some MPC theory (google is your friend!), then starting to break down your system variables. Look at what can affect your room temperature, and once you've listed the variables, start running a few tests to determine the "strength" of each variable. That is, which inputs have a large impact on room temp, which ones just have a small effect. That's just the beginning!!
 
I think predictive weather could be considered oxymoron. Since a high thermal mass heating system is involved, the question, “will my house be cold in few hours,” calculation will lag behind the current conditions.
Exactly, the lag of the radiant heat system/thermal mass really makes this a bit more difficult/important to solve. Not only do I worry will be called in a few hours, but also if I’ll pay a bunch of money heating it up in the morning only to open the windows because I’m overheating in the afternoon.

You sure created an issue with the windows and the hydronic system! Windows make for a rapid change in temps which the hydronic system was definitely not designed for.. Ultimately I think you'll need a forced air system to compensate on some days if you want true comfort.
In theory this is exactly what a high thermal mass system is supposed to solve! While the windows make for rapid heat gain, the concrete floor well absorb a significant amount of this heat and temper the inside air so it’s not as hot/cold depending on which way the heat flow is going. The only problem is over the past week we’ve had unseasonably high temperatures with very sunny days. Combine 55+°F temperatures with the sun angle for normally 20°F temperatures and you have a very toasty home.


The main problem is that the weather has a significant randomness to it. With rainfall the variation between predicted and actual can be quite large - maybe we get a downpour or maybe nothing. I think temperature swings and cloud cover/amount of sun shouldn't vary from predictions quite as much.

Do you have a way to automatically ventilate for cooling if it overheats and the conditions are good for cooling that way?

Very interesting problem. Would love to hear more about it if you dig into this further.

I’m not all too worried about the significant randomness in the weather. I think as long as I can get the general idea of what’s going on (i.e. is it going to be cold and cloudy, warm and sunny, cold and sunny, etc.) I can at least put the system in a goodish starting point and then let the normal thermostat controls do the rest.

It would make things much easier, and is probably something I should add in the near future, if I had a heat recovery air ventilation system where I could change over more air during the warmer days, and possibly use the system to push the warm air, from the south side of the house, to the colder locations on the north side. Lots I’d really like to do, but you know the whole money situation. :-)

What you've stumbled upon, chassmain, is one of the more complex problems in the world of automation and controls. That is, the problem of controlling a system that is affected by many variables. This is the stuff upon which Master's theses are founded!!

The PID algorithm mentioned above won't do the job. PID controllers are very specifically defined as one input, one output. Some variations on the PID (cascading control, feedforward) can be used to tweak PID controllers to help them be somewhat "predictive", but what's really needed here is a Model Predictive Controller. This is a control algorithm that takes several measured inputs (room temp now, sunrise time, sunset time, angle on horizon, blinds open/closed, heating capacity of your heating syjkstem, predicted daytime high ...), populates a mathematical model, then makes a decision on control action.

Now are getting somewhere! This is exactly all the type of information I’m thinking of:

Nighttime temperature of the radiant floor zone
Nighttime temperature/humidity for outdoors
Tomorrow’s daytime temperature/humidity/cloud cover/solar output

Basically I need to figure out a heat loss equation for each zone in my house, and through experimentation determine how long it takes each zone to raise up X number of degrees, based on some baseline of conditions. From there I’ll try to attribute some sort of addition/subtraction qualifier or something of the sort to possibly make a fuzzy logic table to control heating. My thinking would be I could look at each condition and add or subtract a certain number of degrees Fahrenheit to my early morning zone temperature. I.e. if it’s going to be sunny tomorrow and 40°F less than my room temperature subtract 3°F from my baseline slab temperature (because I know the sun will warm it up later).

What might make this all the much, much easier would be if I added a secondary heat source that doesn’t have the significant lag/storage element of the radiant slab. For example, I could have one of those two-stage heat pumps so that if it’s cold outside, but I know it’s going to be sunny later I could fire up the heat pump briefly in the morning to take the edge off until the solar gain heats up the slab.

Don’t know, but a lot to look into here!
 
While this is a complex problem I think people are making this way more complex than needed or at least what can practically be done. Occam's razor... There are a number of fairly simple things that could be done. One simple thing you could do is automated curtains.

How much temperature swing do you get from high to low with no morning heating? Or to put it another way, how much would you need to lower the morning set point to prevent overheating later in the day. It sounds like you would need to lower it more than would be comfortable to prevent overheating. The only low energy ways around this that come to mind are ventilation or shading. You could put thermal mass between the solar input and the living space but that would spoil the view.

Of course, if you are interested in researching the modeling and such that would be a great follow on project but it is likely to take considerable time. You could implement the easy things now and get the immediate gains.
 
What do you have now for cooling?

Since you already have hot water for the floor you could add a hydronic fan coil unit to heat the air without heating the slab significantly. Should be much cheaper than a heat pump. How do you heat the water now?
 
While this is a complex problem I think people are making this way more complex than needed or at least what can practically be done. Occam's razor... There are a number of fairly simple things that could be done. One simple thing you could do is automated curtains.

Adding automated blinds/curtains is all well and good, but the point is, when to operate? OP is trying to optimize heat efficiency by allowing the sun's heat to warm the room and minimize demand from home heating system whilst avoiding the problem of too much heat from sunlight. All of this while dealing with a system that carries a great deal of "momentum" - that is, the heat added now will be retained and affect the system for several minutes to an hour or two.

So things like - blinds closed overnight to add some insulation factor/retain heat, then blinds open at sunrise to gain heat in the morning. These are the easy decisions to make. Harder decision is when to close the blinds so that the sun's heat doesn't overheat the room? This needs to be at some time well before you actually hit the "comfort zone". Then, one must consider the interaction of these decisions with the home hydronic heating and the AC if temps get too high. And, ultimately, times that the room will be occupied are key, so that the temperature is comfortable during those times.

So, we can simplify some decisions to reduce the complexity of the overall control model, but with the goal being maximum comfort for minimum energy cost, complexity will be unavoidable!
 
Hey guys, thinking we’re looking into this a little too far.

KenN summarized it perfectly below
to optimize heat efficiency by allowing the sun's heat to warm the room and minimize demand from home heating system whilst avoiding the problem of too much heat from sunlight. All of this while dealing with a system that carries a great deal of "momentum”

This momentum is probably more like several hours, but overall that is exactly what I’m trying to do… Maximize efficiency while maintaining a livable temperature.

I’ll have to take note of the conditions more closely this year, and how they affect the radiant slab/interior air temperature. My overall thoughts from last year is during high solar output days the house would raise approximately 10°F, and on cold/overcast days loose energy and sometimes feel chilled until the heating system caught up. What I’m trying to do is not always keep the home heated up to a warm/comfortable temperature for the worse case solar gain days and then having it overheat when I get the contribution from the sunlight.

Thinking I’ll set a baseline, nighttime temperature of 66°F for example and if I know it’s going to be sunny the next day then leave it alone and let the radiant heat pick up the slack by 10 AM. If I instead know that it’s going to be a cloudy/overcast day turn on the heat system around 3-4 AM so that things get picking up by the time I’m working at the computer.

Another thought/question I’m trying to figure out is if I can somehow circulate my south facing the radiant zones and dump their excess heat into the northern garage, so that I can store excess heat in my highest heat loss/coldest area. Will need to talk to the heating contractor when he’s here to see if this is possible or not.
 
I did some predictive temperature control this summer. I signed up for a electrical power plan that charged 4 times the KWh rate from 2 PM to 7 PM weekdays in return for a lower rate all the other time. I came up with a composite temperature based upon:
40% main floor temp + 25% current outdoor temp + 25% forecast high + 5% basement temp + 5% attic temp
When this composite temperature got above a threshold I turned on the air conditioning to pre-cool the house before 2 PM. Only on a few days when the outside temp got 100+ did I have to run the A/C between 2PM and 7PM.
 
You could move some of the heat from the warmer slab into the colder slab by running the circulator pumps without running the heater. Not sure how effective this would be but it shouldn't be that hard to try. To be most effective you would run the water through one area and then the other rather than just mixing the two flows in the heater but this would require some plumbing changes.

I think Automate has a good plan. Add solar factor into the mix (%overcast or some such) and use the total to set a heating temperature instead of cooling.
 
Thanks a lot guys! Huge help!

Think I’ll do something like set the base temperature to 64°F and then start with a formula similar to the below and tweak it as I get more information.

At 2 AM in the morning:
  1. Measure the temperature differential between the actual inside/out temperature and multiply by 4%. If it’s 70°F inside/10°F outside this equals 2.4°F.
  2. Measure the temperature differential between the desired inside temperature during the day and the average outside temperature and multiply by 6%. If I want it 75°F inside and it’s going to be 15°F outside this equals 3.6°F.
  3. Look at the weather forecast, if it’s rainy add 5°F, cloudy add 4°F, partially cloudy add 2°F, sunny add 0°F.
That way on a very cold/rainy day I might add 10°F to the baseline, but on a very cold/sunny day possibly only 5°F.

I have the heating contractor coming by within the next week. We’ll see what we can do about possibly using a relay to fire just the circulator pumps without kicking on the boiler to see how that affects things.
 
Back
Top