Home Automation EZine
Volume 2 Issue 1
February 1997

Features
Home Pre-Wire Guide
A/V Basics
Alex - Dan Hoehnen
PLC Controllers
Steve Nolen's Home
Lucky Lindy
Signal Balancing
Steve's Cyberhome
CES Report
Temperature Sensors

Columns
Editorial
CEBUS
Letters
Events

Home Automation Products & Services

Reviews
XTend
Cyberhouse
LynX-SOFT
WinJukebox

Current Issue
EZine Archive

Return to Main Menu

 

[an error occurred while processing this directive]

Home Automation
by Stephen W. Nolen nolen@pobox.com

The Beginnings | Our Current System | Future Plans


The Beginnings

CP290 X10 InterfaceMy interest in Home Automation goes way back to the beginning of the X10 'Plug and Power' modules offered by BSR and Radio Shack. These modules allowed remote command of appliances and lights via 'command consoles'. This was before the CP290 Powerhouse system was available and the only way to 'schedule' your lights or appliances was with a dedicated computer. I had just the computer too, a spare Commodore VIC-20. With it's 5K of RAM, 22 column display and a small 'User Port' X10 adapter, the VIC controlled lights and appliances in our small house on the schedule I prepared. It also had a simple cds light sensor hooked up to it that triggered a joystick fire button when it was dark so the program could turn the lights on at dusk and off at dawn... sometimes it worked, sometimes it didn't.

The program was written in Commodore interpreted BASIC and no power backup or reload capabilities were at hand. So if the power went out, I had to restart the whole computer/program... not too good of an idea if you want the house to look 'lived in' while on vacation. When the CP290 came out, that was one answer to my home automation desires... at least it could take care of scheduling everything. I purchased the CP290 with the C64 software and was off and running with the new system. My plans to keep the VIC online as a real-time monitoring system was dashed when the VIC AND the X10 interface was trashed somehow. I'm still not sure what/why or how it happened but they both didn't work. I eventually fixed the VIC and still have it, another VIC, and two C64's setting around gather dust.

