After looking around a little I couldn't find any zigbee thermostat which met all my needs (mostly, I couldn't find any which switches high voltage and has a wireless sensor that can stay in a different room).
so I went for the fully custom setup: a normal zigbee switch connected to home assistant and controlled by their software implementation of a thermostat. The temperature sensor is a template sensor which takes the temperature of the living room during daytime and the bedroom during nighttime. I have automation to change the target temperature during day, night and when the house is empty.
pro: fully customizable by software, dead cheap con: the heating needs your server to work correctly
Some failure modes I found and their workaround:
- The temperature sensor goes offline. I have automation to turn off the heating and send a notification
- the server goes offline: I left the old dumb thermostat wired in parallel, it can guarantee the home will not go too cold.
the only failure mode I'm still concerned is if the server goes offline while heating is on. In this case there is nothing to turn it off again. I was looking for zigbee switches with a timer to switch off automatically but I couldn't find any. So if I'm out of home for more than one day I disable it and revert to the dumb thermostat.
my suggestion here is: whatever solution you choose, be sure to have a plan b in case whatever smartness you have stops working (cloud service or local home assistant offline)
I did some experiments in the past. The nicer option I could find was enabling webdav API on the hosting side (it was an option on cPanel if I recall correctly, but there are likely other ways to do it). These allow using the webserver as a remote read/write filesystem. After you can use rclone to transfer files, the nice part is that rclone supports client side encryption so you don't have to worry too much about other people accessing files.