Before building the new home, I had a package delivered to my front step (so the tracking information said) but I never got the package. The impact was no big deal, since the vendor I purchased from just sent a replacement, but it bothered me a lot, and I knew that if there was a small camera on the front step, I'd see either who took the package, or if it was never delivered at all.
So cameras went on the list for things I'd like in my home automation/security system. There are several ways to set up a camera system. There are all-in-one packages that include a DVR and several cameras. There are standalone cameras that you must supply your own DVR for. They can be wired conventionally or operate over the network, wired or wireless. You may want to dig into the pros/cons of each, but for me, I wanted IP cameras which connected to my network via Cat5 wiring. First of all, I didn't want a standalone DVR. I had already made the decision that my computer would be on all the time to run the automation system, so it could act as the DVR for the cameras too. This is easy to do with IP cameras. Also, IP cameras can easily be viewed remotely with a web browser on iPhone app, which was something I wanted to do. You can get IP cameras in wired and wireless versions, but the way I see it, there is no way to have a truly wireless camera. Even if it networks via WiFi, it is still going to need power. And whatever choice you make it seems there are a lot of available cameras over a wide range of features and especially prices.
The route I chose was Power over Ethernet (PoE) IP cameras. This is a network camera that not only connects to the network with Cat5, but also is powered through that same cable (although a special PoE enabled powered switch is required to connect the cameras, not just any old switch). In the post about the pre-wire, I indicated that I had the builder wire for 3 cameras. Although I intended to use PoE cameras from the start, the builder wired each location with a coax and a Cat5 run. Apparently this is their standard practice, allowing the user to use IP cameras like myself, or by repurposing the Cat5 to carry low-voltage power, you can use a coax camera.
The actual cameras I'm using are Panasonic cameras with a mic and pan/tilt feature. They are actually indoor cameras but the two outside are protected under eaves and have been running for two years with no problems yet. Functionality wise, these cameras have a lot of built-in stuff I wasn't expecting. Each one can take an SD card and store images to it. They each also have the ability to operate as their own little web server and can send emails and photos when they detect motion, etc... You log onto them with a little windows program (between the alarm, and the whole house audio setup and this, I needed a windows box just to configure things, so I bought the cheapest netbook I could find. Surprisingly handy to have a Windows machine in my all-Mac house, but not enough to make me switch over).
I'm actually using none of these built-in camera features however as I have the computer monitoring the cameras and providing these functions. The software I'm using is SecuritySpy. I was originally leaning towards EvoCam, but chose SecuritySpy because Indigo (my automation software) has a plugin for it so my camera functionality can be linked to the automation system. The cameras send video to the computer at all times. The computer can then monitor the cameras using different functionalities depending on the location of the camera and other automation settings. For instance, the camera facing the front door doesn't do anything as long as the alarm isn't armed. But when it is armed, then any motion is recorded for later viewing and a snapshot is emailed to me which I can view on my phone. This is great for seeing when packages are delivered, etc... SecuritySpy also lets you adjust the sensitivity for what is detected as 'motion', as well as mask out parts of the image from motion detection completely. This is useful for areas like my back yard which has a sidewalk running through the camera's field of view. You don't want the camera registering motion and recording every person that walks down the sidewalk.
All of the cameras are also viewable on my iPhone. Viewing the cameras remotely is not done through Indigo, SecuritySpy or any part of the automation system. Rather you just pick one of the countless IP camera apps available on the app store and configure the app to your camera's IP address. It's actually a little bit more complicated than that, since almost all home users will have their cameras behind their firewall, so you'll have to learn a bit about port forwarding and set up your router to forward the correct port to the correct cameras.
For other remote viewing (from your desk at work or something), you can view the camera feeds in a browser. Like using the iPhone app, you can just point your browser at the appropriate address. Also, SecuritySpy acts as a small web server, so you can point your web browser at it (again, port forwarding will be required) and view all of your cameras on one page. Alternately, you can add the video feeds to an Indigo control page, and view the feeds along with any controls or other information you wish to display. This is a great option to look at the whole system at once, but viewing this way results in relatively slow video updates for the cameras.