How to get this setup for my heating system?

I am beginning with my Heating system, which I want to be smart and based not in programming times, but in usage of the home.

If heating is connected, valves in each room would be able to regulate the opening to reach the set temperature (I will use some zigbee valves for that in each regulated room).

But here each day is different and it is almost impossible to predict who is going to be where and when.

My idea is to change valves mode in eache room from night to day based in whether somebody is using the room (will try to use presence detection, but user should be able to change it).

When nobody is at home (again may be I am able to do it automatically later, but for now it can be a button when leaving that you press and activate out of home mode) temperature should be set to another temperature set lower, or in the mornings while you are ventilating the home.

In each room there would be a valve able to be put in day or night mode and autonomously reach the set temperature, and a tasmota device that would measure temperature and might be assigned other tasks.

My heating system is a central one (a community heating boiler distributes hot water to all community radiators) with a valve at the entry of each home with a controlling relay that can control whether the valve is opened or closed.

I will use a tasmota central controller that controls the general valve opening based on whether any of the valves in the rooms demands heating.

All ideas on how to acomplish these and how to configure HA would be wellcome.
Any comments that you think will improve the heating system would be greatly wellcome too.