Add Webhook and Command to No Motion Detector
parent
a4a652a9f9
commit
ed76347b25
|
@ -2743,7 +2743,105 @@ module.exports = function(s,config,lang){
|
|||
"default": "10",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detail=detector_notrigger_webhook",
|
||||
"field": "Webhook",
|
||||
"description": "Send a GET request to a URL with some values from the event.",
|
||||
"default": "0",
|
||||
"example": "",
|
||||
"selector": "h_det_web_notrig",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
hidden: true,
|
||||
"name": "detail=detector_notrigger_webhook_url",
|
||||
"field": lang['Webhook URL'],
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "http://111.111.111.111?mid={{MONITOR_ID}}&group={{GROUP_KEY}}&confidence={{CONFIDENCE}}",
|
||||
"form-group-class": "h_det_web_notrig_input h_det_web_notrig_1",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"name": "detail=detector_notrigger_webhook_method",
|
||||
"field": lang['Call Method'],
|
||||
"description": "",
|
||||
"default": "GET",
|
||||
"example": "",
|
||||
"form-group-class": "h_det_web_notrig_input h_det_web_notrig_1",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": `GET (${lang.Default})`,
|
||||
"value": "GET"
|
||||
},
|
||||
{
|
||||
"name": "PUT",
|
||||
"value": "PUT"
|
||||
},
|
||||
{
|
||||
"name": "POST",
|
||||
"value": "POST"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "detail=detector_notrigger_command_timeout",
|
||||
"field": lang['Allow Next Webhook'],
|
||||
"description": "This value is a timer to allow the next running of your webhook. This value is in minutes.",
|
||||
"default": "10",
|
||||
"example": "",
|
||||
"form-group-class": "h_det_web_notrig_input h_det_web_notrig_1",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"name": "detail=detector_notrigger_command_enable",
|
||||
"field": lang['Command on Trigger'],
|
||||
"description": "",
|
||||
"default": "0",
|
||||
"example": "",
|
||||
"selector": "h_det_com_notrig",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "detail=detector_notrigger_command",
|
||||
"field": lang['Command'],
|
||||
"description": "The command that will run. This is the equivalent of running a shell command from terminal.",
|
||||
"default": "",
|
||||
"form-group-class": "h_det_com_notrig_input h_det_com_notrig_1",
|
||||
"example": "/home/script.sh {{MONITOR_ID}} {{GROUP_KEY}} {{CONFIDENCE}}",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"name": "detail=detector_notrigger_command_timeout",
|
||||
"field": lang['Allow Next Command'],
|
||||
"description": "This value is a timer to allow the next running of your script. This value is in minutes.",
|
||||
"default": "10",
|
||||
"example": "",
|
||||
"form-group-class": "h_det_com_notrig_input h_det_com_notrig_1",
|
||||
"possible": ""
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -532,8 +532,9 @@
|
|||
"Webhook URL": "Webhook URL",
|
||||
"Command on Trigger": "Command on Trigger",
|
||||
"Command": "Command",
|
||||
"Allow Next Command": "Allow Next Command <small>in Minutes</small>",
|
||||
"Allow Next Trigger": "Allow Next Trigger <small>in Milliseconds</small>",
|
||||
"Allow Next Webhook": "Allow Next Webhook",
|
||||
"Allow Next Command": "Allow Next Command",
|
||||
"Allow Next Trigger": "Allow Next Trigger",
|
||||
"Save Events to SQL": "Save Events to SQL",
|
||||
"Email on Trigger": "Email on Trigger <small>Emails go to the main account holder's login address.</small>",
|
||||
"Attach Video Clip": "Attach Video Clip",
|
||||
|
|
|
@ -4,7 +4,7 @@ var exec = require('child_process').exec;
|
|||
var spawn = require('child_process').spawn;
|
||||
var request = require('request');
|
||||
module.exports = function(s,config,lang){
|
||||
var addEventDetailsToString = function(eventData,string,addOps){
|
||||
s.addEventDetailsToString = function(eventData,string,addOps){
|
||||
//d = event data
|
||||
if(!addOps)addOps = {}
|
||||
var newString = string + ''
|
||||
|
@ -307,7 +307,7 @@ module.exports = function(s,config,lang){
|
|||
})
|
||||
|
||||
if(filter.webhook && currentConfig.detector_webhook === '1'){
|
||||
var detector_webhook_url = addEventDetailsToString(d,currentConfig.detector_webhook_url)
|
||||
var detector_webhook_url = s.addEventDetailsToString(d,currentConfig.detector_webhook_url)
|
||||
var webhookMethod = currentConfig.detector_webhook_method
|
||||
if(!webhookMethod || webhookMethod === '')webhookMethod = 'GET'
|
||||
request(detector_webhook_url,{method: webhookMethod,encoding:null},function(err,data){
|
||||
|
@ -319,7 +319,7 @@ module.exports = function(s,config,lang){
|
|||
|
||||
if(filter.command && currentConfig.detector_command_enable === '1' && !s.group[d.ke].activeMonitors[d.id].detector_command){
|
||||
s.group[d.ke].activeMonitors[d.id].detector_command = s.createTimeout('detector_command',s.group[d.ke].activeMonitors[d.id],currentConfig.detector_command_timeout,10)
|
||||
var detector_command = addEventDetailsToString(d,currentConfig.detector_command)
|
||||
var detector_command = s.addEventDetailsToString(d,currentConfig.detector_command)
|
||||
if(detector_command === '')return
|
||||
exec(detector_command,{detached: true},function(err){
|
||||
if(err)s.debugLog(err)
|
||||
|
|
|
@ -1219,8 +1219,28 @@ module.exports = function(s,config,lang){
|
|||
s.setNoEventsDetector = function(e){
|
||||
var monitorId = e.id || e.mid
|
||||
var detector_notrigger_timeout = (parseFloat(e.details.detector_notrigger_timeout) || 10) * 1000 * 60
|
||||
var currentConfig = s.group[e.ke].rawMonitorConfigurations[monitorId].details
|
||||
clearInterval(s.group[e.ke].activeMonitors[monitorId].detector_notrigger_timeout)
|
||||
s.group[e.ke].activeMonitors[monitorId].detector_notrigger_timeout = setInterval(function(){
|
||||
if(currentConfig.detector_notrigger_webhook === '1' && !s.group[e.ke].activeMonitors[monitorId].detector_notrigger_webhook){
|
||||
s.group[e.ke].activeMonitors[monitorId].detector_notrigger_webhook = s.createTimeout('detector_notrigger_webhook',s.group[e.ke].activeMonitors[monitorId],currentConfig.detector_notrigger_webhook_timeout,10)
|
||||
var detector_notrigger_webhook_url = s.addEventDetailsToString(e,currentConfig.detector_notrigger_webhook_url)
|
||||
var webhookMethod = currentConfig.detector_notrigger_webhook_method
|
||||
if(!webhookMethod || webhookMethod === '')webhookMethod = 'GET'
|
||||
request(detector_notrigger_webhook_url,{method: webhookMethod,encoding:null},function(err,data){
|
||||
if(err){
|
||||
s.userLog(d,{type:lang["Event Webhook Error"],msg:{error:err,data:data}})
|
||||
}
|
||||
})
|
||||
}
|
||||
if(currentConfig.detector_notrigger_command_enable === '1' && !s.group[e.ke].activeMonitors[monitorId].detector_notrigger_command){
|
||||
s.group[e.ke].activeMonitors[monitorId].detector_notrigger_command = s.createTimeout('detector_notrigger_command',s.group[e.ke].activeMonitors[monitorId],currentConfig.detector_notrigger_command_timeout,10)
|
||||
var detector_notrigger_command = s.addEventDetailsToString(e,currentConfig.detector_notrigger_command)
|
||||
if(detector_notrigger_command === '')return
|
||||
exec(detector_notrigger_command,{detached: true},function(err){
|
||||
if(err)s.debugLog(err)
|
||||
})
|
||||
}
|
||||
s.onDetectorNoTriggerTimeoutExtensions.forEach(function(extender){
|
||||
extender(e)
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue