-
-
Notifications
You must be signed in to change notification settings - Fork 28
Configuration
General settings for the system as well as configuration options for outbound services are managed in the settings.json
file.
An annotated sample file to start from is available in the sampleConfiguration directory for the project.
The following settings are available for general system configuration:
Property | Description | Example |
---|---|---|
awaitWriteFinish |
Optional. Waits for writes to finish before analyzing images. This is useful if the images live on a network drive that's mounted to Docker, but comes with a performance penalty. Disabled by default. | true |
deepstackUri |
Required. The address of the Deepstack AI server. | http://deepstack-ai:5000/ |
enableAnnotations |
Turns on writing annotated images to local storage for use in outbound messages. Automatically enables the internal web server as well. Optional. Default false . |
true |
enableWebServer |
Turns on the internal web server, bound to port 4242 by default. This is necessary if you want to use the REST API to activate triggers. |
true |
mqtt |
Configuration for sending MQTT messages. Optional. | See below. |
port |
The port number for the internal web server. Only used when enableAnnotations is true . optional. Default 4242 . |
5004 |
purgeAge |
The length of time, in minutes, an image in temporary storage must go without being accessed before being purged. Optional. Default 60 . |
120 |
purgeInterval |
Controls how long the system waits between purges of temporary image storage, in minutes. Optional. Set to 0 to disable auto-purge. Default 30 . |
10 |
verbose |
Controls the level of output logging. If false or omitted then only startup messages, warnings, errors, and successful AI detection are logged. Optional. Default false . |
true |
pushbullet |
Configuration for sending Pushbullet messages. Optional. | See below. |
pushover |
Configuration for sending Pushover messages. Optional. | See below. |
telegram |
Configuration for sending Telegram bot messages. Optional. | See below. |
MQTT is enabled by adding an mqtt
property to settings.json
. The following options are supported:
Property | Description | Example |
---|---|---|
enabled |
If true then MQTT is enabled. Optional. Default true . |
false |
password |
The password to log into the server with. Optional. | "pass" |
rejectUnauthorized |
Controls whether connections to mqtts:// servers should allow self-signed certificates. Set to false if your MQTT certificates are self-signed and are getting connection errors. Optional. Default true . |
false |
retain |
If true all MQTT messages are sent with the retain flag on. Optional. Default false . |
true |
username |
The username to log into the server with. Optional. | "user" |
uri |
Required. The address of the MQTT server. | "mqtt://192.168.1.100:1883" |
The only authentication method currently supported is basic.
When MQTT is enabled status messages are automatically sent to the node-deepstackai-trigger/status
topic
that report the health of the server. These messages are useful in conjunction with MQTT binary sensors in Home Assistant
to monitor whether the server is running and send notifications to people if it goes down for some reason.
Additionally statistics for each trigger are published to the node-deepstackai-trigger/statistics
topics.
Triggers can also be activated via MQTT messages with the node-deepstackai-trigger/motion
topic and a JSON body with name
set to the name of the trigger. When activated this way the trigger will attempt to download an image to analyze from the snapshotUri
specified on the trigger.
"mqtt" : {
"uri": "mqtt://192.168.1.100:1883",
"username": "user",
"password": "pass",
"retain": true
}
{
"state": "online"
}
{
"analyzedFilesCount": 60
"formattedStatistics": "Triggered count: 5 Analyzed count: 60",
"state": "online",
"triggeredCount": 5
}
triggeredCount
is the total number of times a trigger met all the defined requirements and fired its registered handlers. analyzedFilesCount
is the total number of times a trigger evaluated an image. Note: if multiple triggers are registered for the same watchPattern
then each trigger will increment the analyzed file count.
{
"state": "offline",
"details": "error details included here"
}
{
"state": "offline"
}
{
"analyzedFilesCount": 10,
"formattedStatistics": "Triggered count: 2 Analyzed count: 10",
"name": "FrontDoorSD",
"triggeredCount": 2,
}
### Sample message payload for a `node-deepstackai-trigger/motion` message
```javascript
{
"name": "FrontDoorSD"
}
Telegram is enabled by adding a telegram
property to settings.json
. The following options are supported:
Property | Description | Example |
---|---|---|
botToken |
Required. The bot token for your Telegram bot server. | "123987123:adfk2893r7akdskanfsdalskf" |
enabled |
If true then Telegram is enabled. Optional. Default true . |
false |
Obtaining the botToken
and chatIds
for the trigger configuration is not hard but does take a few
steps. Here's what you need to do:
- Contact
BotFather
on Telegram - Send the
/newbot
command. Follow the instructions and you'll get back a token that looks something like the one in the example above. - Connect to the bot in your Telegram personal account and send it a message
- Go to
https://api.telegram.org/bot123987123:adfk2893r7akdskanfsdalskf/getUpdates
, after replacing the token in the URL with the one you obtained in step 2. - In the response look for the
id
field to obtain the chatId. In the below sample response the chatId is12345
.
{"ok":true,"result":[{"update_id":297596982,
"message":{"message_id":2,"from":{"id":12345,"is_bot":false,"first_name":"Neil","last_name":"Enns","language_code":"en"},"chat":{"id":12345,"first_name":"Neil","last_name":"Enns","type":"private"},"date":1590551469,"text":"hi"}}]}
"telegram" : {
"botToken": "123987123:adfk2893r7akdskanfsdalskf",
}
Pushbullet is enabled by adding a pushbullet
property to settings.json
. The following options are supported:
Property | Description | Example |
---|---|---|
accessToken |
Required. The access token for your Pushbullet account. | "o.asdfxknsdl234sdn" |
The accessToken is obtained from your Pushbullet account settings page.
"pushbullet" : {
"accessToken": "o.asdfxknsdl234sdn",
}
Pushover is enabled by adding a pushover
property to settings.json
. The following options are supported:
Property | Description | Example |
---|---|---|
apiKey |
Required. The apiKey token for your Pushover app. | "asdflj234xvnmwekl234" |
enabled |
If true then Pushover is enabled. Optional. Default true . |
false |
userKey |
Required. The userKey token for your Pushover account. | "4dkgj34sdfn430234" |
The apiKey is created at the Pushover apps page.
"pushover" : {
"apiKey": "asdflj234xvnmwekl234",
"userKey": "4dkgj34sdfn430234"
}