Идея такая была:
По запросу из бота Телеграма получать снимок с IP камеры. Применение технологии может быть различное. Например, охранная сигнализация или СКУД.
1. Камера своими средствами обнаружения движения выдает сигнал тревоги, сигнал принимается в среде разработки, отправляется GET запрос на снимок, снимок получается и отправляетcя в Телеграм.
Или можно докрутить идею:
2. На снимке средствами OpenCV распознается лицо и предоставляется доступ авторизованному человеку.
Итак, перейдем с флоу Node red.
Тут показан алгоритм для приема снимка в Телеграм по запросу и также вывод снимка на UI Dashboard по нажатию кнопки. Код ниже
Вкратце опишу, что творится здесь.
По команде /snap из бота получаем команду на GET запрос на IP камеру. Тут важный момент, в камерах Dahua работает дайджест аутентификация, так что этот момент надо учесть в настройках нода http request. Также нужно настроить выхлоп в бинарном виде binary buffer. URL запроса для моей камеры Dahua такой IP/cgi-bin/snapshot.cgi
Далее функциональным нодом выполняем инструкции API Telegram для отправки фото в бот:
Далее идет отправка в Telegram.
Ниже алгоритм для отправки снимка в Dashboard по нажатию кнопки. Get запрос аналогичный, далее идет base64 кодирование бинарного массива и выгрузка в UI.
Код для вставки в шаблон виджета ниже: