Home 9000 - the ULTIMATE Doorbell




About: With 21 Featured Instructables, and Over 1 Million Views, I think I am doing pretty good here, with my wacky ideas!

I just purchased a house in Las Vegas, and, being a long time tinkerer (and instructable maker / sharer), I decided that before I move in, and as long as I have the opportunity to break open walls and run any wire I wanted, I would geek out this house in a big way.

Of course that meant running network connections to all my rooms, as well as to the pool and the garage. I also wired my house for home automation and security.  But being that I live in two houses for the present (one in NYC and one in Las Vegas) until I make the move to Vegas officially towards the end of the year, I needed a way to "live" in the house, or better "occupy" the house virtually, while still working and living in NYC.

This is the result of that idea.

Check out the video on the next page!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1:

Step 2: Home 9000 - the Video

This is a demonstration video of the unit working. I took some artistic license in its production.

Here is a link to a video that inspired my basic concept, however, this is vaporware.


Step 3: Creating the 'Monster'

Why I needed this:

Largely for security purposes, I needed a way to be able to answer my doorbell, no matter where I am (no, I am not that lazy. Well, yes I am ...) from anywhere in the world, but give the illusion that I am actually present in the house.

[Sound clip from Ferris Buller's day off]

I decided that Ferris Bueller had the right idea, but I wanted to take that ingenuity a step farther. I needed a way to talk to the person ringing the doorbell, as well as supplying a canned message that I was not there right now and leave a message (In burglar talk that means "Go ahead break in!").  I considered that as long as I am conversing, I would like to see the person as well. This brought me to the idea of using my iPhone and Apple's Facetime.

Step 4: The Conception

Since I would be using FaceTime to do video chat (technically a one-way video chat; I am not providing video to the person at my front door), I first needed to get some hardware and set it up on my front door.

I needed a USB Camera that was USB CLASS (driverless) compatible with the Macintosh O/S (Snow Leopard) and FaceTime.

I needed a microphone and speaker that was waterproof and vandal proof, something that was also unobtrusive and did not stick out like a sore thumb advertising itself. I did not want the person at the door to realize that I am in a remote location which would defeat the whole purpose of my endeavor. I want them to think I am otherwise occupied inside the house and just unavailable ... and lazy. :)

I also wanted a camera that would mount in the peephole of the door and not look out of place. You hardware hackers out there can just take apart a regular peephole and mount a camera inside. I would have done this myself but my skillset is just not up to par, so I cheated and just bought a camera.

Step 5: The Camera, Microphone and Speaker

Presenting The  Agent V5. It is a full HD camera with dimensions of 79mm long x 30mm in diameter.
The circumference of the lens is 2cm. For you non geeks (all three of you) that's 3 1/2" long by just a little bit less than 1 3/16 in. wide.

I used a car mic for the microphone and a waterproof speaker mounted above the door. Note: the camera has its own microphone, but it is set back a few inches, and I did not want to tear the mic out to extend it.

I also used a Telex Audio to USB converter (GriffenTech makes one as well). This way I can take all my video and audio via USB back to the Mac Mini computer in my server room, funneling it away from the front door.

Oh another great product USB Extender over CAT5E or CAT6 Connection up to 150ft:

I may upgrade to this, if the video is choppy:

Step 6: Installing It in the Door

To make this work, I needed to hide the fact that there is a camera and a microphone built into the door, so I drilled a 1" hole in the door, and stopped 1/4" from the front, knocking out the piece. Then, using a sander dremel tool, I flattened the wood so there was still just the peephole size opening on the outside. Using the old peephole with the lens removed, I added a glass protective lens and then embedded the camera behind it, leaving just this appearance (see photo) in front.

I routed the cable thru the door and will post pictures of the finished product some time in the future.

Step 7: The Sequence

If I don't answer the phone, an email with a snapshot of who rang my doorbell is sent to me as well, and a 5 minute video is made of the front doorbell and stored on the hard drive of the local computer. The file name is time-stamped as well.

Note: I can log in to the computer and watch remotely if needed.

Below is the sequence of events (also shown in the video)

Step 8: The Software (Applescript) & More

I set up a separate Apple account with a unique name (account) for the doorbell to be used exclusively for FaceTime calls. I also added in the following command in Apple's Terminal application so my FaceTime would answer a specific caller ID phone number.

To allow a single mobile, open terminal and type:
defaults write com.apple.FaceTime AutoAcceptInvitesFrom -array-add +15205551212
(where the number on the end is your iPhone) It will activate facetime, even if its not open.


