avreg и telegram

203 views
Skip to first unread message

Max Leonidov

unread,
May 1, 2019, 9:42:37 AM5/1/19
to avreg-users
Привет!
Кто-нибудь пробовал "прикрутить" к avreg telegram, чтобы он слал в группу снапшотыс камер(ы) по движению?
Поделитесь, как реализовали :)

Andrey Nikitin

unread,
May 1, 2019, 9:56:55 AM5/1/19
to avreg...@googlegroups.com
В Wed, 1 May 2019 04:05:39 -0700 (PDT)
Max Leonidov <leoni...@gmail.com> пишет:

> Кто-нибудь пробовал "прикрутить" к avreg telegram, чтобы он слал в
> группу снапшотыс камер(ы) по движению?
> Поделитесь, как реализовали :)

(теория)

К демону нужно "подключить" event-collector
/etc/avreg/avreg.conf
см. event-collector
и http://avreg.net/manual_applications_avregd-event-collector.html

Пример event-collector (на shell) см.:
/usr/share/doc/avregd/examples/event-collector.gz
в нём см. функцию on_jpeg_saved()

2) Взять эту консольную утилиту (или подобную)
https://github.com/rahiel/telegram-send
настроить её (полагаю где-то конфиг с логином и паролем)
и вписать её (команду) в функцию on_jpeg_saved()

telegram-send --image $filename --caption "cam[$cam_nr] $evt_name"


Max Leonidov

unread,
May 1, 2019, 9:59:35 AM5/1/19
to avreg-users
спасибо за наводку! попробую сделать - отпишусь детально как)

среда, 1 мая 2019 г., 16:56:55 UTC+3 пользователь avreg-support написал:

Max Leonidov

unread,
May 4, 2019, 10:26:08 AM5/4/19
to avreg-users
А как при получить снапшот по сработке датчика движения? Не могу найти. (

Andrey Nikitin

unread,
May 4, 2019, 1:02:31 PM5/4/19
to avreg...@googlegroups.com
Если  запись по детектору настроили и она работает,
то см. описание параметров Запись-,>видео->показывать_все_параметры->snapshot_period1(2)
и Захват->decode_video (если исходный видеопоток с камеры в H264)
   

Суббота, 4 мая 2019, 18:26 +04:00 от Max Leonidov <leoni...@gmail.com>:

А как при получить снапшот по сработке датчика движения? Не могу найти. (

--
Вы получили это сообщение, поскольку подписаны на группу avreg-users.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес avreg-users...@googlegroups.com.
Перейдите в группу по ссылке https://groups.google.com/group/avreg-users.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.


С уважением,
Andrey Nikitin
avreg-...@mail.ru

Symm3tr4 Nolan

unread,
Jun 26, 2020, 12:13:33 AM6/26/20
to avreg-users
Скажите, пожалуйста, у вас получилось прикрутить уведомления в telegram? Бьюсь который день - не получается

среда, 1 мая 2019 г., 17:59:35 UTC+4 пользователь Max Leonidov написал:

Andrey Nikitin

unread,
Jun 26, 2020, 12:28:10 AM6/26/20
to avreg...@googlegroups.com
Symm3tr4 Nolan писал(а):
> Скажите, пожалуйста, у вас получилось прикрутить уведомления в telegram?
> Бьюсь который день - не получается

В общем случае, для целей отладки, задачу нужно разбить на 2 подзадачи:
1) оформление обработчика события в event-collector,
здесь можно для контроля, например, файл-флаг какой-нибудь создавать в ФС;
2) отправку сообщения (в телеграм) из скрипта (терминала),
здесь важно понимать, что вызов скрипта из event-collector-a будет
от другого пользователя (avreg:avreg, по умолчанию). Соотв., переменные
окружения в $HOME/.basrc (и т.п.) не будут доступны скрипту.

Также нужно помнить что не рекомендуется использовать длительные
блокирующие команды в event-collector.

Ну, и /var/log/avreg/evtcoll.err смотреть, куда записываются ошибки в скрипте event-collector.

yurissan

unread,
Apr 10, 2025, 9:16:20 PMApr 10
to avreg-users
секцию on_jpeg_saved не нашел сделал вот так

