Отправка снимков с камеры Dahua в Telegram при помощи Node Red

Идея такая была:

По запросу из бота Телеграма получать снимок с IP камеры. Применение технологии может быть различное. Например, охранная сигнализация или СКУД.

1. Камера своими средствами обнаружения движения выдает сигнал тревоги, сигнал принимается в среде разработки, отправляется GET запрос на снимок, снимок получается и отправляетcя в Телеграм.

Или можно докрутить идею:

2. На снимке средствами OpenCV распознается лицо и предоставляется доступ авторизованному человеку.

Итак, перейдем с флоу Node red.

22

Тут показан алгоритм для приема снимка в Телеграм по запросу и также вывод снимка на UI Dashboard по нажатию кнопки. Код ниже

https://pastebin.com/bqFqzQ2G

Вкратце опишу, что творится здесь.

По команде /snap из бота получаем команду на GET запрос на IP камеру. Тут важный момент, в камерах Dahua работает дайджест аутентификация, так что этот момент надо учесть в настройках нода http request. Также нужно настроить выхлоп в бинарном виде binary buffer. URL запроса для моей камеры Dahua такой IP/cgi-bin/snapshot.cgi

23

Далее функциональным нодом выполняем инструкции API Telegram для отправки фото в бот:

https://pastebin.com/cZhCGBQ7

Далее идет отправка в Telegram.

Ниже алгоритм для отправки снимка в Dashboard по нажатию кнопки. Get запрос аналогичный, далее идет base64 кодирование бинарного массива и выгрузка в UI.

24.PNG

25.PNG

 

Код для вставки в шаблон виджета ниже:

https://pastebin.com/5W6bsWzH