eworm.routeros-scripts/doc/mod/notification-telegram.md

4.5 KiB
Raw Blame History

Send notifications via Telegram

GitHub stars GitHub forks GitHub watchers required RouterOS version Telegram group @routeros_scripts donate with PayPal

⬅️ Go back to main README

Info: This module can not be used on its own but requires the base installation. See main README for details.

Description

This module adds support for sending notifications via Telegram via bot api. A queue is used to make sure notifications are not lost on failure but sent later.

Requirements and installation

Just install the module:

$ScriptInstallUpdate mod/notification-telegram;

Also install Telegram on at least one of your mobile and/or desktop devices and create an account.

Configuration

Open Telegram, then start a chat with BotFather and create your own bot:

create new bot

Set that token from BotFather (use your own!) to TelegramTokenId, for now just temporarily:

:set TelegramTokenId "5214364459:AAHLwf1o7ybbKDo6pY24Kd2bZ5rjCakDXTc";

Now open a chat with your bot and start it by clicking the START button, then send your first message. Any text will do. On your device run $GetTelegramChatId to retrieve the chat id:

$GetTelegramChatId;

get chat id

Finally edit global-config-overlay, add TelegramTokenId with the token from BotFather and TelegramChatId with your retrieved chat id. Then reload the configuration.

Info: Copy relevant configuration from global-config (the one without -overlay) to your local global-config-overlay and modify it to your specific needs.

Notifications to a group

Sending notifications to a group is possible as well. Add your bot to a group and make it an admin (required for read access!) and send a message and run $GetTelegramChatId again. Then use that chat id (which starts with a dash) for TelegramChatId.

Groups can enable the Topics feature. Use TelegramThreadId to send to a specific topic in a group.

Usage and invocation

There's nothing special to do. Every script or function sending a notification will now send it to your Telegram account.

But of course you can use the function to send notifications directly. Give it a try:

$SendTelegram "Subject..." "Body...";

Alternatively this sends a notification with all available and configured methods:

$SendNotification "Subject..." "Body...";

To use the functions in your own scripts you have to declare them first. Place this before you call them:

:global SendTelegram;
:global SendNotification;

In case there is a situation when the queue needs to be purged there is a function available:

$PurgeTelegramQueue;

Tips & Tricks

Set a profile photo

You can use a profile photo for your bot to make it recognizable. Open the chat with BotFather and set it there.

set profile photo

Have a look at my RouterOS-Scripts Logo Color Changer to create a colored version of this scripts' logo.

See also


⬅️ Go back to main README
⬆️ Go back to top