I would like to remote control the HVAC in the house. As a first not so intrusion attempt (rather than install relay and everything), I'm thinking to attach some GPIO pins to the controller panel and simulate up and down button press while I'm out to control the temperature. I would also install a temperature sensor on the raspberry pi to read the temperature and a webcam to read from the controller LCD.

I think it should work except I'm not too familiar with PCB based button and not sure how to connect to the Pi to simulate a press event.

Can someone please check if my concept will work and what I need to connect to GPIO?


I have recently built a similar set-up using the RPi to switch on and off my central heating system. It was a fun project to research and design the hardware and software elements.

I soldered some fine wires onto the contacts of the relevant PCB button in the control unit, with a connector on the end so that I can disconnect the system when not in use. In my system, the buttons are actual components soldered onto the circuit board, which made it easier for me to add the wires. If they were the type that are just bare pads on the board with a conductive patch on the back of the rubber button, it probably would have been more fiddly to solder.

The wires are shorted together by a reed relay for a few seconds, which simulates pressing the button. The reed relay is driven by one of the RPi GPIO pins, via a transistor. I also added a DS18B20 single wire bus temperature sensor. All the components went on a small piece of veroboard, which mounted directly to the RPi using a 26-pin header socket to attach to the GPIO pins.

The system works well, but I did have to move the temperature sensor off the board on a long lead. My RPi runs at about 50 dec C, and there wasn't sufficient airflow to avoid the CPU warming up the sensor.

I didn't try adding a webcam, but I don't see a reason why it shouldn't work.

I found various guides on the web helpful for driving the relay, monitoring temperature and setting up a secure webserver to control it all.

For fun, I also set up a cron job to record the temperature every 15 minutes, and a web page that used the Google Charts API to visualise the result.

| improve this answer | |
  • Cool. Thanks for sharing your project! I didn't think of moving temperature sensor off the board but it makes sense! FYI, I added a USB camera and a program called "motion" last night, and notice it choked up ~30% CPU when running in the background and goes to about 45% when user is browsing over the web. If I log the image/video to disk, it can take ~80% CPU, quite heavy... – Patrick Sep 17 '14 at 15:37
  • Prompted by your question, I tried adding a cheap webcam too, using fswebcam. This app takes stills that you can then serve up via your webserver, which should be less CPU-intensive than streaming. It does take a second or two to grab a photo though as it averages several frames of the video feed, to get a better image. The software worked OK, but where my heating controller sits, there isn't enough light for the webcam to take a decent picture of the LCD :-( – JRI Sep 17 '14 at 23:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.