-- Starts Facetime Session
open location "facetime://15205551212"
delay 5
-- simulate pressing the Enter key
tell application "System Events"
keystroke return
-- Check to see if Facetime is active
tell application "System Events" to set theCount to the count of (processes whose name is "Facetime")
if theCount = 0 then
do shell script "sleep 1"
tell application "FaceTime" to activate
-- starts automator script to take picture and email it
tell application "Take Picture and E-mail" to launch
tell application "Take Picture and E-mail" to activate

delay 5
-- Starts Video capture
tell application "QuickTime Player 7"
new movie recording
start first recording
do shell script "sleep 10"

set status to true

repeat until status = false
-- sets how long facetime will ring your phone (30 secs)
delay 45 -- if call is active wait 60 seconds before rechecking
--3600 is 1 hour, 1800 =1/2 hour, 60 =1 min, 300 =5 mins
--add 300 (5 mins) ahead/behind starting

-- Check to see if call is still active

tell application "FaceTime" to activate
tell application "System Events" to tell process "FaceTime"
if name of front window contains "not available" then
do shell script "sleep 1"
set status to false


-- Check to see if call is still active

tell application "FaceTime" to activate
tell application "System Events" to tell process "FaceTime"
if name of front window contains "with" then
set status to true
do shell script "sleep 5"

-- Check to see if call is still active

-- Quit Facetime / video recording if call is not active
tell application "System Events" to tell process "FaceTime"
if name of front window contains "facetime" then
set status to false
tell application "FaceTime" to quit
do shell script "sleep 1"
tell application "QuickTime Player 7"
stop first recording
tell application "QuickTime Player 7"
end tell
end tell
end if
end tell
end if
end tell
end if
end tell
end repeat
end try
end tell
end if
end tell

Please note This code:

-- starts automator script to take picture and email it
tell application "Take Picture and E-mail" to launch
tell application "Take Picture and E-mail" to activate

This activates a Apple AUTOMATOR script to take a photocapture of the video feed, and email it to me
and start a video capture or the doorbell camera / audio and save it as a .mov file (poor man's DVR)

Here is a great Tutorial how to do this by TUAW's Cory Bohon

Step 9: Snow Leopard and Lion Users Take Heed

I created this instructable initially using Mac’s Leopard O/S. Apple’s successive O/S’s, Snow Leopard and Lion, have made some changes that disabled some functionality. To reactivate these you need to go into your Preferences/Universal Access and click the checkbox at the bottom of the window for ‘Enable access for assistive devices’.

Step 10: The (Hard) Hardware

Now I am a hardware kinda guy, really that is where talent lies. If you look at any of my past 'structables you see I love to tinker. However, this was my first time using a Arduino, and, like a newbie, I ordered one, plugged it in, loaded the software and fainted. Well, not exactly fainted, but felt like I’d been thrown back in time to my first foray with a soldering iron when I worried I was about to burn myself, the project I was working on, followed by incinerating my house!

THIS helped me get started.

The basic logic of the program was this:

Someone pushes the doorbell, It activates a relay that rings the doorbell and activates the Arduino.

The Arduino then:

1) Ignores all activation commands for 4 mins (in case someone rings the doorbell again)
2) Starts a Applescript command on the host Mac computer
3) Activates a second relay (for future ideas)
4) Resets after 4 mins, and goes back to stand-by

Here is the code:

int ledPin = 13; // LED connected to digital pin 13
int potPin = 0; // white doorbell wire to analog pin 0
int val = 0;

long time = 0;

long debounce = 1000;

void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin as output
Serial.begin(9600); // open serial port at 9600 baud
digitalWrite(14 + potPin, HIGH); // set pullup on the analog pin
// (analog 0 = digital 14, a1 = d15, etc)

