Отправка MQTT при срабатывании детектора движения

22 views
Skip to first unread message

Артём Радин

unread,
Aug 19, 2023, 8:38:02 AM8/19/23
to avreg-users
Ребята, подскажите плиз - настраивал ли кто отправку MQTT при срабатывании детектора движения. Понимаю что делать надо через  внешний скрипт, но блин знаний как его написать к сожалению не хватает. Поделитесь примером как это можно сделать плиз. Заранее спасибо.

Andrey Nikitin

unread,
Aug 19, 2023, 9:19:17 AM8/19/23
to avreg...@googlegroups.com
Артём Радин писал(а):
# Копирует пример коллектора на shell
$ zcat /usr/share/doc/avregd/examples/event-collector.gz | \
sudo tee /etc/avreg/scripts/event-collector.sh

# открываем в редакторе скрипт, находим ф-цию on_motion_session и в её самом начале вставляем вызовы клиента MQTT:
$ sudoedit /etc/avreg/scripts/event-collector.sh

on_motion_session() {
...
if [ $1 -eq 13 ]; then
status='started'
$BEEP
mosquitto_pub -h 192.168.1.1 -p 1885 -t topic/subtopic/on -m "motion started"
else
status='finished'
mosquitto_pub -h 192.168.1.1 -p 1885 -t topic/subtopic/off -m "motion finished"
fi
...
}

прим: mosquitto_pub - консольный клиент из пакета mosquitto, ставится также сервер, если не нужен ему нужно запретить (авто)запуск.
как им пользоваться для публикации MQTT см. man или https://mosquitto.org/man/mosquitto_pub-1.html

# разрешаем event-коллектор скрипт
$ sudoedit /etc/avreg/avreg.conf
avregd {
другие параметры
...
event-collector = "/etc/avreg/scripts/event-collector.sh; respawns=5:2,10:3; log=evtcoll:log:err"
...
другие параметры
}

# В админке аврега для всех или конкретной камеры разрешаем запись событий в файл События->events2pipe=Вкл.

# Рестартуем avregd
$ sudo service avreg restart

# Наблюдаем:
$ sudo tail -F /var/log/daemon.log (Debian)
# или
$ sudo tail -F /var/log/syslog (Ubuntu)

[1] http://avreg.net/manual_applications_avregd-event-collector.html
Reply all
Reply to author
Forward
0 new messages