on_snapshot_saved() {
   local evt_id cam_nr ctime motion_session file_sizeKB resolution filename evt_name
   evt_id=$1
   cam_nr=$2
   frame_time="$3"
   motion_session=$4
   file_sizeKB=$5
   resolution="$6x$7"
   filename="$8"
   evt_name='unknown'
   case $evt_id in
      15) evt_name='paranoid'   ;;   # paranoid snapshots
      16) evt_name='1st period' ;;   # snapshots of shapshot period 1
      17) evt_name='2nd period' ;;   # snapshots of shapshot period 2
   esac
   #log debug "cam[$cam_nr]: save \"$evt_name\" jpeg snapshot \"$filename\" ($resolution, $file_sizeKB kB)"
if [ $evt_id -eq 16 ]; then
      mpack -s "cam[$cam_nr] first motion frame" \
             -c "application/octet-stream" \
             "$filename" \
             ...............@mail.ru
      /usr/local/bin/telegram-send --image "$filename" --caption "cam[$cam_nr] $evt_name"
fi
}

на почту отправляет а в телегу нет. просто с консоли утилита telegram-send работает. что то неправильно прописал видимо?
среда, 1 мая 2019 г. в 21:56:55 UTC+8, Andrey Nikitin:

Andrey Nikitin

unread,
Apr 11, 2025, 1:57:50 AMApr 11
to avreg...@googlegroups.com
yurissan писал(а):
> секцию on_jpeg_saved не нашел сделал вот так
> на почту отправляет а в телегу нет. просто с консоли утилита telegram-send
> работает. что то неправильно прописал видимо?

В /var/log/evtcoll.err отправляется stderr вывод скрипта, посмотрите там.

Andrey Nikitin

unread,
Apr 11, 2025, 1:58:59 AMApr 11
to avreg...@googlegroups.com
'Andrey Nikitin' via avreg-users писал(а):
> В /var/log/evtcoll.err
/var/log/avreg/evtcoll.err

yurissan

unread,
Apr 22, 2025, 7:42:37 PMApr 22
to avreg-users


пятница, 11 апреля 2025 г. в 13:58:59 UTC+8, Andrey Nikitin:
'Andrey Nikitin' via avreg-users писал(а):
> В /var/log/evtcoll.err
/var/log/avreg/evtcoll.err

посмотрел в evtcoll.err там пусто

 

Andrey Nikitin

unread,
Apr 23, 2025, 2:51:54 AMApr 23
to avreg...@googlegroups.com
yurissan писал(а):
> посмотрел в evtcoll.err там пусто
Так или иначе, нужно чтобы там что-то было.
Сначала нужно удостоверится, что event-collector-у разрешено писать в лог файлы:
avreg.conf:
avregd {
...
event-collector = "event-collector; respawns=5:2,10:3; log=evtcoll:log:err"
^^^^^^^^^^^^^^^^^^^
...
}
Если нет log=evtcoll:log:err, добавить и рестартануть avregd.

Далее можно добавив тестовые сообщения в stderr в event-collector:
echo "перед запуском telegram-send" >&2
/usr/local/bin/telegram-send ...
echo "telegram-send завершился, код завершения $?" >&2

Дальше - в зависимости от того что будет в код завершения.
Может в evtcoll.err ещё что-то прилетит.


Также следует попробовать запустить скрипт с терминала от пользователя "avreg:avreg" (см avreg.conf параметры user,group):
sudo -u avreg -g avreg /usr/local/bin/telegram-send ...

Возможно скрипт использует какие-нибудь конфиги из $HOME текущего пользователя.




yurissan

unread,
Apr 23, 2025, 10:38:16 AMApr 23
to avreg-users


среда, 23 апреля 2025 г. в 14:51:54 UTC+8, Andrey Nikitin:
попробовал из консоли см. ниже
 
sudo -u avreg -g avreg  /usr/local/bin/telegram-send --image "$filename" --caption "cam[$cam_nr] $evt_name"
usage: telegram-send [-h] [--format {text,markdown,html}] [--stdin] [--pre] [--disable-web-page-preview] [--silent] [-c] [--configure-channel]
                     [--configure-group] [-f FILE [FILE ...]] [-i IMAGE [IMAGE ...]] [-s STICKER [STICKER ...]] [--animation ANIMATION [ANIMATION ...]]
                     [--video VIDEO [VIDEO ...]] [--audio AUDIO [AUDIO ...]] [-l LOCATION [LOCATION ...]] [--caption CAPTION [CAPTION ...]] [--showids]
                     [-d id [id ...]] [--config CONF] [-g] [--file-manager] [--clean] [--timeout TIMEOUT] [--version]
                     [message ...]
