I’ve added several new features to Watchdog since my last blog post:
- Stair light control – When I had the house built, I had the builder install some low-voltage lights on every other step to illuminate them at night. They are meant to be outdoor lights, but work well. There’s a large transformer in the coat closet that powers all the stair lights and includes a timer to turn them on and off automatically. This worked well, but the timing always seemed to get off during daylight savings time and if someone accidentally turned off the power switch on the wall. To correct that, I decided to mount a light sensor outside the house and use it to determine when to turn the stair lights on/off. I used an Arduino and a simple Photoresistor that I put into an airtight PVC pipe with a clear end-cap. I mounted it on the south side of my house that gets the most sun exposure. Next, I used the Arduino to control a Powerswitch Tail II device that I read about in Make Magazine. I wired the Powerswitch Tail in line with the power to the transformer. Finally, I put a Network shield onto the Arduino for external communication. When the outside light level drops below a certain threshold, the Arduino automatically turns on the Powerswitch Tail which turns on the stair lights. The network interface lets me integrate the solution into Watchdog so it can keep track of the status of the stair lights, and also determine if X10 lights may need to be activated. The network interface also gives me the ability to use the Network Time Protocol (NTP) to get the current time so I can turn the stair lights off from midnight to 5AM while we sleep.
- Summary Report – Watchdog logs every event that it tracks in a database table. I would periodically open the SQL Report and review the events to make sure everything was working properly. However, with all these new features I was packing into Watchdog, the event log was starting to fill too quickly for me to keep up with. So, I created a new Watchdog module called Summary Report that automated the analysis of the events that occur within a 24 hour period and sends me an email with a summary report every morning at 7am. This app also takes the aggregated statistics from the event log and saves them in a separate archive table. This frees disk space and lets me keep long term historical records on house events.
- Call Forwarding – While evaluating cost cutting options for our budget, my wife and I agreed that the house telephone line was a requirement, but we did not need to pay for all the extra bells and whistles that the phone company had sold us like an answering service. My wife prefers to receive all calls on her cell phone while she is out. So, I built a new Watchdog module that interfaces with an old fashion modem to dial the code to have incoming phone calls automatically forwarded to my wife’s cell phone when she is not at home. The module watches for the house status to go to “Unoccupied”, and then forwards the phone automatically. When the house status returns to “Occupied”, it dials the phone again to tell the phone company to disable the call forwarding. Now, she never misses a call and I can dial one number to get her where ever she is.
- Server Upgrades – The hand-me-down desktop PC that had been acting as the server to run the Watchdog modules was loud, power hungry and slow. It was time to make another major investment and upgrade the server. I decided 2 servers were required in order to distribute the work load more effectively – one dedicated to running modules impacting things outside the house (Irrigation, Summary Report, Call Forwarding, etc.) , and one dedicated to running modules impacting things running inside the house (DIO interface, temperature interface, etc.). I turned to my friends on the west coast at Polywell computers who I had worked with to build some custom servers in the past. They did a great job for my by giving me 2 identical PCs that had very small form factors, special heat-sink aluminum cases so no internal fan was needed, and all the serial and USB ports I needed to run my peripherals. I have been extremely happy with these servers.