Xeoma и приложение Telegram
В видеонаблюдении особенно важно, чтобы сигнал тревоги достиг владельца или оператора как можно скорее. Большинство краж и грабежей полагаются именно на скорость и фактор внезапности, не давая жертвам времени опомниться. Почему бы тогда не заставить мобильное устройство оповещать своего хозяина, где бы тот ни находился? А ещё лучше будет делать такие оповещения через уже имеющееся приложение, чтобы не пришлось скачивать дополнительные и загружать память. И кто сможет оповестить вас быстрее, чем программа обмена мгновенными сообщениями (инстант-мессенджер)? В этой статье мы разберёмся, как поставить себе на службу приложение Telegram.
Инструкцию по использованию и настройке модуля «Отправка сообщений в Telegram Bot» вы найдете здесь |
Небывалый взлёт популярности Telegram вполне объясним, судите сами: абсолютно бесплатный облачный сервис с простым и понятным приложением, а также с солидной защитой. Но в глазах интеграторов настоящая ценность Telegram кроется в его взаимодействии с ещё одним сервисом — IFTTT. Сразу заметим, что данный сервис пока не имеет русскоязычных аналогов, поэтому в этой статье будет немало англицизмов. Итак, IFTTT расшифровывается как If This Then That (если …, то …) и представляет собой веб-систему, позволяющую пользователям создавать простые алгоритмы: если выполняется некое условие (приходит сообщение или появляется какое-то объявление, и т.д.) — выполняется определённое действие (отправляется сообщение или становится доступной информация, и т.д.). Это самый простой способ интеграции.
У Telegram есть для этого специальный бот, который так и называется — IFTTT:
Выбираем этого бота, жмём START и создаём аккаунт в IFTTT. Теперь можно делать свой алгоритм — applet (считайте, что вы даёте боту инструкцию). Общение с ботом в дальнейшем пойдёт через обычный чат. Начнём с условия, так что нажимаем на This:
IFTTT предлагает множество разных сервисов, способных служить условиями, но нам подойдёт и простой e-mail:
Бот принимает 2 типа писем, но возиться с тэгами нецелесообразно, так что выбираем первый вариант:
Обратите внимание, что IFTTT автоматически воспользуется тем адресом, который привязан к вашему аккаунту.
С условием разобрались, теперь можно задать действие:
Поскольку нам нужно, чтобы общение с ботом шло именно через приложение Telegram, его и выбираем:
К сообщению должна прилагаться картинка — так мы увидим, на что именно среагировал детектор:
Теперь нужно задать текст, который будет выводить нам бот. Поскольку всю нужную информацию Xeoma сама указывает в e-mail, можно оставить все настройки по умолчанию:
Осталось только проверить, что наш алгоритм составлен верно:
Всё готово, теперь бот ожидает от нас e-mail:
Пора настроить Xeoma, простая цепочка с реакцией по движению будет выглядеть так:
Модуль «Отправка email» настроим так:
Важно учесть 2 нюанса:
- Отправлять e-mail обязательно именно на тот адрес, который указал IFTTT (см. последнюю страницу проверки алгоритма);
- В приложении к письму должна быть только одна картинка — бот не сможет принять несколько сразу.
Всё готово! Теперь каждый раз при срабатывании детектора в Telegram появится сообщение с IP-адресом камеры, датой/временем и картинкой.
Приложение Telegram и Xeoma могут взаимодействовать ещё одним способом, он немного сложнее, но позволяет обходиться без третьей стороны (e-mail и IFTTT). Telegram, помимо всего прочего, позволяет пользователям создавать и контролировать собственных ботов, способных принимать HTTP-команды. @BotFather формирует бота и выдаёт хозяину ключи от него (токен). Создаём бота и проверяем его в любом браузере командой:
https://api.telegram.org/botТОКЕН/getme (где ТОКЕН — полный ключ, который выдал нам @BotFather, выглядит примерно так: 123456789:abcdABCDabcDAbcd). Если ответная строчка начинается с “ok”:true, то бот готов к работе. Напишем ему в Telegram любое сообщение, чтобы он смог с нами общаться в дальнейшем.
Теперь можно научить Xeoma контролировать бота. Вот подходящая цепочка:
Обратите внимание, что в цепочке есть «Веб Сервер» — мы вернёмся к нему чуть позже. Нам понадобятся два модуля «Отправка HTTP команд», чтобы высылать текст и картинку отдельно. Внимание: общение с ботом осуществляется только через https (не http). В первом модуле укажем такую команду:
https://api.telegram.org/botТОКЕН/sendmessage?chat_id=МОЙ_ID&text=IP_ИЛИ_ИМЯ
МОЙ_ID — это наш ID в Telegram (если вы его не знаете, вам подскажет @MyTelegramID_bot);
IP_ИЛИ_ИМЯ — это текст сообщения; если камер у вас несколько, то разумнее указывать здесь их IP-адреса или имена, по которым вы легко сможете их идентифицировать.
Теперь займёмся картинками. В этом деле нам и пригодится «Веб сервер» — он умеет отправлять JPG-картинку с камеры по запросу. Нужная ссылка выглядит так:
Но чтобы бот смог эту картинку забрать, она должна быть доступна из внешних сетей. Это значит, что на сервере нам понадобится статический внешний 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 для Веб Сервера
Интеграция с кассовыми аппаратами