What it does
The center of my home automation system is a HomeVison controller by Custom Solutions. One of the accesories available is their Homevision-Phone/CID unit. This allows the HomeVision to detect and act on phone and caller ID events.

I wanted a way to wirelessly display that caller ID data on my Macintosh laptop as well as other computers. It turns out that there are already a number of caller ID servers and clients which are compatible with each other. Developing a compatible server for my HomeVision seemed the easiest solution.

My good friend, Steve Palm, was kind enough to port the code from one of the other caller ID solutions and modify it for use with HomeVision instead of a modem. Steve doesn't even own a HomeVision. He just did this for me and the benfit of other HomeVision user. Be sure to thank him if you find it useful.

How it works
The server listens for clients to register themselves over the network and keeps track of their IP addresses. It periodically checks the HomeVision caller ID log file to see if it has changed. If there is new caller ID information, it is sent to all of the registered clients. The clients can then pop up that information on the screen or do other creative things.

Start by downloading cidhv.exe.

Once you have it, put it in your HomeVision directory.

Make a shortcut to cidhv.exe in your \WINDOWS\Start Menu\Programs\StartUp directory so it will run each time the computer is started.

Right click on the shortcut file and select Properties. Click on the Shortcut tab. Fill in the target field with:

"C:\Program Files\HomeVision\cidhv.exe" -h CID_Log.txt -r 1

This assumes, of course, that your HomeVision directory is in the usual place. Adjust as needed.

Before you close the shortcut properties window, you may want to also set it to run minimized.

Once the server is running, you should be able to connect to it with any of the compatible client software. See the options section below for command line parameters which can be used for testing.

Detailed options
cidhv.exe has a few command line options available:

-h file, specifies the HomeVision caller ID log file.

-r n, where n is the number of seconds to wait between checking for log file changes.

-v, verbose mode which prints status information. This is good to verify clients are connecting and caller ID data is being picked up from the log.

In addition, there are a few "one shot" commands that perform an action and quit instead of acting as a server:

cidhv.exe -h CID_Log.txt –b bcfile, Immediatley sends the last line of the caller ID log file to all clients whose IP addresses are listed in bcfile. The IP addresses should be listed one per line and can end with an optional port number. For example:

cidhv.exe –h CID_Log.txt –b clients.txt

cidhv.exe –b bcfile “Field1-40chars” “Field2-30chars”, Immediatley send the data in field1 and field2 to all clients whose IP addresses are listed in bcfile. This could be used to send messages other than caller ID data to the client. For example:

cidhv.exe -b clients.txt "Hey you" "Take out the trash!"

Compatible client software
Here are links to a few software implementations that use the same protocol as cidhv.exe.

Other caller ID client/server systems (Probably not compatible. Let me know if you find out otherwise.)

  • CID - for Linux (written in Python).
  • TiVoCID - for Tivo.