Отправка Push-уведомлений из Mikrotik RouterOS прямо на мобильный при помощи Telegram

В данном варианте реализации речь пойдет о сервисе Telegram у которого есть удобный API для управления ботами. На данный вариант я наткнулся чисто случайно, т.к. до недавнего времени про сам Telegram я, конечно же, слышал, но только в общих чертах и сам с ним не сталкивался.

Начинаем работу с Telegram

После того, как аккаунт создан, при помощи поиска необходимо найти контакт «BotFather» – это главный бот, при помощи которого можно создавать новых ботов и управлять уже существующими. При желании, боту можно будет поменять имя, а также загрузить для него аватар. Дальнейшее «общение» с ботом будет происходить в виде текстовых команд. Для создания нового бота, выполните команду:

/newbot

После ввода и отправки данной команды, главный бот запросит отображаемое имя, в нем допускаются пробелы и произвольный формат самого названия.

После указания имени, бот запросит желаемый %username%. При выборе %username% обязательным условием является суффикс «bot» в конце имени, например MikrotikBot или Mikrotik_bot. Если всё прошло успешно, бот-отец ответит сообщением, содержащим специальный token для доступа к API. Сам токен состоит из двух частей, разделенных двоеточием, например:

12558568:Hgsgf74tv7efcdfvhdvhfvcbn65imghmj

Следующим шагом рекомендуется проверить доступность API для вашего бота, делается это в браузере, путем открытия специального URL:

https://api.telegram.org/bot<ваш_токен>/getMe

Система возвращает ответы в формате JSON, в коде ответа должен присутствовать параметр «ok: true», если он есть – API доступен. Собственно бот почти готов, осталось только научить Mikrotik отправлять сообщения, используя API Telegram. Перед тем, как приступить к настройке RouterOS, необходимо узнать ID чата. При помощи мобильного приложения отправляем нашему боту команду:

/start

После чего, в браузере открываем специальный URL:

https://api.telegram.org/bot<ваш_токен>/getUpdates

В ответе нас интересует параметр message=>chat=>id, в нем хранится уникальный идентификатор чата между вами и созданным ботом. По сути, это ваш идентификатор как пользователя, он будет идентичен для всех ботов в рамках одного аккаунта.

Отправка тестового Telegram-сообщения

Теперь у нас есть все необходимое для того, чтобы отправлять сообщения при помощи API. Отправка сообщений осуществляется при помощи браузера, по специально сформированной ссылке, которая имеет следующий вид:

https://api.telegram.org/bot<ваш_токен>/sendMessage?chat_id=<id_чата>&text=<сообщение>

Параметры:

- <ваш_токен> – ваш уникальный токен для доступа к API, полученный ранее; 

- <id_чата>– уникальный идентификатор чата, в который будет отправлено сообщение;

- <сообщение> – текст сообщения;

Текст сообщения может быть как на английском, так и на русском. Для сообщения на латинице, пробелы следует заменять на «%20», точно так же, как это делается в обычных URL. Для того, чтобы отправить сообщение кириллицей, предварительно текст необходимо конвертировать при помощи urlencode, это встроенная функция PHP. Наиболее простой вариант – воспользоваться любым онлайн сервисом, конвертацию выполняем в кодировку UTF-8.

Отправляем сообщения из Mikrotik RouterOS

Отправить сообщение из RouterOS не составит особых трудностей. Для этого можно воспользоваться следующим кодом:

tool fetch url="https://api.telegram.org/bot<ваш_токен>/sendMessage?chat_id=<id_чата>&text=<сообщение>" dst-path=telegram.txt

Для отладки, вы можете воспользоваться стандартными возможностями System – Scripts. Вот собственно и все, остальное за вами. Как вариант, данную систему уведомлений можно комбинировать с USB-модемом. Например, при отключении основного интернет-канала, Mikrotik может отправить уведомление, используя резервный канал. При этом данный метод совершенно бесплатен, в отличие от обычных SMS, за которые оператор взымает плату. Единственное ограничение – доступ к Интернет на самом Mikrotik и конечном устройстве с приложением Telegram (для отправки и получения). Лично я использую Telegram API в связке со встроенным инструментом Netwatch, он предельно прост в использовании и настройке.

Параметры Netwatch:

- Host – пингуемый узел;

- Interval – интервал в секундах между попытками проверки, по-умолчанию 1 минута;

- Timeout – таймаут ожидания, по-умолчанию 1000 мс;

Во вкладках UP и DOWN пишется код, который необходимо выполнить, когда хост доступен или не доступен. Команды (скрипт) выполняются только при смене статуса с up на down или наоборот.

Вариантов применения данного метода существует большое количество, если у вас есть интересная идея или реализация – можете поделиться ею в комментариях.

Додати коментар


Захисний код
Оновити

Радіаційний фон навколо ЗАЕС

EcoMonitoring

ЛІЧІЛЬНИК ВІДВІДУВАННЬ

Сьогодні 202
Вчора165
Цього тижня 367
Минулого тижня 203
Цей місяць 570
Минулий місяць 5128
За весь час 200604
Ваш IP: 216.73.216.0
Сегодня: 2025-11-03
Пользователей на сайте: 0
Гостей на сайте: 189