Rack Mount Home Automation with a RPi

[Patrick] wanted to have centralized sensing and control over various parts of his house. His Raspberry Pi Home Automation System integrates a bunch of functionality in one rack mount package, salvaged from an old network switch.

The automation system is based on a Raspberry Pi running Arch Linux, which talks to an ATmega over SPI. We’ve seen this setup used many times before to add additional ports to the Raspberry Pi, but what makes [Patrick]’s build unique is the amount of control he’s built into the system.

The box controls outdoor lighting at sunset and sunrise, generates wakeup calls, controls IR cameras, and plays sounds based on events. It’s capable of monitoring sump pump water level, the state of a house alarm, and more. A custom REST API is used to interact with the device. This allows for programs on any platform to interface with his home, and acts as an API for his house.

[Patrick] provides a lot of details in his build log, which should be helpful to anyone looking to roll their own home automation system. The source is also provided.

It’s just that I like to give out my code for free. With no strings attached. But when I use GPL code, I cannot do that anymore. That is the reason why I often just write my own lib/software instead of using other people’s code (like my JSON library on that same site)

I do agree that the raspberry might sound lame, but my original intention was to use a real motherboard and build this with a full computer. But then I realized I didn’t need that much power. And the rPi is much smaller.
Don’t think of the rPi as a better replacement for an arduino, think of it as a better replacement for a full fledged computer. I am a person who will use either a full computer (rPi counts) or I will make my own circuit from scratch (no arduino).

I also have a NGW100 that I could have used for this. but the rPi is way cheaper to replace if I break it.

Nice work! I’ve been thinking of building out something similar ever since I got my pi, just have not gotten around to doing it. I was going to take a different route for communicating with an ATMega, my thought was to get an ethernet shield and arduino and spin up a webserver with either a REST or XML POST API, that way endpoints could be reached by a browser very quickly for system debugging. It would also give me an excuse to use up the spool of ethernet I have sitting at home :).

Actually I’m working on adding BLF support in my SIP module. The device will monitor the state of my FXO. Next christmas, I will make my christmas tree blink when the FXO is seized. But you just gave me an idea… I could do the reverse:. Have my device send NOTIFY so that a phone would subscribe to to different states of the device. So I could have a BLF that shows wheter the alarm system is on/off, or other things like that.