Mikrotik RouterOS Benachrichtigungen über Telegram API

Man kann relativ einfach aus dem Mikrotik RouterOS herraus eine Nachricht über Telegram ans Smartphone senden.

Netwatch

  • msg: Die Nachricht welche versendet werden soll, keine Sonderzeichen und Zeilenumbrüche!
  • api: Der ApiKey welcher euch mitgeteilt wurden ist
  • chatId: Die ausgelesene ChatId, nicht wundern, Gruppenchats haben eine negative ChatId.
:local msg  "Home: Google DNS is DOWN";
:local api "888888888:ABCABCABCABCABCABCABCABCABC";
:local chatId "111111111";

# /log info $msg

/tool fetch url="https://api.telegram.org/bot$api/sendMessage?chat_id=$chatId&text=$msg" mode=https

# oder als Einzeiler 
tool fetch url="https://api.telegram.org/bot888888888:ABCABCABCABCABCABCABCABCABC/sendMessage?chat_id=11111111&text=Home: Google DNS is UP again" mode=https

Nachricht bei Externe-IP-Wechsel

/tool fetch url="https://ipecho.net/plain" dst-path=temp/mypublicip.txt

# Entferne Zeilenumbruch
:local content [file get mypublicip.txt contents]
:local lineEnd 0;
:local line "";
:local lastEnd 0;
:set lineEnd [:find $content "\n" $lastEnd ] ;
:set line [:pick $content $lastEnd $lineEnd] ;

:local newIp [:pick $line 0 $lineEnd ]
#

:global currentIp;

# Zum debuggen
# /log info "1 - $newIp 2-  $currentIp"

:if ($newIp != $currentIp) do={
    :set currentIp $newIp;

    :local msg  "Home: IP Changed! From $currentIp to $newIp";
    :local api "888888888:ABCABCABCABCABCABCABCABCABC";
    :local chatId "11111111";

    /log info $msg

    /tool fetch url="https://api.telegram.org/bot$api/sendMessage?chat_id=$chatId&text=$msg" mode=https
}