void loop() {
val = analogRead(potPin);
if (val < 100) { // if the circuit is completed
// (for me, it generally drops from 1023 to ~ 15 when 'ringing')
if (millis()-time > debounce) {
digitalWrite(ledPin, HIGH); // sets the LED on
delay(120000); // ... 240000 = 4 mins
digitalWrite(ledPin, LOW); // and turns the LED off
time = millis();

NOTE: The Appleshare Proxy program was only accepting every third "A" from my Arduino, so I send three and the board now responds instantly without error (I am sure it's sloppy code, but HEY it works!) The 'delay' is where the board ignores all key presses, so the program does not restart if someone keeps ringing the doorbell.

Step 11: What Did It Cost?

I am sure I overspent, but, since this is a prototype, you wind up spending more.

$500   Intel Mac Mini
$100   FaceTime compatible camera
$69     Arduino Board
$50     80' USB Cable / USB to cat5e Adapter
$30     USB Hub
$30     USB Audio Converter
$10     Outdoor speaker
$  5    12V relay
  .99   FaceTime software
$  5    microphone

Aprox    $800.00

Being able to tell the UPS guy to leave the package in the garage, opening the garage door remotely, and watching him put the package in there, and then remotely closing the garage door when he leaves ....
From 2526 miles away ...


Step 12: Testing From the Cloud.. Literally!!!


Remember that second relay trigger? - well I used it to activate a remote (wireless) doorbell in the back (by the hot tub)
so I can hear the doorbell from anywhere inside or outside the house, and speaking of hot tubs..
I updated the iPad (SpaPad) to a ipad 3 - so Now I can answer the door from the HOT TUB!!

This Instructable has been reliable about 75% of the time, The mac mini version of facetime seems to be a touch buggy
and crashes, and needs a re-boot every so often. The hardware has worked almost perfectly
A year later, I am still using this, and Await for someone to take this idea and make a REAL COMMERCIAL VERSION of this from Kickstarter.

ShopBot Challenge

Participated in the
ShopBot Challenge

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    27 Discussions


    7 years ago on Introduction

    Another of those 3 non-geeks here, at least as far as this smart-phone and Arduino stuff goes. My electronics skills are from the Dark Ages and I now live low-tech by current standards, but I still love this stuff and if I had the $$ and time it would be fun to do this whether I need it or not. Hiding it in the doorbell would be a good mod for the extra "stealthy viewing" factor, but your design is brilliant just as it is.

    1 reply

    Reply 7 years ago on Introduction

    Thank you for the kind words!

    Of my 23 instructables, I feel this is my best

    I enjoy thinking outside that box, and coming up with fun things to do with the string!



    4 years ago on Introduction

    I wonder if I could make a android version of this using skype


    4 years ago on Step 8

    This is great! I was looking for a project like this and then here it is Thank you for a very interesting project. I am happy to do it myself, but I was wondering, how will I use the applescript code if I am using windows vista? Thank you in advance :D


    5 years ago on Introduction

    This is my first time on this website! You are an absolute GENIUS!!! You should really try to market your ideas. Thank you for sharing.


    6 years ago on Step 8

    Firstly - thanks for sharing this inspirational piece!

    For those wanting to adapt this for use with new versions of facetime (v2.0 for example) you'll need to modify the search for "not available" to target a different element...

    simply change from:

    if name of front window contains "not available" then


    if value of static text 2 of front window contains "not available" then

    hope this helps some of you


    6 years ago on Introduction

    good gracious, this is by far one of the awsomest things i have ever seen, what i wouldn't give to have the technological capabilities to do something like this, more to the point the money to supply the resources required xD


    6 years ago on Introduction

    How does this tie into the garage door opening? Did I miss something? Also, step 1 is blank?


    6 years ago on Introduction

    Very cool project. Though I'd say using what you know made it cost more than it needs to.
    Eliminate the Mac and Facetime and replace it with something like a RasPi, webcam, and GTalk and you've trimmed $500+ dollars off the project.
    That said you've given a great starting point for someone with a more modest budget.
    Thanks for sharing.


    6 years ago on Introduction

    Awesome hack. We put together something very similar but maybe a little more mainstream, https://secure.christiestreet.com/products/doorbot.


    6 years ago on Introduction

    Geek love at first sight! I got so excited about this that my teeth started to sweat! My imagination is now off and running.


    6 years ago on Introduction

    mister, you are A-W-E-S-O-M-E..!!


    6 years ago on Introduction


    as explained before by using this SEEU CU60G it will already do a part of what we need :

    But indeed the best tool could be this Doorbot used with the Lockitron and arduino sensor (to check if somebody knock on the door or try to enter by forcing the door :

    Last but not least by motion detection we could automatically take picture/video and also play a random mp3 file barking like a dog to simulate a presence of dangerous dog at home.


    6 years ago on Introduction


    you made a part of what I also need.
    For this reason I though to use this base model actions :

    Three point must be important for me in this intelligent doorbell :
    1) motion detection = register photo and/or video when somebody has been detected
    2) take phot and/or video when somebody bell at door
    3) simulate presence = answer from anywhere all around the world
    4) synchronise the events on a central HDD

    It could be interesting to have your solution for android, windows, linux and not only for Mac. Thanks for your understanding ;-)

    Honda Enoch

    6 years ago on Step 6

    Just an idea. if you had a decorative door knocker that had a peep hole it could be used to hide the mic.