Показать страницуСсылки сюдаДобавить в книгуODT преобразованиеНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ===== Отправка Push-уведомлений из Mikrotik прямо на мобильный при помощи Telegram ===== ==== Создание бота ==== Мы лепили его из того что было но пока не слепили) https://api.telegram.org/bot{ваш токен}/getUpdates ==== Уведомление о перезагрузке ==== Делаем уведомление в два действия: <color #ed1c24>Подставляем имя бота в скрипте на строке</color> :local TelegramBotToken " <color #ed1c24>123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ</color> "; <color #22b14c>Указываем ID чата или канала в строке </color>:local TelegramChatID "<color #22b14c>1234567890</color> "; <code> # 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." } </code> **Создаем скрипт в разделе system - scripts и не забываем поставить галку Don't Require Permissions** {{:sidebar:networks:mikrotik:pasted:20240610-180838.png}} **Создаем правило запуска в планировщике.** Указываем: Имя, Дату, Время и интервал запуска скрипта, мне достаточно проверки раз в 20 минут {{:sidebar:networks:mikrotik:pasted:20240610-181108.png}} ==== Статус Микротика ==== <code | 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" </code> ==== Мониторинг определённых пользователей по мак адресу ==== Для wifi <code> :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 </code> для lan <code> :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 </code> ==== Боты ==== https://forummikrotik.ru/viewtopic.php?f=14&t=13853&p=85768#p85768 sidebar/networks/mikrotik/telegram.txt Последнее изменение: 2024/06/14 14:32 — dred