On heating. That was the first place I applied my software engineering when I bought a house.
I now don't even need to look at it and asides the odd bug which causes issues once a year or so, it works transparently.
I will make an attempt at explaining my heating control system in as few words ...
Each room has a temperature and humidity sensor reporting at least once a minute. These are placed close to where I will be in the room. The living room sensor literally sits on the rear of the sofa.
Rooms which can be sealed off have electrically activated radiator valves on smart switches.
A scheduling system allows different "profiles" to be active based on various conditions. Presently those conditions include time of day, day of week, hour of day etc. Also they include "Presence indicators". If for example the living room smart TV is on, or the bedroom one, or the office PC, these are taken as indicators the room is in use.
"Profiles" are a set of targets or parameters for "zones".
Schedules and profiles are concurrent and cascade. So multiple profiles and schedules can be active for a single zone.
Should an active profile not match the sensor data it will raise a "Request" for heating (for example).
A request processor takes the stream of possibly duplicate, possibly conflicting requests and converts them into single demands for single zones.
Demands for heating, for a particular zone, are processed to determine how best to deliver that demand. This produces "Control" signals for boilers, radiators etc.
Controls, Demands and Requests all "expire" and their effects cancelled after a pre-configured period (per type). For example a radiator once told to be on, will switch itself back off 3 minutes later unless something continually updates it's Control state. This is a "Default/Fail safe" behaviour implemented at each level such that in failure the system should revert to whatever the safest state is.
The existing heating panel still works and can still be used. The only catch is the radiator valves will need to be switched on manually.
I typically run a "base temp" of 14*C across the board.
On top of that I run a "At home" time based schedule that used to be 5-9 Mon-Fri, but is now just 24 hour as I work from home. It's 16*C for all but the hallway.
On top of that I run a "presence" aware schedule which sets "comfort profile" temps for those rooms in use.
Office: 21*C, Bedroom 18*C, Livingroom 19*C.
On temperatures. Do not get hung up on the numbers. Even moving the sensor 2 foot vertically in a room can result in a difference of 1 or more degrees celcuis. Different sensors have different errors. Some read high , some read low. That is why the living room and office have different targets. Each feels comfortable.
Of course I gather mucho data for all of it.
This is a capture for "right now", no heating in the past 24 hours. It is summer. Just got to keep an eye on the humidity.
![1684755696924.png 1684755696924.png](https://diysolarforum.com/data/attachments/150/150115-cedec5bd4c01a71b3ad03a3550335eb1.jpg)