Most recent articles
My Nest thermostat is great, but it’s in a room of my house where the ambient temperature is inconsistent. The room tends to warm up quite a bit when the sun comes in. It’s also in the dining room within maybe three feet of the oven in my kitchen, and the light over my dining room table has 5 halogen bulbs that will also heat up the room considerably when turned on. All told, it tends to be a room that gets warmer than the rest of the house, which often results in the furnace not running, making the rest of the house colder than I want it.
This project takes a Beaglebone Black with a TMP36 Temperature Sensor to track the temperature in another room of my house, and turn up the thermostat when the temperature difference between rooms gets to be greater than 1° C (1.8° F). It will then turn it back down again when the temperature difference equalizes or the temperature in the second room gets warm enough.
The source is all available here: https://github.com/tomgersic/beaglenest
The meat of this project is contained in beaglenest-client. The beaglenest-server script isn’t neaded at all, except to provide a web-accessible log of operations. If you don’t want that, you can just comment those bits out. It also uses Twilio to send me a text whenever it’s overriding the existing Nest target temperature, and when it resets back to the default so that I know when it’s being turned up. That can also be disabled if you just want the temperature sensing and Nest control.
This is all possible, in large part, due to the Unofficial Nest API on Node. The makers of Nest are working on a public developer API, but it’s not widely available right now, but this “unofficial” library makes good use of the existing APIs being used behind the scenes by the thermostat and existing Nest apps that are already out there.