Если все сделано правильно, в основном окне настроек появятся найденые камеры и через несколько секунд должны будут подтянуться снапшоты
Драйвер автоматически подписывается на события к настроенным камерам. События, которые генерирует камера, появятся в объектах вида:
onvif.0.122_116_220_230_2033.message.ruleengine.cellmotiondetector.motion.IsMotion
onvif.0.122_116_220_230_2033.message.ruleengine.tamperdetector.tamper.IsTamper
Для этого используется команда:
sendTo('onvif.0', command, message, callback);
Пример скрипта для запроса снапшота и отправка в телеграм:
const fs = require('fs');
function getSnapshot(caption){
sendTo('onvif.0', 'saveFileSnapshot', {"id":"192_168_1_4_80", "file":"/opt/cameras/snapshot.jpg"}, (data) => {
console.log('image принят: ' + data);
if (data === "OK")
sendTo('telegram.0', {text: '/opt/cameras/snapshot.jpg', caption: caption});
});
}
caption - заголовок для картинки в телеграме. Вызывать можно как по событию, так и по кнопке/рассписанию.
Вариант загрузки в промежуточный Buffer в место файла:
function getSnapshot(){
sendTo('onvif.0', 'getSnapshot', {"id":"192_168_1_4_80"}, (result) => {
if (result.err) log(result);
if (result.img){
log('image принят: ' + typeof result.img);
sendTo('telegram.0', {
user: 'user',
text: result.img.rawImage,
type: 'photo',
caption: 'Camera 1'
});
}
});
}
Чтобы отключить подписку на события от камеры, необходимо выставить состояние subscribeEvents = false
и перезапустить адаптер.
При изменении в панели администратора, перезугрузка адаптера выполняется автоматически.
События имеют тип "Объект", например:
{
'Value': false,
'UtcTime': '2020-04-26T17:35:34.000Z'
}
Value
- значение/состояние,
UtcTime
- время изменения значения/состояния
Т.к. адаптер работает по подписке на события, то время состояния state.ts
может не совпадать с реальным временем события в камере.
If everything is made correctly, then the found cameras will appear in a primary window of settings and in several seconds snapshots will have to be tightened.
The driver automatically subscribes to events for the configured cameras. The events generated by the camera will be displayed in the following objects:
onvif.0.122_116_220_230_2033.message.ruleengine.cellmotiondetector.motion.IsMotion
onvif.0.122_116_220_230_2033.message.ruleengine.tamperdetector.tamper.IsTamper
To do this, use the command:
sendTo('onvif.0', command, message, callback);
Example of a script for request of the snapshot and sending to Telegram:
const fs = require('fs');
function getSnapshot(caption){
sendTo('onvif.0', 'saveFileSnapshot', {"id":"192_168_1_4_80", "file":"/opt/cameras/snapshot.jpg"}, (data) => {
console.log('image received: ' + data);
if (data === "OK")
sendTo('telegram.0', {text: '/opt/cameras/snapshot.jpg', caption: caption});
});
}
caption - is heading for the picture in Telegram It is possible to cause both on an event, and according to the button/schedule.
The option of loading into an intermediate Buffer in the file location:
function getSnapshot(){
sendTo('onvif.0', 'getSnapshot', {"id":"192_168_1_4_80"}, (result) => {
if (result.err) log(result);
if (result.img){
log('image received: ' + typeof result.img);
sendTo('telegram.0', {
user: 'user',
text: result.img.rawImage,
type: 'photo',
caption: 'Camera 1'
});
}
});
}
To disconnect the subscription to events from the camera, you need to set the status subscribeEvents = false
and restart the adapter.
When changing in the admin panel, the adapter is restarted automatically.
Events are of type "Object", for example:
{
'Value': false,
'UtcTime': '2020-04-26T17:35:34.000Z'
}
Value
- value/state,
UtcTime
- state change time
because the adapter works by subscribing to events, the state time of state.ts
may not coincide with the real time of the event in the camera.
The MIT License (MIT)
Copyright (c) 2018-2020 Haba1234 b_roman@inbox.ru