var spawn = require('child_process').spawn;
var gm = require('gm');
on({id: "linkeddevices.0.baby-room.pir"/*DD v detskoy*/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("linkeddevices.0.Security.mode").val == 'AWAY') {
setState("linkeddevices.0.Security.ALARM"/*ALARM!!!*/, true);
sendTo("telegram.0", "send", {
text: ('Тревога!!! Сработал датчик ' + 'в детской!')
});
console.log("telegram: " + ('Тревога!!! Сработал датчик ' + 'в детской!'));
}
});
on({id: "linkeddevices.0.zal.pir"/*DD v zale zwave glaz*/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("linkeddevices.0.Security.mode").val == 'AWAY') {
setState("linkeddevices.0.Security.ALARM"/*ALARM!!!*/, true);
sendTo("telegram.0", "send", {
text: ('Тревога!!! Сработал датчик ' + 'в зале!')
});
console.log("telegram: " + ('Тревога!!! Сработал датчик ' + 'в зале!'));
}
});
on({id: "linkeddevices.0.zal.LG_TV"/*DD v spal Z-WAVE*/, val: true}, function (obj) {
// on({id: "linkeddevices.0.spalnya.pir"/*DD v spal Z-WAVE*/, change: "gt"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("linkeddevices.0.Security.mode").val == 'AWAY') {
setState("linkeddevices.0.Security.ALARM"/*ALARM!!!*/, true);
sendTo("telegram.0", "send", {
text: ('Тревога!!! Сработал датчик ' + 'в спальне!')
});
console.log("telegram: " + ('Тревога!!! Сработал датчик ' + 'в спальне!'));
// пробуем вставить свой код
function getCameraVideo(url, extcmd, tmpfile, callback) {
/*
url - адрес rtsp-потока камеры
extcmd - дополнительный код в команде ffmpeg
filename - имя файла для формирования
callback - функция, вызываемая после получения видео
*/
var time = 3, // длина записи
fps = 25, // частота кадров потока
codec = 'libx264', // h264_omx для Raspberry Pi
size = '2560:1440'; // результирующий размер видео
// выполняем команду ffmpeg чтобы сделать запись с потока
var ffmpegCommand = '-y -i ' + url + extcmd + ' -t ' + time +
' -f mp4 -vcodec ' + codec +
' -pix_fmt yuv420p -s ' + size + ' -b:v 1500k -vsync vfr -an -r ' + fps + ' ' + tmpfile;
var ffmpeg = spawn('ffmpeg', (ffmpegCommand).split(' '), {});
ffmpeg.stderr.on('data', function(data){
//console.error(data.toString());
});
ffmpeg.on('close', function(code) {
callback(tmpfile);
});
}
function writeText4Video(callback) {
/*
callback - функция, вызываемая после формирования картинки
*/
var tmpfile = "/tmp/blankwithtext.png";
gm(1280, 720, "#000000") // размера картики и черный цвет фона
.transparent('#000000') // прозрачность
.stroke("#000000", 1)
.fill("#ffffff")
.font("Helvetica.ttf", 32)
//.font("/home/pi/11102.ttf", 58)
.drawText(30, 60, "Главный вход")
.stroke("#000000", 1)
.fill("#ffff00")
//.font("/home/pi/11068.ttf", 32)
.drawText(30, 100, "Температура на улице: "+getState('weatherunderground.0.current.temp_c').val)
.write(tmpfile, function (err) {
if (err) {
console.error(err);
} else {
callback(tmpfile);
}
});
}
// получение 4 сек видео с камеры
getCameraVideo('rtsp://admin:admin@192.168.1.170:554/cam/realmonitor?channel=6&subtype=1', '', '/tmp/video1.mp4', function(filename){
sendTo('telegram.0', {
text: filename,
caption: 'Главный вход',
chatId: '-186628872'
});
// пробуем вставить свой код
}
});
});
👆
@Dennis_krd посмотри на этот пример. Может тебе подойдёт