Integrating Foscam FI9821P with SmartThings

Motivated mostly by curiosity, I was recently in the market for a cheap IP camera. After a little bit of research, I settled on a Foscam FI9821P (I got mine for ~$45 as an Amazon Warehouse Deal). The app provided by Foscam is pretty nice, but I wanted to integrate it with my home automation setup as well. In particular, I wanted to accomplish the following:

  1. Secure access. Any communication with the camera should require some secure authentication mechanism.
  2. SmartThings integration. I wanted a device in SmartThings I could play around with.
  3. REST endpoint. Although I could probably get most of what I want done with SmartThings alone, I didn’t want to be bound to it.

SmartThings has a device type for cameras, so as long as there’s some way to access the camera within SmartThings, (2) is easy. In a previous post, I outlined a setup that uses HMAC to secure communication with smart home devices. I leveraged it in this project as well.

I should mention that I stumbled across some existing attempts at this, but nothing that would’ve given (1) and (3).

I put together this route for my home automation gateway, which accomplishes (1) and (3). With it, I can capture a snapshot and control some rudimentary functionalities of the camera. I can, for example, request a snapshot of what the camera is currently seeing simply by accessing this URL (with the appropriate security headers in place):

http://HA_GATWAY_URL/camera/foscam1/snapshot.jpg

You can see that there’s baked in support for multiple cameras (since the endpoint is scoped by a camera name). While I don’t anticipate buying more cameras, I figured adding support would make this project more generally useful.

To integrate with SmartThings, I created a virtual device (code embedded below). It allows me to request an image, shift the camera to one of three preset positions, and to start/stop recording. Here’s a demo of the interface:SmartThings Interface

This project was a lot of fun, and quite a bit easier than I was anticipating. My favorite thing this has enabled is a SmartThings SmartApp that signals the camera to take a picture when my front door opens. To avoid being too creepy, this only happens when no one is home. If I can muster the motivation, I’ll probably write a separate post about that.

5 thoughts on “Integrating Foscam FI9821P with SmartThings

  1. Pingback: Triggering recording when a door is opened in SmartThings | Chris Mullins

  2. Hi,

     

    Is there a detailed instruction to install fiscal with your method in smart things? I saw also this :

    <ha_gateway_url> what this should be replaced with?

     

    Thanks

    • Hi,

      Basically, you’ll need to run a small server on your local network. The project’s README goes into how to run and configure it:

      https://github.com/sidoh/ha_gateway/blob/master/README.md

      The URL you mentioned would be your external IP. It’d need to route to the aforementioned server, so you’d have to configure your router appropriately.

      This post goes into a little more about the overall setup.

    • Hi Allan,

      Yes, that should work (assuming, of course, you have appropriate firewall/router configurations in place).

      Note that if you’ve enabled security on ha_gateway, you’ll need to provide HMAC headers in order for the request to succeed. Documentation is available in ha_gateway’s github README:

      https://github.com/sidoh/ha_gateway#security

Leave a Reply

Your email address will not be published. Required fields are marked *