telegram-send: error: argument -i/--image: can't open '': [Errno 2] No such file or directory: ''

Andrey Nikitin

unread,
Apr 23, 2025, 10:43:27 AMApr 23
to avreg...@googlegroups.com
yurissan писал(а):
> sudo -u avreg -g avreg /usr/local/bin/telegram-send --image "$filename"
--caption "cam[$cam_nr] $evt_name"
> telegram-send: error: argument -i/--image: can't open '': [Errno 2] No such
> file or directory: ''

Это правильно, т.к. shell переменные $filename, $cam_nr и $evt_name не определены в текущем окружении.
Для теста замените значения опций --image и --caption на любые действительные соответствующие значения.

yurissan

unread,
Apr 23, 2025, 10:59:54 AMApr 23
to avreg-users


среда, 23 апреля 2025 г. в 22:43:27 UTC+8, Andrey Nikitin:
:~$ pwd
/home/sanyuris
:~$ ls -l
итого 108828
-rw-rw-r-- 1 sanyuris sanyuris     33137 апр  4 09:49  17_01_25-01.jpg
-rw-rw-r-- 1 sanyuris sanyuris       153 апр  4 13:09  1.txt
drwxrwxr-x 3 sanyuris sanyuris      4096 ноя  1 18:27  backup
-rw-r--r-- 1 root     root     111353576 окт 22  2024  google-chrome-stable_current_amd64.deb
-rw-rw-r-- 1 sanyuris sanyuris        21 окт 25 18:22  password
drwx------ 6 sanyuris sanyuris      4096 фев 13 15:27  snap
drwxr-xr-x 2 sanyuris sanyuris      4096 дек 13 18:53  Видео
drwxr-xr-x 3 sanyuris sanyuris      4096 мар  7 08:54  Документы
drwxr-xr-x 3 sanyuris sanyuris      4096 апр  4 12:46  Загрузки
drwxr-xr-x 3 sanyuris sanyuris      4096 ноя 21 18:41  Изображения
drwxr-xr-x 2 sanyuris sanyuris      4096 окт 25 18:03  Музыка
drwxr-xr-x 2 sanyuris sanyuris      4096 окт 25 18:03  Общедоступные
drwxr-xr-x 2 sanyuris sanyuris      4096 окт 25 18:03 'Рабочий стол'
drwxr-xr-x 2 sanyuris sanyuris      4096 окт 25 18:03  Шаблоны
:~$ sudo -u avreg -g avreg /usr/local/bin/telegram-send --image 17_01_25-01.jpg

usage: telegram-send [-h] [--format {text,markdown,html}] [--stdin] [--pre] [--disable-web-page-preview] [--silent] [-c] [--configure-channel]
                     [--configure-group] [-f FILE [FILE ...]] [-i IMAGE [IMAGE ...]] [-s STICKER [STICKER ...]] [--animation ANIMATION [ANIMATION ...]]
                     [--video VIDEO [VIDEO ...]] [--audio AUDIO [AUDIO ...]] [-l LOCATION [LOCATION ...]] [--caption CAPTION [CAPTION ...]] [--showids]
                     [-d id [id ...]] [--config CONF] [-g] [--file-manager] [--clean] [--timeout TIMEOUT] [--version]
                     [message ...]
telegram-send: error: argument -i/--image: can't open '17_01_25-01.jpg': [Errno 13] Permission denied: '17_01_25-01.jpg'

Andrey Nikitin

unread,
Apr 23, 2025, 11:04:54 AMApr 23
to avreg...@googlegroups.com
yurissan писал(а):
> [Errno 13] Permission denied: '17_01_25-01.jpg'
Команда, запускаемая через sudo -u|-g выполняется с привилегиями и правами заданных пользователя/группы.
Пользователь avreg:avreg не может читать файлы в вашем домашнем каталоге.

yurissan

unread,
Apr 23, 2025, 11:11:12 AMApr 23
to avreg-users


среда, 23 апреля 2025 г. в 23:04:54 UTC+8, Andrey Nikitin:
ну да
а Для теста замените значения опций --image и --caption на любые действительные соответствующие значения.
где находятся?
 

yurissan

unread,
Apr 23, 2025, 11:15:18 AMApr 23
to avreg-users


