dianlight / SmartTemp

DIY Smart Thermostat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


Smart Temp

An DIY Smart Thermostat
Changelog · SmartTemp Bug · Request Feature

Buy Me A Coffee

Table of Contents

About The Project

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!

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Hardware Prerequisites

For a detailed list of components refer to the documentation (BOM)

  1. I2C Advance Extender based on ATMEGA8A-PU (See project at8i2cgateway)
  2. MCU ESP-01 or ESP-01S
  3. Serial programmer
  4. I2C Oled display
  5. Rotary encoder
  6. DHT22 sensor
  7. Relay
  8. 5v power source ( I used an Hi-Link 220v to 5v but you can use alse batteries )
  9. Wires and Connectors

Circuit

!Work in progress!

Environment Prerequisites

  1. Platform IO ( to compile and generate the firmware )
  2. An HomeAssistant installation ( used as Smart Controller ) (Optional)
  3. An MQTT Borker (Optional)
  4. An WiFi capable device like SmartPhone.
  5. An WiFi internet connection

Installation

  1. Burn the bootloader into the ATMEGA8 with Arduino IDE and the SPI/ASP programmer
  2. Clone the SmartTemp
git clone https://github.com/dianlight/SmartTemp.git
  1. Open the project with Platform IO
  2. Configure the firmware src/include/Config.h
  3. Build and flash your firmware

Config.h options

!Work in progress!

Features / Whishlist

  • Standalone Thermostat
    • Current Room Temperature
    • Current Room Humidity
    • 3 levels of temperatures. (ECO, NORMAL and CONFORT)
    • Week programming (15min resolution)
  • Supported units
  • Advanced Thermostat
  • 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

Roadmap

See the open issues for a list of proposed features (and known issues).

User Manual

Encoder function

!Work in progress!

Thermal confort mode (Advanced)

!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.

Temp/Humidity

Modes

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

In house / away selection

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

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GPL3 License. See LICENSE for more information.

Contact

Project Link: https://github.com/dianlight/SmartTemp

Acknowledgements

Icons made by Pixel perfect from www.flaticon.com

About

DIY Smart Thermostat

License:GNU General Public License v3.0


Languages

Language:C 76.2%Language:C++ 13.3%Language:JavaScript 4.4%Language:HTML 3.0%Language:Python 1.3%Language:OpenSCAD 1.1%Language:Less 0.3%Language:CSS 0.2%Language:Shell 0.0%