Отправка Push-уведомлений из Mikrotik прямо на мобильный при помощи Telegram
Создание бота
Мы лепили его из того что было но пока не слепили)
https://api.telegram.org/bot{ваш токен}/getUpdates
Уведомление о перезагрузке
Делаем уведомление в два действия:
Подставляем имя бота в скрипте на строке :local TelegramBotToken « 123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ »;
Указываем ID чата или канала в строке :local TelegramChatID «1234567890 »;
# Func: Telegram send message :local TGSendMessage do={ :local tgUrl "https://api.telegram.org/bot$Token/sendMessage?chat_id=$ChatID&text=$Text&parse_mode=html"; /tool fetch http-method=get url=$tgUrl keep-result=no; } # Constants :global RebootStatus; :local TelegramBotToken "123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ"; :local TelegramChatID "1234567890"; :local DeviceName [/system identity get name]; :local TelegramMessageText "\F0\9F\9F\A2 <b>$DeviceName:</b> start after Power Off."; # Program :if ($RebootStatus != true) do={ $TGSendMessage Token=$TelegramBotToken ChatID=$TelegramChatID Text=$TelegramMessageText; :set RebootStatus true; :log info "Script CheckPowerOn send Telegram message." }
Создаем скрипт в разделе system - scripts и не забываем поставить галку Don't Require Permissions
Создаем правило запуска в планировщике.
Указываем: Имя, Дату, Время и интервал запуска скрипта, мне достаточно проверки раз в 20 минут
Статус Микротика
- download.txt
:log info "Start WANstat script" :global routername "ИМЯ"; :global sendToTele "https://api.telegram.org/123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ/sendmessage\?chat_id=-123456789&text=" ; :global rxbyte [/interface get [find name=ether1] rx-byte]; :global simplGbrxreport ($rxbyte / 1073741824); :global lowGbrxreport ((($rxbyte - ($simplGbrxreport * 1073741824)) * 1000000000) / 1048576); :global Gbrxreport ("$[$simplGbrxreport]".",".[:pick "$[$lowGbrxreport]" 0 3] ); :global txbyte [/interface get [find name=ether1] tx-byte]; :global simplGbtxreport ($txbyte / 1073741824); :global lowGbtxreport ((($txbyte - ($simplGbtxreport * 1073741824)) * 1000000000) / 1048576); :global Gbtxreport ("$[$simplGbtxreport]".",".[:pick "$[$lowGbtxreport]" 0 3] ); :global tempC [/system health get temperature]; :global volt [/system health get voltage]; :global simplvolt ($volt / 10); :global lowvolt ((($volt - ($simplvolt * 10)) * 10) / 1); :global involt ("$[$simplvolt]".",".[:pick "$[$lowvolt]" 0 3] ); :global uptime [/system resource get uptime] :global cpuZ [/system resource get cpu-load] :global vers [/system resource get version] :global memt [/system resource get total-memory] :global memtotal ($memt / 1048576) :global memo [/system resource get free-memory] :global memoMB ($memo / 1048576) /tool fetch url="$sendToTele $routername%0AVersion: $vers%0AUptime: $uptime%0AVoltage: $involt V%0ATemperature: $tempC C%0ACPU load: $cpuZ %%0AMemory Free / Total: $memoMB / $memtotal MB%0ADownload: $Gbrxreport GB%0AUpload: $Gbtxreport GB " keep-result=no :log info "WANstat script finished"
Мониторинг определённых пользователей по мак адресу
Для wifi
:global mac "XX:XX:XX:XX:XX:XX" :global OldChek :global chek if ([/interface wireless registration-table find mac-address=$mac] != "") do={set chek true} else={set chek false} if (($chek != $OldChek) and ($chek = true)) do={ /tool fetch url="https://api.telegram.org/botXXXXXXXXX:YYYYYYYYYYYYYY/sendmessage?chat_id=ZZZZZZZZZZZZ&text=UP" } if (($chek != $OldChek) and ($chek = false)) do={ /tool fetch url="https://api.telegram.org/botXXXXXXXXX:YYYYYYYYYYYYYY/sendmessage?chat_id=ZZZZZZZZZZZZ&text=DOWN" } set OldChek $chek
для lan
:global mac "XX:XX:XX:XX:XX:XX" :global OldChek :global chek if ([/ip dhcp-server lease find mac-address=$mac] != "") do={set chek true} else={set chek false} if (($chek != $OldChek) and ($chek = true)) do={ /tool fetch url="https://api.telegram.org/botXXXXXXXXX:YYYYYYYYYYYYYY/sendmessage?chat_id=ZZZZZZZZZZZZ&text=UP" } if (($chek != $OldChek) and ($chek = false)) do={ /tool fetch url="https://api.telegram.org/botXXXXXXXXX:YYYYYYYYYYYYYY/sendmessage?chat_id=ZZZZZZZZZZZZ&text=DOWN" } set OldChek $chek