neilenns / node-deepstackai-trigger

Detects motion using Deepstack AI and calls registered triggers based on trigger rules.
MIT License
167 stars 28 forks source link
deepstack home-automation home-automation-system homeassistant mqtt mqtt-client mqtt-smarthome surveillance

DeepStack AI Triggers

Open in Visual Studio Code

This system uses Docker containers to run DeepStack AI and process images from a watch folder, then fires a set of registered triggers to make web request calls, send MQTT events, and send Telegram messages when specified objects are detected in the images.

This project was heavily inspired by GentlePumpkin's post on ipcamtalk.com that triggers BlueIris video survelliance using DeepStack as the motion sensing system.

Quick start - basic web requests

The following five steps are all that's required to start using AI to analyze images and then call a web URL, e.g. triggering a BlueIris camera to record.

  1. Install Docker
  2. Copy the docker-compose.yml, settings.json and triggers.json files from the sampleConfiguration directory locally.
  3. Edit the docker-compose.yml file to modify the mount point for source images and set the timezone.
  4. Edit triggers.json to define the triggers you want to use.
  5. Run docker-compose up from within the folder that contains your docker-compose.yml file to start the system running.

Setting the timezone via the TZ environment variable in docker-compose.yml is important for every thing to work smoothly. By default Docker containers are in UTC and that messes up logic to skip existing images on restart. A list of valid timezones is available on Wikipedia. Use any value from the TZ database name column.

Editing the .json files in Visual Studio Code or some other editor that understands JSON schemas is recommended: you'll get full auto-complete and documentation as you type.

Having trouble? Check the logs output from Docker for any errors the system may throw. The troubleshooting page has tips for resolving common deployment problems.

Quick start - enabling MQTT, Pushbullet, Pushover and Telegram

To enable the different push notifications handlers:

  1. Edit settings.json to specify specify the connection information for the service.
  2. Edit triggers.json to add mqtt, Pushbullet, Pushover, or Telegram handlers.

Learning more

The project wiki has complete documentation on:

Supported Docker image tags

The following tags are available in the repository:

Tag name Description
latest The latest released build.
<version> The specific released version, e.g. v1.5.0.