I would quess from what I've read here most of us have done a thermostat controlling one thing or another. I'm pretty sure every single one of them are different one way or another. My advice to you is decide what you want to do maybe even draw on paper a flow diagram of what you want, then start programming. If you hit a wall come back and ask questions, we will help.
I have a flow for central heating and hot water. It's a heavily modified version of a flow I found online for a nest-like thermostat.
I use 2 BigTimer nodes to set the daily demand temperatures M-F and 2 nodes for the weekend - they all feed into the same demand temperature node.
The demand temperature is a global.
I have other flows detecting our presence based on phone connection to the wifi. Depending on if we leave or arrive, the demand temperature can be changed.
I have other variables that determine whether heating automation is on or off, presence detection is on or off, away mode (if we're away from the house) is on or off - in that case the demand temperature from the timers is ignored and a static demand temperature is used as an override.
I have a dashboard dial that can be used to manually change the demand temperature, but also have made myself some esp32 based touch screen devices to allow manual incrementing of the demand temperature - they also send room temperature data back to the mqtt server - which the heating flow averages and uses to determine the house actual temperature.
To avoid repeatedly turning the boiler on and off based on temperature values - I only allow the boiler to receive a command every 10 minutes from the flow, but if the demand temperature is changed by the user, then the demand temperature is changed immediately and the boiler receives an on/off command instantly.
As someone else on the thread said - everyone does this differently - but these ideas may help you think of things that will work for you.
I've tidied it up a little and added some comment nodes
Other features I have included
The heating flow checking an email account so that you can email your heating or hot water to come on (for a 2 or 4 hour period) - I have a vpn, but this is a fallback.
My heating and hot water switches are flashed with Tasmota. In the winter I activate Tasmota rules that mean that if the switches lose contact with either the mqtt server or the wifi then they turn on - better to use a little bit of fuel than have burst pipes when away in case of a rpi crash or other failure - my system would then rely on the boiler thermostat and thermostatic radiator valves.
I've about 20 large flows for my home automation - and they are interlinked - I'll post something that you can use as a starting point based on my heating/hot water flow.
if the flow is to big instead of doing that with google drive
when exporting flow select download instead of copy to clipboard. Then go to your download folder and rename to something that makes sense.
here is my temperature contorls for my fermenter room.
Keep in mind im using an esp8266 with a ds18b20 temp sensor Tasmota is flashed to my esp8266 and i have a pressure sensor to monitor co2 pressure and i have controls for a solenoid valve which is what i physically use to control a temperature of a fermenter. myfermenters.json (55.9 KB)