среда, 23 апреля 2025 г. в 23:11:12 UTC+8, yurissan:
вроде нашел /var/spool/avreg 

yurissan

unread,
Apr 23, 2025, 11:23:28 AMApr 23
to avreg-users


среда, 23 апреля 2025 г. в 23:15:18 UTC+8, yurissan:
:~$ sudo -u avreg -g avreg /usr/local/bin/telegram-send --image /var/spool/avreg/2025-04/23/01-Kamera_01/19_17_21-01.jpg
Config not found
Please run: telegram-send --configure

yurissan

unread,
Apr 23, 2025, 12:02:03 PMApr 23
to avreg-users


среда, 23 апреля 2025 г. в 23:23:28 UTC+8, yurissan:
Видимо надо аврегу как то подкинуть /home/sanyuris/.config/telegram-send.conf вот только куда?
 

yurissan

unread,
Apr 23, 2025, 12:33:51 PMApr 23
to avreg-users


четверг, 24 апреля 2025 г. в 00:02:03 UTC+8, yurissan:
 сконфигурил telegram-send  для пользователя avreg, от аврега теперь отправляется в телегу с консоли, жду какое нибудь событие и отправку через event-collector. 
 

Andrey Nikitin

unread,
Apr 23, 2025, 2:01:54 PMApr 23
to avreg...@googlegroups.com
23.04.2025 19:33, yurissan пишет:
> Видимо надо аврегу как то подкинуть /home/sanyuris/.config/telegram-
> send.conf вот только куда?

/var/lib/avreg/.config/telegram-send.conf
но лучше если бы скрипт telegram-send имел ключик типа --config
/etc/avreg/telegram-send.conf


--
ООО «Сетевые информационные системы»
директор Андрей Никитин

http://avreg.net
http://linuxdvr.ru
/8442/ 50-14-90 +79275101490

yurissan

unread,
Apr 23, 2025, 8:35:53 PMApr 23
to avreg-users


четверг, 24 апреля 2025 г. в 02:01:54 UTC+8, Andrey Nikitin:
23.04.2025 19:33, yurissan пишет:
> Видимо надо аврегу как то подкинуть /home/sanyuris/.config/telegram-
> send.conf вот только куда?

/var/lib/avreg/.config/telegram-send.conf
но лучше если бы скрипт telegram-send имел ключик типа --config
/etc/avreg/telegram-send.conf

Ага сделал от пользователя avreg telegram-send --config ввел бот id своего бота
он мне выдал пятизначный код далее в телеге открыл бота и отправил ему код
потом все заработало. Спасибо за подсказку. Не надо теперь с почтой заморачиваться. 

yurissan

unread,
May 28, 2025, 11:46:29 PMMay 28
to avreg-users
А подскажите пожалуйста как прописать в event-collector отправку в телегу захваченного видео по детектору.

четверг, 24 апреля 2025 г. в 08:35:53 UTC+8, yurissan:

Andrey Nikitin

unread,
May 29, 2025, 12:25:13 AMMay 29
to avreg...@googlegroups.com
yurissan писал(а):
> А подскажите пожалуйста как прописать в event-collector отправку в телегу
> захваченного видео по детектору.

Технически это несложно и не отличается от отправки картинки
(в event-collector есть событие - запись видео,
куда передаётся путь до записанного медиа-файла,
аналогичное событию - запись картинки которое вы уже использовали,
см. пример из документации).

Однако, если условный telegram-send выполняет отправку в блокирующем режиме
(а 99.99% он так и делает) и если с отправкой возникнут серьёзные замедления,
то в перспективе такой обработчик может даже остановить работу avregd
(захват и запись видео).

Особенно критично, если связь с интернетом - мобильная.

Хороших решений данного вопроса ровно 2:
1. передавать в сообщении не само видео, а ссылку на видео из архива AVReg.
Этот вариант простой, но сервер AVReg должен иметь статический (или DynDNS или ipv6)
адрес для того чтобы ссылку можно было открыть и просмотреть видео с архива.
2. передавать видео, но значительно изменив программную архитектуру работы с событиями,
а именно, поместив очередь (REDIS LIST, RabbitMQ, MQTT брокер, ...) между
event-collector (кидает в очередь ссылки на видео) и telegram-send
(читает события из очереди в цикле и при наличии отправляет в бот сообщения уже в виде видео).
Этот вариант требует программиста.


Reply all
Reply to author
Forward
0 new messages