Telegram оповещения из Windows/Linux систем
Telegram является эффективным инструментом для оповещения в системах диспетчеризации и телемеханики. Он позволяет оперативно информировать о критических событиях через ботов и каналы, обеспечивая быстрое реагирование. Важно учитывать безопасность и конфиденциальность данных при использовании мессенджера в профессиональных целях.
Оповещение может осуществляться в группу и непосредственно пользователю.
Первым шагом вы должны создать нового бота в Telegram. Для этого выполните следующие действия:
- Откройте чат с
https://t.me/botfather, официальным ботом для создания и управления другими ботами. - Используйте команду
/newbotи следуйте инструкциям для создания бота. Вам будет предложено ввести имя и имя пользователя для вашего бота. - После успешного создания BotFather предоставит вам токен доступа к вашему боту. Этот токен выглядит как длинная строка и необходим для взаимодействия с API Telegram.
Теперь, когда у вас есть токен вашего бота, переходим к следующему шагу — получению chat_id.
Способ 1
Чтобы узнать свой chat_id:
- Отправьте любое сообщение вашему боту после его создания (например, просто текст "Привет").
- Для получения
chat_idможно использовать Telegram Bot API. Для этого выполните HTTP-запрос к следующему URL-адресу, заменивYOUR_BOT_TOKENна токен вашего бота:https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates. Этот запрос вернет JSON-ответ с информацией о последних обновлениях, включая сообщения, которые были отправлены вашему боту. В этом ответе вы увидите объект с параметромchat, где будет находитьсяchat_id.
Для группового чата вы можете пригласить бота в группу и следовать тем же шагам. После того как бот получит сообщение, вы сможете увидеть chat_id группы в ответе при выполнении запроса к API.
Способ 2
Как узнать chat_id группы:
- Пригласить бота
@myidbotв созданную группу и ввести команду/getgroupid
Как узнать chat_id конкретного человека:
- Написать боту
@myidbotв личные сообщения и ввести команду/getid
Работа с группами
Чтобы бот мог писать в группы, нужно через BotFather установить Group Privacy mode в Off
Для этого нужно написать BotFather → Bot Settings → Group Privacy → Turn Off
Установка
Linux
- Файл
telegram_bot.packпоместить в/opt/storage/files/tm_cpps/luauser - Загрузить файл конфигурации
- Прописать
bot_tokenсвоего бота в конфигурации - Прописать
chat_id1, chat_id2... и добавить необходимые в список - Указать параметр
startmessage=1, если требуется отправка сообщения о старте контроллера - Указать параметр
prefix, значение которого будет добавляться к каждому сообщению оповещения - Добавить необходимые входные сигналы для оповещения
Windows
- Файл
telegram_bot.packпоместить в папку\luauser\, которая находится в каталогеTM_SERVER - Установить wget для windows. Команда
wgetдолжна быть доступна из консоли Windows, для этого следует прописать%PATH%либо разместить wget в папкеSystem32. Скачать можно, например, здесь - Загрузить файл конфигурации
- Прописать
bot_tokenсвоего бота в конфигурации - Прописать
chat_id1, chat_id2...и добавить необходимые в список - Указать параметр
startmessage=1, если требуется отправка сообщения о старте контроллера - Указать параметр
prefix, значение которого будет добавляться к каждому сообщению оповещения - Добавить необходимые входные сигналы для оповещения
Логика работы
Сообщение при старте
При старте контроллера проверяется значение startmessage, если 1, то отправляется сообщение
prefix Старт контроллера - [время контроллера]
Общий срез телеметрии
Если написать боту любое сообщение, то бот ответит во все chat_id сообщение согласно своему списку телеметрии.
Подстанция 1 - 192.168.0.70 14-03-2025 16:19:50 In1 - 14654 Сигнал в базе 2 - 0? Сигнал в базе 3 - 0? Сигнал 4 - 0? Сигнал в базе 5 - 0? Сигнал в базе 6 - 0? Сигнал в базе 7 - 0? Сигнал в базе 8 - 0? Сигнал в базе 9 - 0? Сигнал в базе 10 - 0? Сигнал в базе 11 - 0? Сигнал в базе 12 - 0? Сигнал в базе 13 - 0? Сигнал в базе 14 - 0? Сигнал в базе 15 - 0? Сигнал в базе 16 - 0? Сигнал в базе 17 - 0? Сигнал в базе 18 - 0? Сигнал в базе 19 - 1 Сигнал в базе 20 - 1
Описание берется из базы. Если описания сигнала нет, то берется id из списка в параметрах Telegram оповещения.
Учитывается сигнал недостоверности, который в сообщениях указывается знаком ?
Спорадика
Спорадика приходит самостоятельно
Все тэги формата tit_ спорадикой игнорируются
Стенд RL25 - 192.168.0.250 14-03-2025 16:18:30 Сигнал в базе 2 - 1 Сигнал в базе 20 - 1 ABC - 1
Файлы
| Описание | Файл |
|---|---|
| Пример конфигурационного файла | conf_iRZR2_telegram.xml |
| Скрипт Telegram оповещения | telegram_bot.pack |