2001 – 2005
In order to address some of the shortcomings of the earlier version, I attempted to build a new version using a modern GUI interface. But how to do this inexpensively? About this time, I was introduced to an emerging technology at work called Citrix. It allowed a dumb-terminal-like device (called WinTerm) to communicate with a server host and publish a Windows GUI. Through my wife’s company, I had access to the MSDN library and had install disks for every Microsoft product, so I set to work building my first Terminal Server on Windows 2000. I bought a pair of Wyse WinTerms and re-wired the house to use the in-wall wiring for Ethernet. I then re-wrote Watchdog again using Visual Basic 6 and MS SQL Server 2000. I dropped about $2000 for a pair of brand new LCD touch-screens to connect to the WinTerms so I didn’t have to have a keyboard/mouse taking up real-estate. So, I wrote the app with big buttons that were touch-screen friendly and avoided any features that required text entry. I later bought a 3rd WinTerm and connected it to my big-screen TV so we could flip over to it and use a wireless keyboard/mouse to control the interface from the couch.
Core features of the Virtual Home app included:
- A graphical view of the house with visible/hidden lines showing which doors and windows were open in real time
- A Cook Book feature that let my wife store and retrieve her favorite recipes
- Weather and news – grabbed off the Internet by scraping data out of the HTML web pages of popular sites.
- Address Book – name, address and telephone numbers for friends and family
- Traffic – a graphical view of the major roads in our area showing real-time color coded overlay lines depicting the traffic flow (Red/Yellow/Green) – data grabbed of the Internet by scraping data out of HTML web pages.
- Daily Horoscope – again, pulled from HTML web page scraping.
- Investment Portfolio tracking – automatically looked up the current price per share of each stock I owned and calculated the overall value of the portfolio.
- X10 interface so I could turn on/off lights from the GUI.
- List Manager – created checklists for a wide variety of stuff – a “Honey-Do” list, a system punch list, a list of the movies we wanted to watch, books to read, etc.
- The system provided an audio welcome greeting when you entered the house (Text to Speech).
- It also notified of other events like when a car pulled into the driveway (buried an electromagnetic sensor under the driveway)
- The system logged all open/closing of doors and windows
- Automated text messages sent to my mobile phone for certain events.
- It was a modular design so I could add new features as needed with minimal integration effort
Web development was big during this period, so a lot of the features of the house were leveraging skills I was developing at work around web development using MS Visual Interdev 6. At this point, all of the sensor interfaces were basic digital IO switching – nothing too fancy, yet. Toward the end of this period, I invested in a gadget called the “Hot Little Therm” from Spiderplant which provided an RS-232 interface to a set of TI 1-wire temperature sensors. I used the existing house wiring and was able to get temperature sensor readings from each room in the house.
Since I had the ability to display a nice custom GUI interface, I worked hard to develop a rich interface with a consistent theme between modules. My wife helped a lot by creating the art work for all the buttons and screens. For the first time, it really looked nice. Things were coming along nicely and we began to rely on the application heavily, but the solution still had some fundamental drawbacks:
1. It was getting HOT in that tiny coat closet with a server running full time
2. There were LOTS of wires everywhere which where not well organized despite my best labeling and color-coding efforts.
3. In order to achieve some of the advanced features I was dreaming up, I’d need a lot more wiring and capabilities. I dabbled a bit with wireless technology, but it was expensive and unreliable at this point – lots of interference near where I lived.
During this period, it seems I developed an insatiable appetite to integrate every aspect of the house into the Virtual Home app. For example, integrating the video baby monitor, track kitchen inventory, monitor car presence in the garage, add motion detectors, etc. I did a lot of planning toward the end of this period in preparation for the fourth iteration of Watchdog taking all this into account and trying to think beyond.
This is the breakout board I used to connect all the sensor wires into the PC. It used a monster 50-pin cable to connect to a special 16-bit IDE card inside the PC for basic Digital I/O. Pull up/down resistors were provided on board.