Go browse your favorite store for a smart thermostat and take a look at the prices. They aren’t cheap and the more affordable models tend to lock you into proprietary ecosystems. But a decent smart thermostat can save you money on energy costs, so you might want to consider this DIY design created by Lorenz Kraus for a course at the Vienna University of Technology.
A thermostat is just a switch that makes an electrical connection when it passes a temperature threshold. Smart thermostats add some sophistication by monitoring the actual temperature and switching the HVAC equipment according to their programming.
This smart thermostat is open-source, so you, the user, can program whatever functionality you like. For example, maybe you want it to turn on the heater when the temperature drops below 18°C — except on Sundays when you’re visiting your grandma across town. This has its own database, backend software, and frontend interface, enabling just about any behavior you can imagine. You can even make your thermostat react to other events, like your arrival at home or upcoming weather forecasts.
That’s all possible thanks to the hardware, which consists of an Arduino MKR WiFi 1010 board, sensors, a relay module, an OLED screen, and a real-time clock. The sensors are an Adafruit Sensirion SHT31-D for temperature and humidity, and an optional MH-Z19C CO2 sensor (if you want to monitor air quality).
The only downside to this design is that it only controls heat — not a blower fan or air conditioner.