Category5.TV Community Forum

Full Version: Telegram Push notifications
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6
Hi,

In another project I use Telegram to receive push notifications on my phone so I thought it would be nice to have the same in NEMS.
It is actually quite simple to set this up.

For those interested, here are the steps:

1) Get a Telegram account (it is free!): https://telegram.org/
After setting up your account you will have a bot and a chat id.

2) install lua-sec (this will also install lua-socket):


Code:
sudo apt-get install lua-sec

3) Install the following script in /usr/local/bin:
Name the script 'telegram_nems.lua'
This is a simple lua script I wrote just to get this working, so it is really minimal without error checking etc...


Code:
#!/usr/bin/lua
https = require('ssl.https')
local telegram_url = 'https://api.telegram.org/<your bot>/sendMessage?'
local chat_id = '<your chat id>'

     Notification = "Notification Type: " .. arg[1] ..'\n'    --$NOTIFICATIONTYPE$
     Host = "Host: " .. arg[2] ..'\n'                         --$HOSTNAME$
     State = "State: " .. arg[3] ..'\n'                       --$HOSTSTATE$/$SERVICESTATE$
     Address = "Address: " .. arg[4] ..'\n'                   --$HOSTADDRESS$
     Info = "Info: "  .. arg[5] ..'\n'                        --$HOSTOUTPUT$/"$SERVICEOUTPUT$"
     Date_Time = "Date/Time: " .. arg[6] ..'\n'               --$LONGDATETIME$
   if (#arg == 6) then
     message = '***** Nagios ***** ' ..'\n' ..'\n' .. Notification .. Host ..State .. Address .. Info .. Date_Time
   else
     Service = "Service: " .. arg[7] .. '\n'                  --$SERVICEDESC$
     message = '***** Nagios ***** ' ..'\n' ..'\n' .. Notification .. Host  .. Service ..State .. Address .. Info .. Date_Time
   end

local data_str = 'chat_id=' .. chat_id .. '&text=' .. message..''  
local res, code, headers, status = https.request(telegram_url, data_str)
4) In NConf, add the following to Misccommands:

Code:
command_name                          notify-host-by-telegram
command_line                          /usr/local/bin/telegram_nems.lua "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTSTATE$" "$HOSTADDRESS$" "$HOSTOUTPUT$" "$LONGDATETIME$"

Code:
command_name                          notify-service-by-telegram
command_line                          /usr/local/bin/telegram_nems.lua "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$SERVICESTATE$" "$HOSTADDRESS$" "$SERVICEOUTPUT$" "$LONGDATETIME$" "$SERVICEDESC$"
As usual: use at your own risk!
Wow baggins - am I reading this right? You can use this to get push notifications from NEMS to your phone?

I love it! And I appreciate your sharing the code.

Cool to include this in NEMS 1.3?
I have the messages on both my iPhone and iPad [Image: smile.gif]

The script needs some polishing, but feel free to include it in 1.3.

I'm glad being able to contribute to the fine work that you have done with NEMS!
Awesome-- thanks!

If you make any "polishing" changes to it, please post here. I'll probably be feature locked within the next week or so... so if you want to fix anything up, this'd be the best time to get that in before 1.3.

Cheers,
Robbie
Your commands made it into NEMS 1.3! https://docs.nemslinux.com/changelog_1.3

Congratulations, and thanks again for your contribution.
baggins, I'm in the process of setting up my test system and writing the documentation for this, but can't figure out where the Chat ID and Bot ID are located within the app. Can you please clarify the steps from a freshly-activated Telegram account to obtain these two credentials?

Thanks!
Hi Robbie, do you have solved your issue? Regards
Hi Kaganishu. This is an old bug report. I thought it had been addressed. Are you experiencing the same issue?
Hi again, you're referring to documentation's page https://docs.nemslinux.com/usage/notify-...y-telegram?
Pages: 1 2 3 4 5 6