Where I work we wanted a way to have more control over heating, and after looking a bit around, we could not find one solution which would do all the things we wanted. We both wanted to be able to lower temperature a bit at night, and only turn the heat up Monday to Thursday. We also wanted to be able to pause heating in rooms where the doors are open so forklifts van drive in and out, and also be able to synchronize with some air to air heat pumps. The only solution I found which could do it all, was to make my own thermostats with esphome and then install home assistant on our server.
The thermostat itself is pretty simple, but for reliability I decided to design a PCB for them, and use an external off the shelf power supply and relay to do most of the work. Temperature is just measured with a 18B20 temperature sensor.