What is CrouchHouse?
CrouchHouse is the name of my home automation / information project. My wife has taken to calling herself CHO (Chief Home Officer) of CrouchHouse and I’m the CTO (Chief Technology Officer). I’m a software developer and scientist by trade, so rather than go out and buy a complete home automation system, I figured it would be fun to slowly put one together where I know exactly how each part works.
The Robohouse Interface
The realish-time robohouse display for our house can be accessed by the public via the internet at https://www.crouchhouse.com
I decided to host the interface online so it would be easily accessible from the internet (on mobile devices, at work, etc). The obvious drawback here is that if the internet goes out, the interface is inaccessible. However, this hasn’t been an issue in the ~2 years the site has been live. The site is hosted on Dreamhost. I find their service is pretty great and they are open-minded about interesting projects.
Not all interface functionality is available when offsite. I’ve coded certain parts of the interface to only show up if the site is accessed by our home IP address. Since our home IP address is dynamic, there is a pinger script that updates an IP database field on the remote server every five minutes.
What’s On The Public Interface?
We live in a 10 room house in Boulder, CO, USA. When I first started CrouchHouse, I used four old PCs I had lying around to be sensor hubs located throughout the house. The first iteration of CrouchHouse reported temperature in four rooms of our house: the living room, my office, the baby’s bedroom, and our downstairs family room. In time, I added additional sensors in my wife’s office and the laundry room. Currently, the six operating sensor hubs are running on 2 Windows 8/8.1 desktop PCs (offices), 1 old Windows 8 laptop (family room), 2 old Windows 7 netbooks (baby’s bedroom, laundry room), and a Raspberry Pi B+ microcomputer (living room). The living room sensor hub is on a Raspberry Pi because I wanted to play around with one and it allowed us to put the hub out of sight on top of a piece of furniture. The laptop/netbooks also offer small, easily-hideable computers with the added benefit of having a built-in UPS (battery).
In addition to the sensors located within the house, the CrouchHouse remote server queries a Weather Underground API to retrieve current weather conditions from 3 backyard weather stations located within 0.2 miles of me. I then average these readings to come up with an “outside temperature”. This was both easier and cheaper than setting up my own weather station. Thanks neighbors for providing this weather information! The average of the three stations seems to be pretty spot on when I ground truth in my backyard.
How Does Data Get To The Interface?
Temperature data gets sent from each sensor hub to the remote site via automated cron scripts every five minutes. The remote site then stores that information in a MySQL database for archiving. The interface displays the most recent reading for each room (and outside) from the last 15 minutes. If a reading hasn’t been stored for the last 15 minutes, the interface displays a null value for that room (e.g., “–“). In general, the network is always online. There are some short periods when Windows auto-updates itself that certain rooms may appear offline.
How Else Is The Data Accessed?
In addition to the publicly-accessible website, I’ve created an iOS app my wife and I can use from our iPhones. Also, we have an Android tablet hanging from our wall to provide an easy readout when moving about the house. I’m also planning to convert an old iPhone 4 and an iPhone 5 into two more wall interfaces. They just need frames.
I will add posts to this site as new features are added to CrouchHouse or we create some fun home hacks. I’d love to hear about your similar projects / questions below in the comments!