Send notifications via Telegram
ℹ️️ 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:
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;
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 localglobal-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.
Have a look at my RouterOS-Scripts Logo Color Changer to create a colored version of this scripts' logo.
See also
- Chat with your router and send commands via Telegram bot
- Send notifications via e-mail
- Send notifications via Gotify
- Send notifications via Matrix
- Send notifications via Ntfy