More on Ademco Keyfobs

We’ve been using keyfobs with our security system for a couple weeks now, which is enough to get a good feel for how they work. First off, the reliability is a lot better since I relocated the panel’s wireless receiver about 40 feet closer to the garage door area. I have a feeling that the house’s aluminum siding was interfering with reception in the receiver’s old location.

Currently, I have the fobs programmed to arm/disarm totally independently from the garage door opener. That is, two keypresses are required when either coming or going: One to arm/disarm the system, and another to open/close the garage door. This has proven to be a little inconvenient, particularly when arming/closing/leaving. This particular process would be a lot smoother if I could get the “arm” button to shut the garage door as well as arming the system. I’ve come up with a tentative plan to accomplish that, if it works.


First things first: For this to work, the garage door needs to be set up as what Ademco calls a “vent” zone. With a vent zone, the system can be armed while the zone is faulted (i.e. the garage door is still open). Then, when the zone is restored, it is automatically armed. To set this up on my panel, I had to define a custom zone type for the garage door. See your panel docs for details.

With that out of the way, the plan is to use two dry-contact relays (these are provided by the panel as on-board triggers, as well as by zone expanders and add-on relay boards):

  1. Wire the two relays in series (connect N.O. terminal from relay #1 to C terminal on relay #2)
  2. Connect C terminal from relay #1 and N.O. terminal from relay #2 to the terminals on the garage door opener
  3. Program relay #1 to activate (close) when garage door zone is faulted and open when zone is restored
  4. Program relay #2 to close for 2 seconds when “Arm” button on keyfob is pressed
  5. Program both relays to close for 2 seconds when “Door” button on keyfob is pressed

Explanation: The garage door operation is controlled by shorting two terminals together. If you do this when the door is closed, it opens, and vice-versa. With this method, we have no idea what state the door is in. So, we can’t use a single relay and just blindly close the contacts when arming. Otherwise, if we armed when the door was already closed, it would open, which we obviously don’t want.

To get around this, we need some way to tell whether the door is open or closed. That’s where the garage door’s zone comes in. We assume that if the zone is faulted, the door is open, and if not faulted, the door is closed. So, wire two relays in series, so that when both are closed, the door triggers. Then program one to close only when the garage door is open (faulted), and the other one to close when the “Arm” button is pressed. So when arming with the fob, the door is only triggered if it’s already open. This should work reliably almost all the time; the door can occasionally get into a half-open state where the zone will be faulted but the door will open when tripped. But, this doesn’t happen all that often, and just tripping it again will close it.

For the “door” button, which triggers the door regardless of its state, we just program both relays to momentarily close. This unconditionally triggers the door. Only one potential “gotcha” here: I’m not sure what the panel will do if a relay is already activated and we send it another signal to momentarily close the relay. We need it to keep the relay activated. If it doesn’t, there’s a chance that the zone-activated relay could end up open at the wrong time, and the “Arm” button then wouldn’t close the door as expected. In this case, we’d need to add a third relay in parallel with the opener, to handle the “door” button. But I’m hoping that won’t be necessary.

What about disarming, you ask? Can we get the system to disarm automatically when the door is opened via the keyfob? Well, here’s the deal. When arming, you always want to close the garage door. However, the inverse is not always true: You might want to disarm the system without opening the garage door. So, for now, I’ve chosen to leave this as a two-step process. I may rethink it down the road.

5/18: I’ve been kinda busy to do much with this the past 2 days, but this morning I got around to doing a brief proof-of-concept, to see if the panel could activate two relays simultaneously. I currently have a keypad function key programmed to trigger the garage door opener. There are two steps necessary to set this up:

  1. Program the function key for “Device Activation” (*57)
  2. Program an output action (*80), triggered by “zone type” 66 (function key), which closes the garage door’s relay for 2 seconds when triggered.

To do my test, I just added an additional output action to turn an X10 light on/off with the same function key trigger (zone type 66). It worked — when I pressed the function key, the garage door opened and the X10 light turned on at the same time. That bodes well for this project; I should be able to do it with 2 relays and a bare minimum of wiring. Stay tuned!

5/19: Work on this continues at a glacial but steady pace. Today I identified the relay wires on the zone expander and verified that the relay is working, by programming a function key to toggle the relay and then checking the resistance between the C and N.O. wires. Wire IDs are as follows. Relay 1: C – Brown; N.O. – Yellow. Relay 2: C – Violet; N.O. – White. To wire in series: Splice yellow to violet, and connect brown and white to garage door opener terminals.

5/21: Wired the relays up in series this morning, and everything seems to work fine. Assuming there are no problems, the only thing left to do is solder the splices and clean up all my wiring. Then it’s done!

For programming… since I have a lot of keyfob zones that need to trip various garage door relays, I decided to create two zone lists (*81) for zones that trip relay #1 and #2, respectively. That saves me from defining identical output functions for each individual button zone. It seems to work well that way.

Alarm Pool

Saturday’s Hijinks

Another fun Saturday around the house…

First up: The security system. I finally got around to relocating the wireless receiver to try to get better performance out of our new keyfobs. At the same time, I installed the status transmitter module so the keyfobs can receive status information. So far, things look good. the status transmitter seems to work fine, and there seem to be no issues with the window transmitter in the master bathroom. I had some concerns that this one would have problems because of the distance from the receiver. But, it works fine. Next up.. we’ll see how things work like this for a week or so, and if everything looks good, I’ll clean up the wiring, reattach the sirens, replace the battery and stick a fork in this one.

Next up: The pool. With t-minus one week until we uncover it, I decided I should take a look at it. I’ve had other stuff keeping me busy, so I’ve kinda neglected it for the past month or so. As I feared, it’s a nice green swamp. Anyways, to get a start on cleaning it up, I started the pump and siphoned in 5 gallons of 12% hypochlorite. We’ll see how it looks tomorrow.


This year, rather than adding chlorine through the skimmer, I think I’ll pour (or siphon) it into the shallow end in front of a return jet. That should disperse it pretty efficiently, and it should also be easier on the pump and filter. Siphoning is a little slower than pouring the stuff in directly, but it avoids splashing, which is a big plus.

The fun never ends..

Followup 5/15.. the 5 gallons of chlorine cleared it right up and left a chlorine residual, but the pH is high now (8.2). Dunno what the alkalinity is, but I’m sure it’s low. Not sure which I should adjust first.


Alarm Oddity

So, I’ve got the wireless keys programmed into the alarm. Everything seems to work. The only “wild card” here is the range of the things, because the receiver is mounted a little farther away from the garage than I’d like. If the range turns out to be a problem, I’d expect all of the buttons on the keys to work inconsistently. What I’m seeing in practice, is that the garage door button works consistently, but the disarm button is spotty. I get the same behavior with both keys.

I don’t really have an explanation for this, so the first thing I’m going to try is moving the receiver closer to the garage. I’ll mount it in the new spot temporarily, and see how it works (in particular, it needs to still work with my existing wireless zones). The other thing is, I still haven’t installed the status transmitter module. It doesn’t seem like that should have anything to do with it, but I’ll go ahead and install it at the same time, and see how things go.

Stay tuned..

Followup.. turns out the spotty behavior did affect the garage door button after all, so most likely, this was simply an issue of the signals not getting to the receiver. My hypothesis is that the house’s aluminium siding was interfering with signal propagation. The fobs seem much more reliable now that I’ve relocated the receiver.


Wireless Alarm Keys Demystified

I successfully programmed an Ademco wireless keyfob transmitter today, and figured I’d document the process.. My panel is a Vista-20P and the transmitter is a 5804BD.

  1. Program an RF house ID into the panel. The house ID needs to be a number between 0 and 31. On the Vista-20P, this is done in location *24:

    Enter programming with 4-digit installer code + 800
    Enter *24
    Enter 2-digit house ID
    System chimes to confirm entry

  2. Install batteries in the transmitter. When prying the case open, hold the transmitter with the buttons facing down; otherwise they’ll all fall out when you pull the case apart.
  3. Program the house ID into the transmitter per the instructions. It must match the house ID programmed into the panel.
  4. Program each button individually using zone programming (*56). On the Vista-20P, zones 49 through 64 are reserved for keyfob zones. The following example will program button 4 to disarm the system:

    Enter *56 to enter zone programming
    Enter 1 at Set to Confirm? prompt
    Enter 49 to program zone 49 (or whatever)
    Enter * at summary screen
    At zone type prompt, enter 22 (disarm)
    Enter 1 at partition prompt
    Enter 0000 at report code prompt (no report)
    Input Device type will default to “Button type RF”
    Enter the device serial number at the prompt
    Enter 4 as the loop number (corresponds to button 4)
    Press button 4 on the keyfob at “Xmit to Confirm” prompt
    System confirms that the correct serial number was transmitted
    Review summary screen and press *
    Press 0 at “Program Alpha?” prompt

    Now, exit programming and assign a user number to this button: Enter master code + 8 + user number + #4 + zone number. For user 04 and zone 49, you would enter

    master code + 8 + 04 + # 4 + 49

    Keypad will chime to confirm.

    That’s it; button 4 on the keyfob should now work to disarm the system. The process should be repeated for each button on the fob (each button corresponds to a separate loop number).

Next step is to hook one of the buttons up to the garage door opener. It appears that I need to program the button as zone type 23 (no alarm response), then go into device programming and define an output function to activate the appropriate relay when the zone trips.

This weekend I’ll install the 5800TM transmitter so that the fobs will be able to display system status. I’ll also test the range to see if I’ll need a repeater. Hopefully I won’t.

Followup 4/22… I’ve programmed both keyfobs and everything worked as expected. I’m pretty impressed with the range of these things.. it seems to be pretty close to the advertised 200 feet. It’s looking like I won’t be needing a signal repeater. Haven’t gotten to the 5800TM yet, and may not this weekend, but the fobs don’t need it to work. I’ll use this week to test them out, and assuming they continue to work well, I’ll put the 5800TM in next weekend.


Upgrading the security system

Four years ago, I installed a full-perimeter hardwired security system in our house. This probably ranks as the single largest DIY project I’ve ever undertaken. All told, it took me about four months, working alone, and splitting the time with my day job as well as household chores and other projects. Would I do it again? Actually, now that I have kids, I’m not even sure if I could do it again. It ate up almost all my spare time even without kids. I think my wife was about ready to divorce me. But, in the end, we have a great, professional grade, monitored system, and I have full control over it to make changes, upgrades, etc., which brings us to the actual topic of this entry. I’d like to add a few zones (for a very basic intro to alarm system terminology, see this FAQ) to the system, but I’m running out of expansion room. Because of the layout of our house, I laid the system out in sort of a star topology; the panel is near one end of the house, and I have a “zone expander” installed near the other end. Each zone is terminated at either the panel or the zone expander, depending on which is closest. The zones I’d like to add are near the zone expander, but the expander (which provides 8 zones) is full. Matter of fact, it’s overloaded — in a couple spots, I’m doubling up devices which really should be on separate zones, becuase of the lack of space. Not only that, I’m up against the maximum auxiliary power load that my panel supports. If I add any more powered devices (motion detectors, glass break detectors, sirens, etc.), the panel will be overloaded in that department too.

So, before I do anything, I’m going to need to upgrade the system to allow for the additional zones and power draw. Here’s the current plan:

  1. Install an additional zone expander and mount it near the current one, to provide 8 additional zones.
  2. Install an auxiliary power supply and battery to handle additional powered devices.

I’m hoping I can fit all of this gear into a single metal enclosure. If necessary, I can move the existing zone expander, which will requre splicing several wires, but shouldn’t be the end of the world. The shopping list then becomes: metal enclosure, zone expander, power supply, battery, and extra wire, for a total price tag of around $250. Of course, these days, the real cost includes finding time to do this, as there are a lot more demands for my spare time these days. I’m thinking this project probably won’t get off the ground until close to the end of 2006. But we’ll see.