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 |