The solution? Ring the doorbell at random times when no one is there, and nobody answers it, so as to counter-condition the dog - to break the association that a ringing doorbell equals excitement.
The technology? A Parallax 418 MHz RF Keychain Transmitter, Receiver, and a Basic Stamp 2.
Step 1: Design
On the schematic, the receiver is marked IC2, the Basic Stamp is marked IC3. IC1 is an LM7805 voltage regulator. BP1-3 are binding posts. P1-11 are sockets and plugs, where off-board components connect to the on-board components. S4 and S5 were going to be dipswitches, but ended up being jumpers. The idea is that if I steal the BS2 for some other project, I can close these two jumpers and connect two of the RF Receiver buttons directly to the relays.
The relays are S101N11 solid-state relays.
I built it on Perfboard, cut to fit a Radio Shack project box. I didn't have connectors or headers on-hand so I used some machine-pin sockets. They're in five groups. P2 is where the internal 9V battery plugs in, if I'm powering it from an internal 9V battery. P1+P3+P4 connects to the external power binding posts, the on-off switch, and the power-on LED. P5+P7+P10 and P6+P8+P11 connect to the switched binding posts, the indicator LEDs, and the momentary contact test switches. P9 is the Basic Stamp serial programming interface.