In the Hardware section of the site, I talk about using an old Powerspec PC as my home automation server. An outdated PC works fine as a server in some cases, but really, running a little spaceheater-ish P4 around the clock? That’s so 2006. It would be kind of silly to blog all about power efficient lightbulbs and realtime energy monitoring while having a 10 year old PC buring 400 watts all the time. And who wants to run all their home automation stuff on Windows, anyway?
Over the last year, I’ve moved almost all my home automation code and programs over to a new platform: the Raspberry Pi. The PI makes a ton of sense as an HA server. It’s tiny, cheap, extremely power efficient, and can run a full Linux operating system with a graphical interface. You can tie it into low-level sensors (sort of), but at the same time, it can run Python scripts faster than the old Powerspec.
Here’s a little video introducing my Raspberry Pi home automation server:
Another great thing about the Raspberry Pi is that you can easily get it onto wifi. Just add an external adapter like the cheapo ones from Rosewill and you’re set. You can put your server anywhere in the house–in a cabinet, under your desk, in the garage, etc. Here’s my wifi setup:
So once you have your Raspberry Pi home automation server set up (and perhaps embedded in a project), how do you actually communicate it or upload new code? You can be fancy and get it to run an FTP server, but I find it’s often easier just to use Putty to send stuff over SSH:
So what does my server actually do? Well for starters, it uses CHRON to run my Bidgely scraping script once per minute, pulling in my realtime electrical usage. It also scrapes data from the endpoints of a ton of other APIs. You can even have it control things like Phillips Hue over your home network, using Python. I’ll share more on how I’m using my Pi in future posts.