I built my own thermostat that controls the boiler heater for the radiant floor heating in my house and I would like to develop / implement a smarter temperature control algorithm. What I am specifically interested in is the ability to predict when to turn on the heating so that a certain temperature is achieved according to a schedule.

Suppose I want the temperature at 7 am to be 22 degrees Celsius. During the night I want it to be at 18C. Currently, I set the schedule up so that the heating is started at 6 am but depending on how cold it is during the night, an hour may be too little and the temperature does not rise to 22C or it may be to much and the temperature overshoots. I would like an algorithm that would automatically calculate the appropriate time at which to start heating.

I keep searching online and most results are for industrial uses and/or for heating systems that can be modulated such as electrical heaters. The heating system in my house consists of a boiler that heats the water in the floor tubing and I cannot modulate the output, I can only tell it to start or to stop via a mechanical relay that opens or closes a solenoid valve. This, I believe, renders a PID algorithm inappropriate. Fuzzy logic and just PI control may be suitable but can they be made to work with varying set points?

Supervised machine learning is overkill for my needs and I don't want to spend weeks to train it.

What other options would I have?

  • $\begingroup$ I'm not quite sure this is on-topic here. $\endgroup$ – Yuval Filmus Jan 10 at 12:33
  • $\begingroup$ I'm not either, but this question on stack exchange would seem to suggest it is. $\endgroup$ – user1969903 Jan 10 at 12:38
  • 3
    $\begingroup$ This is not really about an algorithm. It's about modeling the physical environment, with or without using data science. $\endgroup$ – Yuval Filmus Jan 10 at 12:44
  • $\begingroup$ I agree, but if Honeywell designs a new thermostat, I doubt they will send a team of engineers to every customer's home so that they can model their physical environment. $\endgroup$ – user1969903 Jan 10 at 12:50
  • $\begingroup$ You can always "fake" a continuous input by controlling the duty cycle -- pick a time period (e.g. 1 minute), then if you want to supply "25% power", you turn it on for 15s, then off for 45s, etc. The shorter the period you pick, the less overshoot there will be, but extremely short periods might not be suitable for other reasons. $\endgroup$ – j_random_hacker Jan 10 at 12:52

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.