I use a Centralite Pearl Zigbee thermostat. It’s inexpensive and integrates easily into Webthings with the Zigbee addon. When brought in as an active item on the Things page, one can review and change the properties at will. The only “smart” activity I’ve setup is that when I’m away from the house, or I go to bed, the heat target gets set to 59F. I could go a lot further if I wanted to but after 40 years of marriage I don’t need those arguments…
As a note here, I use primarily the Macro addon (Macrozilla) rather than the out of the box rules. Macrozilla makes me set the thermostat temp in Celsius rather than Fahrenheit (it’s a bug). Also, Macrozilla doesn’t do time well. With out of the box rules you shouldn’t experience those inconveniences.
I also control the re-circulation pump on my on-demand whole house hot water system. I have a Navien CR-240A with the built in pump. I’ve removed the pump control from the Navien circuit board (not hard), put a male 120v plug on it and pluged it into a Zigbee smart outlet. Zigbee motion sensors in the kitchen and bathrooms will trigger the pump to run for two minutes so hot water is instantly available. If you have a re-circulation pump this is really a configuration to consider. A pump running when hot water is not needed is a waste of energy. Worse though is the erosive effect on copper pipes that will eventually cause pin holes in the copper (not a myth, I have a plumber friend who has seen this multiple times).
Finally, if you choose to go Zigbee, at the initial setup restrict the signal to channel 25 or 26 (see posts on this subject) to prevent interference from wifi. It may help and it can’t hurt.