1998 – 2001
My wife and I embarked upon an exciting adventure – we decided to have our first house custom-built. We selected a builder that was willing to work with us and let me install some custom wiring before the insulation and drywall was installed. I pulled 2-pair of CAT5 cables to every room in the house and terminated it in the coat closet on the main floor. I also strung a bunch of speaker wire through the house as well as sensor wire to every door and window. I opted to do the wiring myself and learned a lot during this process. I went so far as to build wiring diagrams of how I was going to string the wire throughout the house, but had to scrap it all after the HVAC, plumbing and electricians were done with their stuff. I did a lot of pre-planning about where I would want to mount terminals and peripherals. I was determined to avoid having any visible wires for the home automation solution.
At this time, I began another ambitious project of re-writing Watchdog. I had a wide range of programming language experience, but also a tight budget. So, I opted to go the open-source route and dabble a bit with Linux. I re-wrote the whole application in C and developed ANSI graphical interfaces for monitoring and managing the house. I adopted mySQL as the central database. I then found a store that would sell me cheap VT-100 terminals and put one in the kitchen and one on my nightstand in the bedroom. I connected up the 25-pin connectors to a terminal card in a dedicated PC that lived on the floor of the coat closet. I used a set of punchdown blocks to terminate all the wires coming from the various parts of the house. I bought an industrial 5o-port DIO board and used that to interface with all the door and window switches. I split the audio output from the PC to 2 speakers mounted by the external doors of the house.
I was really excited to see my vision coming together. My wife (also very technical) was really great about giving me honest feedback and pushing me to build it better. Most of the issues I had with the initial release were addressed in v2, but I had some new challenges:
1. The user interface was not very friendly – we rarely used it.
2. The terminals took up a lot of real-estate on the kitchen counter and my night stand – I needed something more compact.
3. I was developing a long list of new feature ideas, but was limited by the architecture framework I selected. I needed something more modular.