With our move to our new house, the CP290 came with us and once I found some PC software to program the unit, it was hooked up to my new 8088 XT (Commodore brand in fact and it's still used in the garage) and set about doing it's simple scheduling task. I still hadn't pursued the real-time monitoring since I didn't have an easy way to hook the C64/VIC stuff up to X10 and didn't want to spend the extra money at the time to get a new interface. So for several years, the CP290 did it's job of turning the lights, computer monitors, heaters, etc. on and off as needed and is still working today.


Our Current System

Current System Quick Index
Analog Inputs | Digital Inputs | Digital Outputs | X10 Modules
Scenes | Motion Detection | Clothes Dryer | Speech Output
Status via Pager | TVRO Mover | Other Stuff
Voice/Fax Mail | Computer Systems Description

JDS Timecommander+I had planned on using an old PC to handle home automation. I even built a digital I/O board, and looked at many different ways to automate things. MicroMint's NetPort modules looked like a promising way for a distributed system but after working on the flow charting of developing the code to take care of it, I opted to go with the JDS TimeCommander Plus system. It is a stand alone or PC integrated system that provides 2-way X10 control, 8 analog inputs, 16 binary inputs, and 8 binary/relay outputs. The system uses an additional Support PC to handle features such as voice output, WAV output, and other special features listed below.

The JDS system is installed and running and has been located in a secured area near our home security system.
The system tracks the following items;

  • ANALOG INPUTS:
  • 1 Outside Air Temperature (OAT)
  • 2 Inside Air Temperature (IAT)
  • 3 Garage Temperature (GAT)
  • 4 Wind Speed (FUTURE)
  • 5 TVRO Dish Location
  • 6 Future
  • 7 Future
  • 8 Future
  • DIGITAL INPUTS:
  • 1 Alarm System Armed Status
  • 2-5 Alarm Loops 1, 2, 3 and 4
  • 6 Burglar Alarm Sounding
  • 7 Fire Alarm Sounding
  • 8 Door Bell
  • 9 Garage Door Status
  • 10-11 Living Room / Kitchen Motion (Future)
  • 12-15 Bedroom #1, #2, and #3 motion (Future)
  • 16 Clothes Dryer Monitor (11/05/96)

Digital Inputs Explained
Most of the DI's are self explanatory. The first 7 DI's are used to track the alarm system status, loop status, and alarm on status. The Doorbell input is primarily used to open the garage door in emergencies but will later allow announced visitors and the ability to take a message if we don't answer the door. I track doorbell toggles during the day and when I hit the 'home' code the system tells me if there were any doorbell rings today or not.

The garage door status is used to insure the door is closed at night and used as feed back for the relay output for closing/opening the door.

The Clothes Dryer? (11/05/96)
Yeah I track the dryer now. We recently purchased a new dryer and to my amazement, it doesn' t have a 'buzzer' or other notification sound that a cycle has finished. It is also located in the garage which makes it very difficult to know when the dryer is finished unless we happen to be in the garage at the time. So I added a dry contact relay output that goes ON if the dryer's running. The TC+ then checks the DI and if it TOGGLES and GOES OFF that means the dryer has finished and the system 'speaks' the notification through the sound system. It also will remind us every five minutes that the dryer is done until we toggle the notice off via an X10 control code. Works for us!

  • DIGITAL/RELAY OUTPUTS:
  • 1 Arm/Disarm Alarm
  • 2 Open/Close Garage Door
  • 3 Future
  • 4 Future
  • 5 Future
  • 6 Alarm Siren Interrupt (01/02/97)
  • 7 TVRO East see note
  • 8 TVRO West see note
  • X10 MODULES:
  • Living Room - End lamps, recessed lighting, hall lighting and ceiling fan
  • Kitchen - Ceiling light and fan, sink lighting, and TV
  • All Bedrooms - Ceiling lights and fans, reading lights, and arch lamp
  • Computer Room - Personal system Monitor, TV, HomeAutomation PC Monitor, All lights
  • Outside Lighting - Low voltage pat lighting, north and south side lighting, patio and garage lighting and rear lighting. Driveway light is X10 motion/dusk sensor and is used to trigger front events.

    All ceiling fans are controlled through transmitters using a single button for light and fan control. The light is on the house code of the transmitter while the fan is on a different house code using the same unit number. The 'light' button pressed once will automatically turn on the light. If the button is pressed again within 3 seconds, the fan will be turned on by the TC+ using the XSEQ checks. I hope to have most of the light switches replaced with Leviton Transmitters in early 1997 to allow standardized control of everything without having to use the current remote keypads. Primarily this is to keep from losing the remotes so often. Even with six of them all over the house, we never can find the one in the area we are at the moment.

Motion Detection

Outdoor motion is detected by an existing X10 flood light system with additional future unit planned. Since the TimeCommander will allow two-way X10 control, decisions on what to do with outside lights can be based on the X10 flood light and the current outside light level as well as if the system is in 'home' or 'away' mode.

Indoor motion detection will be handled by some cheap IR sensors located in various positions in the house. I haven't purchased all of them yet but I am using an old modified flood light sensor and Universal X10 Modules in the computer room and in the front exercise room for now to track motion and make decisions for lighting, computer monitors, occupation, etc.

Scenes

Several "scenes" have been established including, "home", "away", "goodnight", "entertainment", and "vacation".

home/away
The AWAY mode is triggered by X10 sequences OR by smart control by the system through the motion activity in the house. For example, if we forget to start the AWAY mode code (via dedicated "K"ontrol house coded mini-controllers in the garage and living room) during the week and no motion has been detected throughout the house for one hour in the morning, the AWAY mode is automatically set. The system then insures that all lights and unneeded controlled appliances are off, outdoor lights are off, garage door is closed, alarm system is active, etc.

goodnight
GOODNIGHT mode is trigger either by a command or by time of night. This mode insures that outdoor lighting is indeed on, all interior lights not used are off, and the house is secure for the evening. It also is used to change the behavior of motion detected INSIDE and OUTSIDE of the house to help provide lighting for those moving about. Motion detected outside triggers a routine that turns on various exterior and interior lights in timed intervals to provide that "I see someone is outside" appearance. Motion inside the house brightens the affected area enough for those moving around to see where they're going and then darkens the room again after timing out. Since I use several 16 unit wireless controllers, the X10 sequences look for UNIT# - ON sequences AND UNIT# only sequences.

goodmorning
GOODMORNING mode is trigger by an X10 sequence when I get up and is not triggered automatically. (We are not THAT consistant in the times that we get up, especially on the weekends). This mode lights up the house as programmed and then reads the weather report as explained below

entertainment
ENTERTAINMENT mode is trigger by an X10 sequence command and is used to dim certain lights and set the correct 'mood' for watching a moving on the entertainment system. I'm currently working on interfacing the IR controls to start the movie, set the correct surround sound setting and volume and turn off any secondary monitors, etc. that aren't needed. In addition the system says "I hope you enjoy the show" when everything is ready just for the fun of it.

Status via Dial Out Pager

The system provides outside communications including paging me with system information depending upon the situation. Although the paging is limited to digital values since that's what my pager is set to, it will let me know when something 'odd' is happening such as motion during time periods when no one should be home, abnormal temperatures, or other areas as I can think of them. I've also added one-button paging for my wife to use via one of the control based mini-controllers.

Yes I have a modem and a PC hooked up to the TC+. I accomplished this by putting the modem on an X10 Appliance Module. When/if the system needs to use the modem to page me, it turns the appliance module on, runs the paging code and then turns the module off. Obviously I would like to have the modem online full time but I've found too many conflicts for now to get this to work.

When I get around to building a phone ring detector, I will program the TC+ to look for the special ring sequence for dialup activity and turn the modem on if found. This would allow remote dialup access with my existing setup. The modem is an old US Robotics 9600 baud unit (I've modified the TC+ to run at 9600 baud instead of 2400).

Speech Output (09/17/96)

Since the JDS Timecommander series does not support any specific speech hardware or software, I've improvised by using the 'execute' option of the ASCII OUT function. If you have the MegaCommander running in Windows hooked to the JDS unit, you can use '&&' in an ASCII OUT command to execute any program you wish on the PC. I use the Soundblaster 'SBTALKER' program to say whatever I send in the ASCII OUT command. I use this to validate arming the alarm, goodnight, vacation, and entertainment scenes, etc.

I have setup two basic batch files that handle the speech output. One called t.bat takes up to 8 words and says them one at a time. This allows for simple notifications such as 'system is armed', 'garage door is open', etc. Another bat file, r.bat is the 'read' command that reads an existing .say file which is simply a text file containing the requested text. I use this for items such as 'dryer is finished, please stop dryer now' and more. The advantage here is that you can have multiple lines of text and the system says the text much smoother than using the command line parameters. The reason I use short .bat filenames is due to the limited line length when using the ASCII OUT command on the JDS TC+. You can get more words, characters, etc on a line using r.bat instead of readfile.bat without having to use the '\' to extend the command to the next line.

Voice Output Weather Report - (12/16/96)

For some time I have had a scheduled activity on the HA PC to dial up my ISP, get the local National Weather Service weather report and display it on the system's screen. I tired quickly, however, of having to go to the 'computer room' to see the weather report when I'm in the bedroom and I do not have the TV display of the computer going to the bedroom yet. Soooo, I wrote a simple little QuickBasic Program called WEATH.BAS to read the incoming forecast text file and filter out only the current date/time and forecast information. The source coded is listed above and you are welcome to use it although I do not provide ANY KIND of support or guarantees for the code. In addition, a compiled version in ZIP format (WEATH.ZIP )is included for those without an old QuickBasic compiler. Run the program to see the help screen for information on how to use it. I've added a few items to this version for flexibility such as the /L (long line) option so there are no pauses in mid sentence, /C to include the 'current conditions' available in SOME forecast, and some other items. I KNOW this works for the OKC area forecast but I'm not sure about others yet.

This was and is a little bit of a challenge since whoever or whatever enters the forecast text does not REALLY keep the input consistent. The program's been 'pretty good' at getting only the current forecast information but does miss the mark every once in a while and other location's forecasts may be formatted differently. Anyhow, back to the important part... Now when I enter the good morning code on any X10 transmitter to wake up the house, not only do the lights brighten up, etc. but the PC 'reads' the chopped down forecast to me and the family so we know what to expect weather-wise today. It's still rather crude but works for us.

By the way, I use an excellent scheduling program called LaunchPad by CypressNet to schedule the forecast pickup. LaunchPad allows you to not only schedule a program to run or stop but allows faking keyboard inputs to any Windows program to allow going to a location, saving a file, etc. LaunchPad also schedules the WEATH.BAS program to filter the forecast after it has been received. It also support bi-directional DDE capabilities for more complicated activities... now only if the Event Manager for Windows and MegaController would support DDE!

TVRO - Satellite Dish Control

Since my old CBand dish mover died, I have hardly ever used the old big dish. However, it struck me one day that the TC+ could assist us in this little problem. SOOO I patched the dish inputs over to the TC+ and put the resistance feedback into the A/D input, added a couple relay outputs to control the direction the dish is moving and put an X10 module on the power supply that moves the dish around. Now the system can receive an X10 control signal, determine where the satellite is at (from the preprogrammed resistance values I've established) and set the dish at that point. It's not perfect yet, but a lot easier than having to try to find a bird by hand!

I have some ideas of how to achieve the same result without using two relays on the TC+ by building a double-pole/double-throw X10 controlled relay. Here's the whole story on how to do that if you're interested in the relay. By using the special relay to control motor direction and a single relay output to drive it, the change of EVER having both relays on and buring out a power supply fuse should be gone.

Voice/Fax Mail

Currently the HA PC simply receives any incoming faxes on our data/fax line. In the (near?) future, the system will have an additional modem installed that will monitor the voice line and replace the existing answering machine with a voice mail system, fax system and fax back system using an inexpensive fax/data/voice modem. Macros such as those used by Reynold Leong will then be used to play back the messages, etc. The software I've worked with for voice and fax mail to date is SuperVoice and BitWare both of which will fill my needs. The only lacking point is how to automatically have the software indicate that a message is waiting without having to look at the computer screen... anyone have ideas?

Other stuff

  • Several .WAV files are also used to provide an audio cue for certain items that I don't want the system speaking to me. I use this for alarms, garage door opening, system armed/disarmed, etc.
  • I control the living room entertainment system via a X10 Powermidtm transmitters. This is needed to control the primary hi-fi VCR that is used to play movies in the bedroom when desired and to provide the ability to shut down the entertainment system from the bedroom at the end of the day.
  • We use the voice output for several general 'reminders' such as;
    1. Reminding my wife to take some medicine every night
    2. When to refill the humidifier - Every other day
    3. When to replace the HVAC filters - Monthly
    4. When to take out the garbage - The night before garbage pickup
    5. When to water the plants - Weekly
  • Although not intergrated into the TC+ or PC systems at this time, we have used a automatic setback thermostat for nearly eight years now to set the temperature up/down during normal unoccupied times. I would love to have the X10 Controlled thermostat but it's difficult to cost justify it at this time.

The Future

  • Hope to have a full house intercom wired up shortly. This will include most major rooms (Living, Bedrooms, Kitchen, and Front Door) Once this is setup, the SB16 sound card will be integrated into the system and an X10 remote phone system added.
  • Plan on adding some weather related inputs such as wind direction and speed, a 1/10" rain gauge, and humidity sensor. This values will be logged via the JDS system for decision and historical purposes and/or used to control devices inside the home such as the humidifier ONLY during the correct weather conditions.
  • Have already wired up the HVAC system to track when the heat, A/C, and fan are running but haven't made room on the TC+ to install these. This will be used to track run times and for alarms if the interior temperature is out of range AND the HVAC unit(s) are not running.
  • Working on a real-time electric usage system as described in Circuit Cellar INK. The system uses inductive feedback and a MicroMint Dominotm micro controller to monitor usage and then feeds this data via RS232 to a host PC for analysis. I plan on using a spare port on the HA PC and a Visual Basic or C++ program to read/log/analysis the data.