How to pull August Doorbell Cam motion events into HomeKit

Jon Gardner
CERTIFIED EXPERT
Published:
Edited by: Andrew Leniart
There is a way to use the August Doorbell Cam to generate motion-detect events in HomeKit.

The August doorbell cameras are really slick, but they don’t support HomeKit at all, and their API is not made public. The August app alerts you when motion is detected or the doorbell is rung, and there are some integrations with Google and Amazon, but there’s no HomeKit integration at all. It’s a bit pathetic, really.


Doorbell-button events can be obtained (from the wired versions of August doorbell cams, at least) by using the doorbell wiring to trigger an input on something like a Sonoff SV with RavenSystem/esp-homekit-devices firmware, or a Raspberry Pi, but video motion events require a software solution. Thankfully, August saw fit to enable a basic RTSP video stream from their doorbell cameras. We can monitor that video stream, at a very low frame rate to keep network traffic to a minimum, detect motion using a lightweight video monitoring application, and send motion events to homebridge via MQTT. This method will actually work with any RTSP stream, but this specific setup is for the August Doorbell Cam.


This is not for the faint of heart. It requires the ability to use command-line UNIX tools, navigate the filesystem, edit configuration files, and more. It is neither point-and-click nor plug-and-play. If that doesn’t deter you, then carry on.


If you haven’t already, get set up with Homebridge, preferably on a dedicated Raspberry Pi. Install the homebridge-camera-ffmpeg plugin and get your August Doorbell Cam configured and working there. As part of this setup, you’ll want to be sure to assign a dedicated IP address to the doorbell with your local DHCP server (probably your Internet router). The rest of these instructions assume you're using Raspbian (on a Raspberry Pi); if that's not the case, you'll have to translate them into your OS of choice.


Make sure the homebridge-camera-ffmpeg configuration for the doorbell cam looks something like the following, inserting your doorbell cam's actual serial number, IP address, etc. in their respective spots:

    {
        "name": "DoorbellCam",
        "manufacturer": "August Home",
        "model": "Doorbell Cam Pro",
        "serialNumber": “ABCD12345",
        "motion": true,
        "motionTimeout": 15,
        "videoConfig": {
            "source": "-i rtsp://admin:admin@192.168.0.10/live/stream",
            "stillImageSource": "-i rtsp://admin:admin@192.168.0.10/live/stream -vframes 1 -r 1",
            "maxStreams": 2,
            "maxWidth": 480,
            "maxHeight": 640,
            "maxFPS": 10,
            "audio": true,
            "debug": false
        }
    },


You’ll also need an MQTT broker & client:

# sudo apt-get install mosquitto mosquitto-clients


Edit /etc/mosquitto/mosquitto.conf and set “allow_anonymous true” unless you want to force authentication, in which case you’ll have to dig up that configuration magic yourself. Add your MQTT config to homebridge-camera-ffmpeg per instructions here.


The lightweight video stream monitoring app is called “Motion”:

# sudo apt-get install motion


Edit /etc/motion/motion.conf. Find these parameters and set them accordingly, inserting your doorbell cam’s IP in the netcam_url string (everything else should be fine at defaults):

width 480
height 640
netcam_url rtsp://192.168.0.10/live/stream
netcam_userpass admin:admin
netcam_keepalive on
stream_localhost off
on_motion_detected /etc/motion/motion_detected.sh


This is a very basic no-frills configuration that will monitor your doorbell cam video at 2 fps and run the “motion_detected.sh” shell script when the motion daemon detects motion. For more information on motion and its configuration, visit https://motion-project.github.io.


To enable motion as a system service (taken from here):


Edit /etc/default/motion and set “start_motion_daemon=yes”


# sudo systemctl enable motion


Now we need to set up the script that Motion will use to trigger camera motion events from the command line. There are multiple ways to do this; the method I chose requires a simple Python module, paho-mqtt:

# sudo pip3 install paho-mqtt


Edit /etc/motion/motion_detected.sh and set its contents to the script below, with the following changes:


1. Set “your-mqtt-topic” to the MQTT Topic value in your homebridge-camera-ffmpeg configuration.
2. Set “DoorbellCam” to the “name” value of your doorbell cam in the homebridge-camera-ffmpeg configuration.


#!/usr/bin/env python3
import paho.mqtt.client as mqtt
# This is the Publisher
client = mqtt.Client()
client.connect("localhost",1883,60)
client.publish(“your-mqtt-topic/motion", “DoorbellCam");
client.disconnect();


Set permissions on the file:

# sudo chmod 755 /etc/motion/motion_detected.sh


You can execute the file directly and make sure it triggers a motion event in HomeKit:

# sudo /etc/motion/motion_detected.sh


Reboot your RPi, and you should start automatically receiving doorbell camera motion events in HomeKit.

0
231 Views
Jon Gardner
CERTIFIED EXPERT

Comments (0)

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.

Get access with a 7-day free trial.
You Belong in the World's Smartest IT Community