stellhawk писал(а): Чт сен 19, 2019 2:51 pm
протестировал модуль камшотер. начало присланного видео в телегу отстает от события в среднем на 20 секунд, что в корне не бьется с моим кон....
Ну вот, а я что говорил!
Как реализовал я у себя:

- IMG_0368.jpg (214.98 КБ) 6461 просмотр
1) Отдельный видеорегистратор с выдачей RTSP
2) ContaCam на сервере MDM
3) Тем не менее есть камеры которые НЕ заведены на регистратор (самые не ответственные), но в ContaCam заведены все
4) Для некоторых камер в ContaCam сделано создание gif после движения в кадре (в т.ч. с захватом несколько секунд до движения)
5) Некоторые камеры из ContaCam дергают метод
sensorMovement1.statusChanged (каждая со своим sensorMovement)
6) В методе в т.ч. регистрируется registerEvent и проверяется не прошло ли заданное время
т.е. проверяется наличие долгого отсутствия движения (например часа 3)
7) Если это так и уже 3 часа, до движения сейчас, движения ранее не было, то вот тогда вызывается скрипт с параметрами для отправки в телеграм, но с задержкой на 28 секунд! (вывел экспериментально для себя, с учетом времени для записи gif и т.п.)
вот его код:
Код: Выделить всё
$camN = ($params['cam'] == '') ? "cam1" : $params['cam'];
$where = ($params['where'] == '') ? "C:/ContaCam" : $params['where'];
// отправка в телегу
$y2 = gg('ThisComputer.DateY');
$m2 = gg('ThisComputer.DateM');
$d2 = gg('ThisComputer.DateD');
$dir2 = $where.'/'.$camN.'/'.$y2.'/'.$m2.'/'.$d2.'/';
$fgif2 = scandir($dir2, 1);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
if (!$fgif2) {
$telegram_module->sendMessageToAll("В папке:".$dir2." нет файлов gif");
} else {
$telegram_module->sendFileToAll($dir2.$fgif2[0]);
$telegram_module->sendMessageToAll($fgif2[0]);
}
8) То есть по сути скрипт смотрит папку с записями gif от ContaCam и выбирает последний сегодня файл gif (для упращения поиска) у нужной камеры. (согласен, не совсем корректно, например при переходе суток - проблема, решается конечно доп. проверкой, но лень делать

)
итого получаю при долгом отсутствии gif ....................................... с хождением кошек по дому
Да конечно, лучше это завязать не на долгое отсутствие, а например на somebodyHome или (и) режим под охраной и т.п.
Update:
Да забыл сказать: к видеорегистратору есть отдельный удаленный доступ и он не зависит от MDM ни как!
И дополнительно бонусом сделал команды с кнопками в телеге, примерно такого содержания:
Код: Выделить всё
runScript("gif2telega", array("cam"=>"cam1"));
return;
и теперь всегда могу запросить последнюю запись gif по камере в ручном режиме!