I’ve heard great things about Ecobee and they can be controlled locally via home assistant.
In a similar vein, my 'smart' thermostat solution for my oil furnace has been to splice in a relay board that's connected to an esp32 running esphome through home assistant. On that board, and many others around the house, I have many 'virtual thermometers running again off esp32's using dht11's and esphome.
This configuration has allowed me to control the single-zone furnace using any or a combination of 'virtual' thermometers to turn the relay board on/off depending on conditions. I left the real old honeywell thermostat on the wall as a fail-safe situation in case the system comes crashing down, to prevent the house from freezing up in the winter -- Just set at a low minimum.
The downside of this is I either have to directly adjust the temp via phone interface / tablet interface / or google-assistant interface, but when that is done, it is all done locally. Simply toggling a simple relay board that just connects the 2-wire thermostat feed like a typical thermostat does. It has worked great!
In addition, one of the heat pump units (MrCool!) in the house was able to use a cloud-free dongle to bring it's controls into local-only control as well via home assistant, as well. This can also be controlled via phone / tablet / google home interface (I subscribe, I feel home assistant is worth supporting).
All of the local only devices are able to be accessed from afar using tailscale into the local network, with subnet routing.
When you have something like home assistant controlling it all, it's quite easy to set up situations like 'when the outside temp is less than 15(f)', turn the heat-pump off, and use the oil furnace instead, etc.
It seems the commercial control boards that do things of this nature cost a heck of a lot more, and effectively do very similar things.
It's a good time to start really considering a more local-based solution if you have the time to get the initial configurations all sorted!