A flexible and modular smart thermostat system, written in Node.js and Angular.
Work-in-progress, lots more to come!
- Numerous ways of controlling various types of climate control equipment
- Local Relays
- Remote relays (such as Shelly, Sonoff, or others)
- Smart plugs and other smart devices
- Designed to be universal with minor modifications
- Only requires two wires at the control panel, remotely controls systems
- Securely accessible remote access web UI
- Able to play sounds
- Can perform other functions too if desired, like access a smart home control interface
The current hardware choices are subject to change, but in general, you'll want to follow these guidelines to create your own version.
- Raspberry Pi
- 3 or better preferred although not strictly necessary.
- Micro SD Card for the Pi
- At least 32GB, but they're so cheap that you might as well go a fair bit larger for future reuse.
- A screen
- I used a 5" touchscreen that runs off of the Pi's DSI port. Lots of options exist in other sizes, display interfaces, etc. that will also work just fine.
- Any control devices necessary
- Relays, smart plugs, etc.
- Temperature sensor
- Info TBD
- Power supply
- Info TBD
- Power converter
- Info TBD
- Magnets
- Info TBD
- Speaker setup
- Info TBD
- Wire connectors
- Info TBD
- Screws
- Info TBD
- Soldering Iron
- 3D Printer
- Crimping Tool (optional)
- Superglue
These instructions will be expanded in the future, but the general process is as follows:
- If necessary, make any modifications to the 3D models.
- Use a 3D printer to print out the thermostat chassis and mounting plate.
- Using the mount points in the thermostat chassis and some screws, mount all components inside the chassis.
- Glue the magnets to both prints.
- Mount the wall plate to the wall over your existing thermostat wiring hole (or run some new wires and make a new hole)
- Attach the wire connectors to the existing wires
- Connect the thermostat to the wall wires
- Magnetically attach the thermostat to the base.
- Modify the wires at the source to inject power. More info coming soon.
- The Pi can be set up using the OS of your choice, such as the standard Raspberry Pi OS. As long as it can run Node.js 16+, any OS will probably work just fine.
- Copy the code in the
thermostat
folder somewhere, such as thepi
user's home directory. - Enter the thermostat folder and install the required packages using
npm install
. - Start the thermostat server by running
npm start
. Alternatively, copy thesmart-thermomstat.service
file to/etc/systemd/system/
to set up a systemd service to automatically run the script on startup. You probably also need to runsudo systemctl enable smart-thermostat
to enable it.