It's been a long, long time...

A project log for ThermPi

A Raspberry Pi thermostat for my heat pump, with presence detection

Nelson ButterworthNelson Butterworth 05/10/2017 at 04:130 Comments

...but I've finally made significant progress on my smart heatpump thermostat. I got my hands on several RasPi 3's, and I'm using 2 of them for this project. I might later reduce that to the single unit I originally intended to use, but for now 2 is the ticket. I have been working with Node-RED and MQTT (using mosquitto) for most of the last 3 weeks or so, and the results are pretty nice so far.

Here's where I am now, after more than a year of nothing:

  1. One RasPi 3 will be connected to the heatpump via a half-dozen solid-state relays. I plan to use a PiFace Digital 2 to bridge the GPIO header to the SSRs. A Node-RED flow runs here to toggle the relays and interface with the main thermostat logic.
  2. The second RasPi 3 will be placed in the location of my current digital thermostat. This one will connect to a temperature sensor (planning on a SenseHAT for the time being, as well as a touchscreen LCD. A Node-RED flow runs here to send the SenseHAT environmental data out to the rest of the system, with an additional flow for testing behavior across different temperature ranges. The SenseHAT includes an 8x8 array of RGB LEDs, which I might use as an additional signal for alerts (an actual "red alert"!).
  3. Ubuntu 16.04 Server machine running Node-RED and mosquitto server. The main Node-RED flows run here: main thermostat logic, display UI using Node-RED dashboard, processes to retrive current weather conditions and any weather alerts for my area, display statistical graphs, and initialize some parameters. Using Node-RED dashboard, I have developed several pages to display weather conditions, 3-day forecast, some statistical graphs, and the main thermostat controls, which I can display on any browser on my network. Mosquitto/MQTT is used to coordinate data communications between the 3 component systems.

Current feature set:

Some features still to come:

I'm also working on the display screen. I have an old 17" Dell LCD that runs 1280x1024 resolution. I hope to upgrade it to use LED backlighting and replace the existing VGA-only with an HDMI interface capable of playing audio. Then I can mount it as a single unit on the wall in the hallway where the current thermostat is.

I'll throw some screenshots of the web dashboard and some of the Node-RED flows into the project gallery.