An DIY Smart Thermostat
Changelog
·
SmartTemp Bug
·
Request Feature
- Table of Contents
- About The Project
- Getting Started
- Config.h options
- Features / Whishlist
- Roadmap
- User Manual
- Contributing
- License
- Contact
- Acknowledgements
Just another smart thermostat!
In a smart home, a smart thermostat cannot be missing. So why not build one at low cost and with all the features that interest me.
The project started using material left over from other projects and respecting the following requirements:
- Low cost
- Independence from Cloud services (privacy first!)
- Small size (must be contained in a US size box)
- Be smart but if necessary work without WiFi and / or external controller
- KISS. Being able to be used by my wife, daughter, son, mother, father, grandmother, grandfather -> the whole family!
To get a local copy up and running follow these simple steps.
For a detailed list of components refer to the documentation (BOM)
- I2C Advance Extender based on ATMEGA8A-PU (See project at8i2cgateway)
- MCU ESP-01 or ESP-01S
- Serial programmer
- I2C Oled display
- Rotary encoder
- DHT22 sensor
- Relay
- 5v power source ( I used an Hi-Link 220v to 5v but you can use alse batteries )
- Wires and Connectors
!Work in progress!
- Platform IO ( to compile and generate the firmware )
- An HomeAssistant installation ( used as Smart Controller ) (Optional)
- An MQTT Borker (Optional)
- An WiFi capable device like SmartPhone.
- An WiFi internet connection
- Burn the bootloader into the ATMEGA8 with Arduino IDE and the SPI/ASP programmer
- Clone the SmartTemp
git clone https://github.com/dianlight/SmartTemp.git
- Open the project with Platform IO
- Configure the firmware
src/include/Config.h
- Build and flash your firmware
!Work in progress!
- Standalone Thermostat
- Current Room Temperature
- Current Room Humidity
- 3 levels of temperatures. (ECO, NORMAL and CONFORT)
- Week programming (15min resolution)
- Supported units
- Celsius mode
- Fahrenheit mode ( Wikipedia )
- Advanced Thermostat
- Away/In_house temp control
- Auto, Manual and Off mode
- Thermal confort mode
- Smart Thermostat (Wifi remote controlled)
- MQTT transport
- HomeAssistant climate compatibility (via MQTT integration)
- Homeassistant room presence integration ( auto AWAY/NORMAL mode )
- NTP clock sync (daylight auto switch)
- Time Zone configuration
- WebInterface
- Mobile WebApp
- External sensor
- Wifi temperature sensor
- Wifi pressure sensor
- Wifi air speed sensor
- Home Assistant collector
- Enclosure (3D STL printable models)
- Italian BTicino Living 2Gang
- EU standard
- UK standard
- US standard
*Checked are implemented
1Require external temperature sensor
2Require external temperature, pressure sensor and internet connection
See the open issues for a list of proposed features (and known issues).
!Work in progress!
!Work in progress not yet implemented!
The thermal confort mode allows you to set the thermostat not based on the real desired temperature but on the basis of the confort temperature. This significantly increases comfort by reducing consumption.
Mode | Description | Home modfity | Away modify | Note |
---|---|---|---|---|
Auto | Follow the Week program to set Eco, Normal or Confort target temp | none | ± delta | |
Manual | Follow the setting of selected target temp | none | ± delta | return to Auto mode after impoisted time |
Selection | Mode | Description | Function | Note |
---|---|---|---|---|
In house | Auto | Standard mode | Follow week program | |
In house | Manual | Temporary mode | Follow selected target temperature until timeout expire | Automatic return to Auto mode |
Away | Auto | Advanced mode | Follow week program with a ± temperature delta | |
Away | Eco | Advanced mode | Lock to Eco target temperature with a ± delta | No automatic return to Auto mode |
Away | Normal | Advanced mode | Lock to Normal target temperature with a ± delta | No automatic return to Auto mode |
Away | Confort | Advanced mode | Lock to Confort target temperature with a ± delta | No automatic return to Auto mode |
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GPL3 License. See LICENSE
for more information.
Project Link: https://github.com/dianlight/SmartTemp
Icons made by Pixel perfect from www.flaticon.com