← Назад к списку статей

Xeoma и приложение Telegram

Через IFTTT Через API ботов
Как автоматически послать фото в Telegram по срабатыванию системы видеонаблюдения Xeoma с помощью IFTTT сервиса

В видеонаблюдении особенно важно, чтобы сигнал тревоги достиг владельца или оператора как можно скорее. Большинство краж и грабежей полагаются именно на скорость и фактор внезапности, не давая жертвам времени опомниться. Почему бы тогда не заставить мобильное устройство оповещать своего хозяина, где бы тот ни находился? А ещё лучше будет делать такие оповещения через уже имеющееся приложение, чтобы не пришлось скачивать дополнительные и загружать память. И кто сможет оповестить вас быстрее, чем программа обмена мгновенными сообщениями (инстант-мессенджер)? В этой статье мы разберёмся, как поставить себе на службу приложение Telegram.

Небывалый взлёт популярности Telegram вполне объясним, судите сами: абсолютно бесплатный облачный сервис с простым и понятным приложением, а также с солидной защитой. Но в глазах интеграторов настоящая ценность Telegram кроется в его взаимодействии с ещё одним сервисом — IFTTT. Сразу заметим, что данный сервис пока не имеет русскоязычных аналогов, поэтому в этой статье будет немало англицизмов. Итак, IFTTT расшифровывается как If This Then That (если …, то …) и представляет собой веб-систему, позволяющую пользователям создавать простые алгоритмы: если выполняется некое условие (приходит сообщение или появляется какое-то объявление, и т.д.) — выполняется определённое действие (отправляется сообщение или становится доступной информация, и т.д.). Это самый простой способ интеграции.
У Telegram есть для этого специальный бот, который так и называется — IFTTT:
В программе для видеонаблюдения Xeoma можно автоматически отправить фото в Telegram с помощью IFTTT сервиса

Выбираем этого бота, жмём START и создаём аккаунт в IFTTT. Теперь можно делать свой алгоритм — applet (считайте, что вы даёте боту инструкцию). Общение с ботом в дальнейшем пойдёт через обычный чат. Начнём с условия, так что нажимаем на This:
Чтобы настроить автоматическую отправку фото в Telegram из программы Xeoma, нужно создать аккаунт в сервисе IFTTT

IFTTT предлагает множество разных сервисов, способных служить условиями, но нам подойдёт и простой e-mail:
Выберите опцию e-mail

Бот принимает 2 типа писем, но возиться с тэгами нецелесообразно, так что выбираем первый вариант:
Для автоматичсекой отправки в мессенджер Телеграм в серсисе IFTTT выберите простую синхронизацию с email

Обратите внимание, что IFTTT автоматически воспользуется тем адресом, который привязан к вашему аккаунту.
С условием разобрались, теперь можно задать действие:
Настройте автоматическую отправку уведомлений в месенджер Телеграм

Поскольку нам нужно, чтобы общение с ботом шло именно через приложение Telegram, его и выбираем:
Настройте автоматическую отправку уведомлений от программы видеонаблюдения в месенджер Телеграм

К сообщению должна прилагаться картинка — так мы увидим, на что именно среагировал детектор:
Настройте автоматическую отправку уведомления с фото в Телеграм

Теперь нужно задать текст, который будет выводить нам бот. Поскольку всю нужную информацию Xeoma сама указывает в e-mail, можно оставить все настройки по умолчанию:
Текст можно оставить, как есть

Осталось только проверить, что наш алгоритм составлен верно:
Проверяем, правильно ли мы настроили отправку сообщений с фото в Telegram

Всё готово, теперь бот ожидает от нас e-mail:
Готово, система ждет сообщение

Пора настроить Xeoma, простая цепочка с реакцией по движению будет выглядеть так:
Теперь настраиваем автоматическую отправку фото в Телеграм на стороне Xeoma

Модуль «Отправка email» настроим так:
Теперь настраиваем отправку Email в сервис IFTTT

Настраиваем отправку Email в сервис IFTTT

Важно учесть 2 нюанса:

  1. Отправлять e-mail обязательно именно на тот адрес, который указал IFTTT (см. последнюю страницу проверки алгоритма);
  2. В приложении к письму должна быть только одна картинка — бот не сможет принять несколько сразу.

Всё готово! Теперь каждый раз при срабатывании детектора в Telegram появится сообщение с IP-адресом камеры, датой/временем и картинкой.
Теперь при срабатывании программа для видеонаблюдения Xeoma будет отправлять в Telegram уведомление с фото

Приложение Telegram и Xeoma могут взаимодействовать ещё одним способом, он немного сложнее, но позволяет обходиться без третьей стороны (e-mail и IFTTT). Telegram, помимо всего прочего, позволяет пользователям создавать и контролировать собственных ботов, способных принимать HTTP-команды. @BotFather формирует бота и выдаёт хозяину ключи от него (токен). Создаём бота и проверяем его в любом браузере командой:
https://api.telegram.org/botТОКЕН/getme (где ТОКЕН — полный ключ, который выдал нам @BotFather, выглядит примерно так: 123456789:abcdABCDabcDAbcd). Если ответная строчка начинается с “ok”:true, то бот готов к работе. Напишем ему в Telegram любое сообщение, чтобы он смог с нами общаться в дальнейшем.

Теперь можно научить Xeoma контролировать бота. Вот подходящая цепочка:
Простая цепочка для автоотправки в Телеграм фото из Xeoma

Обратите внимание, что в цепочке есть «Веб Сервер» — мы вернёмся к нему чуть позже. Нам понадобятся два модуля «Отправка HTTP команд», чтобы высылать текст и картинку отдельно. Внимание: общение с ботом осуществляется только через https (не http). В первом модуле укажем такую команду:
https://api.telegram.org/botТОКЕН/sendmessage?chat_id=МОЙ_ID&text=IP_ИЛИ_ИМЯ
МОЙ_ID — это наш ID в Telegram (если вы его не знаете, вам подскажет @MyTelegramID_bot);
IP_ИЛИ_ИМЯ — это текст сообщения; если камер у вас несколько, то разумнее указывать здесь их IP-адреса или имена, по которым вы легко сможете их идентифицировать.

Теперь займёмся картинками. В этом деле нам и пригодится «Веб сервер» — он умеет отправлять JPG-картинку с камеры по запросу. Нужная ссылка выглядит так:
Ссылка, которая поможет отправлять в Телеграм фото из программы Xeoma

Но чтобы бот смог эту картинку забрать, она должна быть доступна из внешних сетей. Это значит, что на сервере нам понадобится статический внешний IP-адрес с проброшенным портом веб сервера (по умолчанию, это порт 10090). После этого останется только заменить в ссылке localhost на статический внешний IP.
Теперь можно составить команду для второго модуля «Отправка HTTP команд»:
https://api.telegram.org/botТОКЕН/sendphoto?chat_id=МОЙ_ID&photo=ССЫЛКА (где ССЫЛКА — строчка из «Веб Сервера» со статическим адресом вместо localhost).
Пример полной команды:
https://api.telegram.org/bot123456789:abcdABCDabcDAbcd/sendphoto?chat_id=123456789&photo=http://115.52.44.211:10090/image14.jpg

Всё готово! Теперь каждый раз, когда сработает «Детектор движения», наш бот сообщит нам об этом и запостит картинку.

11 апреля 2018

Также читайте:
API для Веб Сервера
Интеграция с кассовыми аппаратами