This project aims to fill a gap in the market of smart home thermostats for Do-It-Yourselfers and Power-users; those looking to build their own projects and have full control, without having to tackle the learning curve of larger ecosystems (OpenHAB, SmartThings, etc).
The goal is to provide greater extensibility than modern competitors (EcoBee, Nest, etc) in terms of extra sensors, types of sensors and custom settings on your homes temperature control. Currently the system supports:
- up to x20 Bluetooth Classic temperature/humidity/motion sensors (Indoor/Outdoor)
- Unlimited 2.4 GHz NRF wireless sensors (within limits of compute power)
- Future support for simultaneous use of BLE sensors
- App settings for home, awake, and away temperature setpoints
- Intelligent operation by correlating with outdoor temperature (OpenWeatherMap/Sensors)
- RoadMap
- Raspberry Pi Setup
- Troubleshooting
- Technologies
- Requirements
- Pseudo Code
- Mobile Screenshots
- Desktop Screenshots
- Responsive and mobile friendly Web APP that can set a centered background image, tiled image, or a custom color
- Thermostat support for modern HVAC systems that DO NOT have a compressor
- Seperate thermostat settings for Home Awake, and Away
- OpenWeatherMap API integration
- ESP32 NodeMCU External sensors feeding local and remote sensor data
- Support for the DHT 11 / 22 / 21 on a GPIO connection
- Support for any micro-controller streaming the data as (hum,temp):
- C/C++ code for the Arduino and ESP32 NodeMCU using the DHT11/22 sensor
<64.8,23.5>
- Alexa API
- Google SmartHome
- IFTTT
- OpenHab
- SmartThings
- IOT Security Cameras (PiZero or other)
- Possibly other sensors that are on the market
- Additional Thermostat configurations, such as:
- Compressor system
- Boiler system
- No common (White wire usually)
- Heat pump system
- Humidifier/Dehumidifier?
- Any of the aforementioned Integrations will be quite the project
-
Write the iso using 'dd':
sudo dd bs=4M if=YYYY-MM-DD-raspios-buster-armhf.img of=/dev/sdb conv=fdatasync status="progress"
-
If using the HDMI&USB Connected TFT Touchscreens 'made' for RPi:
i. With the fresh SD still plugged in, access the "/boot/config.txt" file
ii. add the following options:
hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=87 hdmi_cvt=800 480 60 6 0 0 0 hdmi_drive=1 max_usb_current=1
iii. Be sure to change to the appropriate resolution for the screen
- NOTE: if you need ssh on first boot, place an empty file named '.ssh' in /rootfs
-
Setup Auto Update:
sudo apt-get install unattended-upgrades
-
Configure interfaces and hostname etc...:
i. Open terminal and type:
sudo nano /etc/hosts
ii. add the hostname 'openhub' to localhost as well as any 'static' IP you may have reseved on your router
-
"Permission denied" when trying to read a serial device. first step, list your usb connections with:
ls /dev/tty*
-
next, we need to give to give ourselves permission to read and write to it with:
sudo chmod a+rw /dev/ttyUSB0
- Vanilla JS, CSS3, HTML5
- jQuery v3.5.1
- jQuery-UI v1.12.1
- Chart.js v2.93
- Flask>=1.1.2
- Flask-APScheduler>=1.11.0
- pyserial>=3.4