Is Telegram working?
-
Hi
I just enabled the Telegram profile in my notification.yaml file. I added my bot ID and Chat ID.
I then added a notify action in a rules Reaction, but no notification is received to my phone.
I can run the raw HTTPS request URL in a browser and that works OK and my notification is received OK.
Also I wasn't sure what this means and I tried it commented out and not.
default_disable_notification: "false"
Likewise with this one:
default_parse_mode: ""
Also I see there is a bug listed here already, maybe related?
Thanks
-
The bug (that is fixed and there is an announced update to the docker images with that fix) was simply that choosing the default format (parse mode) and notification were causing the UI to flag the fields as missing (they were not marked optional, so the UI assumes required). You can either update the docker image (if you are using docker), or just choose non-default/from-profile values in those drop-downs for testing.
Other than the UI glitch, I haven't heard of any issues.
I'll be spinning a new release today.
-
wmarcolinwrote on Jun 17, 2021, 4:27 PM last edited by toggledbits Jun 17, 2021, 12:28 PM
I am using normal Telegram since it was released, with the HTML and Markdown format settings.
I share below the configuration that I have if it helps in something.
# Telegram Telegram: profiles: default: # description - A friendly description of this profile (for menus) description: Default Family # # api_url - Access URL for Telegram API. Default is https://api.telegram.org/ api_url: https://api.telegram.org/ # # bot_token - (required) Bot Token, from Telegram. See: https://core.telegram.org/bots bot_token: "17______83:AAX____________________dBleUXslGTGk" # # default_chat_id - (required) Default chat ID to use if not specified in message. See # this link for how to get chat ID: # https://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id default_chat_id: "-58_____24" # # default_disable_notification - Default notification flag, may be either "true" # or "false". The system default is "false" # (false == notification enabled/not disabled). default_disable_notification: "false" # # default_parse_mode - Default message format/parse mode. The system default is # blank, for plain text. Other options: MarkdownV2, HTML # See: https://core.telegram.org/bots/api#formatting-options default_parse_mode: "HTML" wilson: # description - A friendly description of this profile (for menus) description: Default Wilson # # api_url - Access URL for Telegram API. Default is https://api.telegram.org/ api_url: https://api.telegram.org/ # # bot_token - (required) Bot Token, from Telegram. See: https://core.telegram.org/bots bot_token: "17______83:AAER_UN_______________________lGTGk" # # default_chat_id - (required) Default chat ID to use if not specified in message. See # this link for how to get chat ID: # https://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id default_chat_id: "154_____34" # # default_disable_notification - Default notification flag, may be either "true" # or "false". The system default is "false" # (false == notification enabled/not disabled). default_disable_notification: "false" # # default_parse_mode - Default message format/parse mode. The system default is # blank, for plain text. Other options: MarkdownV2, HTML # See: https://core.telegram.org/bots/api#formatting-options default_parse_mode: "HTML"
-
Yes my notification.yaml file looks the same as above apart from I am not using HTML I left it blank for plain text.
I have created a Global Reaction as a test with a notify for Telegram. It's still not working. I've also updated to the very latest version of MSR that fixes those two fields being required vs optional.
This is what I see in the log file. They are not my real bot and chat ID's I have changed them.
2021-06-18T11:50:50.594Z <Engine:5:Engine.js:953> Engine#1 enqueued reaction re-kq29nxzw as 43 2021-06-18T11:50:50.595Z <Engine:5:Engine.js:1108> _process_reaction_queue() wake-up! 2021-06-18T11:50:50.599Z <Engine:5:Engine.js:1069> _process_reaction_queue() running task 43 { "tid": 43, "id": "re-kq29nxzw", "rule": --undef--, "__reaction": GlobalReaction#re-kq29nxzw, "next_step": 0, "status": 0, "ts": 1624017050481, "parent": --null--, "__resolve": --function--, "__reject": --function--, "__promise": [object Promise] } 2021-06-18T11:50:50.599Z <Engine:NOTICE> Starting reaction Test Telegram (re-kq29nxzw) 2021-06-18T11:50:50.600Z <Engine:5:Engine.js:1216> Engine#1 reaction re-kq29nxzw step 0 notify Telegram with { "message": "This is a TEST", "profile": "default" } 2021-06-18T11:50:50.601Z <Engine:5:NotifyTelegram.js:159> NotifyTelegram sending profile default notification request: This is a TEST 2021-06-18T11:50:50.604Z <Engine:INFO> Test Telegram all actions completed. 2021-06-18T11:50:50.605Z <Engine:5:Engine.js:1073> _process_reaction_queue() task returned, new status -1; task 43 2021-06-18T11:50:50.608Z <Engine:5:Engine.js:1108> _process_reaction_queue ending with 0 in queue; none delayed/ready; waiting 2021-06-18T11:50:50.697Z <Engine:ERR> NotifyTelegram failure response from endpoint: 404 Not Found 2021-06-18T11:50:50.699Z <Engine:ERR> NotifyTelegram fres=[object Response] 2021-06-18T11:50:50.700Z <Engine:INFO> NotifyTelegram request URL: https://api.telegram.org/botBBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN/sendMessage 2021-06-18T11:50:50.701Z <Engine:INFO> NotifyTelegram request body: {"text":"This is a TEST","chat_id":"314603256"} 2021-06-18T11:50:50.702Z <Engine:ERR> NotifyTelegram request to https://api.telegram.org/botBBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN/sendMessage failed: Error: NotifyTelegram request failed 2021-06-18T11:50:50.703Z <Engine:ERR> Engine#1 reaction re-kq29nxzw step 0 notification (Telegram) failed: Error: NotifyTelegram request failed
My raw HTTPS url's that I am currently using, the bot ID has an extra part at the beginning.
For example like this:
https://api.telegram.org/bot2188872596:BBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN
Where as in the MSR log its removed the "2188872596:" part and just shows this:
https://api.telegram.org/botBBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN
Which results in the 404 error etc.
Thanks
-
toggledbitswrote on Jun 18, 2021, 1:44 PM last edited by toggledbits Jun 18, 2021, 10:52 AM
Did you include it in the config?
Edit: clarifying, by "it" I mean the number (bot ID) before the colon (and the colon). The
bot_token
value in the config should be on the formnnnnnn:mixedlongstring
. The object literally copies the entirebot_token
string onto the end of the URL; there's not filtering or editing of any kind, so your log post suggests it's not there.Did you enclose it in quotes?
-
cw-kidreplied to toggledbits on Jun 18, 2021, 5:32 PM last edited by cw-kid Jun 18, 2021, 1:34 PM
@toggledbits said in Is Telegram working?:
Did you include it in the config?
Yes and No.
Seems I needed to restart Reactor engine.
I now see the correct full bot ID string in the log file OK.
Also I had to remove "bot" from the yaml file as MSR puts than in for you.
However its still not working.
I am still getting 404.
This is what I see now in the log:
2021-06-18T17:25:12.205Z <Engine:INFO> Enqueueing "Test Telegram" (re-kq29nxzw) 2021-06-18T17:25:12.210Z <Engine:5:Engine.js:953> Engine#1 enqueued reaction re-kq29nxzw as 6 2021-06-18T17:25:12.212Z <Engine:5:Engine.js:1108> _process_reaction_queue() wake-up! 2021-06-18T17:25:12.215Z <Engine:5:Engine.js:1069> _process_reaction_queue() running task 6 { "tid": 6, "id": "re-kq29nxzw", "rule": --undef--, "__reaction": GlobalReaction#re-kq29nxzw, "next_step": 0, "status": 0, "ts": 1624037112207, "parent": --null--, "__resolve": --function--, "__reject": --function--, "__promise": [object Promise] } 2021-06-18T17:25:12.216Z <Engine:NOTICE> Starting reaction Test Telegram (re-kq29nxzw) 2021-06-18T17:25:12.217Z <Engine:5:Engine.js:1216> Engine#1 reaction re-kq29nxzw step 0 notify Telegram with { "message": "This is a TEST", "profile": "default" } 2021-06-18T17:25:12.218Z <Engine:5:NotifyTelegram.js:159> NotifyTelegram sending profile default notification request: This is a TEST 2021-06-18T17:25:12.222Z <Engine:INFO> Test Telegram all actions completed. 2021-06-18T17:25:12.223Z <Engine:5:Engine.js:1073> _process_reaction_queue() task returned, new status -1; task 6 2021-06-18T17:25:12.226Z <Engine:5:Engine.js:1108> _process_reaction_queue() ending with 1 in queue; waiting for 1 (next delayed task) 2021-06-18T17:25:12.349Z <Engine:ERR> NotifyTelegram failure response from endpoint: 400 Bad Request 2021-06-18T17:25:12.351Z <Engine:ERR> NotifyTelegram fres=[object Response] 2021-06-18T17:25:12.352Z <Engine:INFO> NotifyTelegram request URL: https://api.telegram.org/bot2188872596:BBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN/sendMessage 2021-06-18T17:25:12.352Z <Engine:INFO> NotifyTelegram request body: {"text":"This is a TEST","chat_id":"314603256"} 2021-06-18T17:25:12.353Z <Engine:ERR> NotifyTelegram request to https://api.telegram.org/bot2188872596:BBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN/sendMessage failed: Error: NotifyTelegram request failed 2021-06-18T17:25:12.354Z <Engine:ERR> Engine#1 reaction re-kq29nxzw step 0 notification (Telegram) failed: Error: NotifyTelegram request failed
-
You're now getting a 400, not a 404. That likely means that the chat ID is invalid. Is the bot a member of that chat?
-
Oh yes sorry 400 not 404.
Chat ID is correct and yes I think it must be a member. Because I am using the same bot ID and the same chat ID in a raw HTTPS command and the notifications work and go to my "Vera Group" aka my chat ID.
This is the type of HTTPS command I've been using previously:
https://api.telegram.org/bot2188872596:BBF5RD5P-kDty8ZTB88e--GB5T5ENpId4xN/sendMessage?chat_id=-314603256&text=This is a test
-
The chat ID in your HTTPS fetch has a minus sign at the front, while the chat ID in MSR does not. Check you configuration again.
-
Well spotted I didn't even notice that.
I added a minus sign also in the notification.yaml file and now its working from MSR.
-
@toggledbits minus is allowed, and is a message for a group. When it does not have a minus sign, it is for a single user.
-
@cw-kid this comment about having the letters bot in front is already added by MSR, we have to be careful, because when we copy the ID when it is generated in Telegram it comes with these letters bot in front that has to be removed when configuring. I had the same problem until I identified this in the log appearing twice botbot.
-
Where are you seeing that? I can't screenshot the Android app because it won't let me (security policy--smart!), but the response to
/newbot
from BotFather does not contain the string "bot" in front of the key. Are you seeing it elsewhere? Maybe iOS? -
@wmarcolin said in Is Telegram working?:
I had the same problem until I identified this in the log appearing twice botbot.
Yes indeed, that is what I was seeing in the log file also.
-
Well first I don't remember how to get the ID, I don't remember when the number was generated lol
I think what may have created confusion, was that when using a direct call, as the example below is necessary to put the bot, but when configuring the MSR not, because the application already adds the information.
https://api.telegram.org/bot177_____83:AAER___________________________GTGk/getUpdates
I think the situation is closed, we just have to stay alert to some other user who mentions that Telegram is not working pass this orientation.
-
The key/token in the response from BotFather when creating the bot will not have 'bot' prepended to it, so that makes sense.
-
Yesterday I converted all my rules to use the now inbuilt notify for Telegram, rather than sending Http requests out as I was.
No further problems and everything seems to be working well.
Thanks for adding Telegram support, I had previously requested it, but at that time it sounded like it would not be added.
-
Hi!
I've been trying to get Telegram to work, but I think it's something I'm doing wrong in the notification.yaml. It's working from within Home Assistent, but not with MSR. This is from my Notification.yaml:Telegram: profiles: default: # description - A friendly description of this profile (for menus) description: Telegram # # api_url - Access URL for Telegram API. Default is https://api.telegram.org api_url: https://api.telegram.org # # bot_token - (required) Bot Token, from Telegram. See: https://core.telegram.org/bots bot_token: "2091____________(blanked for security reason)____________wH2Z0" # # default_chat_id - (required) Default chat ID to use if not specified in message. See # this link for how to get chat ID: # https://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id default_chat_id: "77________07" # # default_disable_notification - Default notification flag, may be either "true" # or "false". The system default is "false" # (false == notification enabled/not disabled). default_disable_notification: "false" # # default_parse_mode - Default message format/parse mode. The system default is # blank, for plain text. Other options: MarkdownV2, HTML # See: https://core.telegram.org/bots/api#formatting-options #default_parse_mode: ""
I have tried both with and without qoutes " " around chat_id and bot_token. Am I missing something? I'm on MSR ver 21337. Thanks in advance.
/Fanan -
Telegram is working fine for me. Any chance you've looked at your logs?
-
@toggledbits This is my log (I changed my personal info):
[latest-21342]2021-12-09T18:38:18.936Z <Engine:NOTICE> Resuming reaction Tända hos Khalisi<SET> (rule-kuvhc9mc:S) from step 1 [latest-21342]2021-12-09T18:38:18.939Z <Engine:INFO> Tända hos Khalisi<SET> all actions completed. [latest-21342]2021-12-09T18:38:19.248Z <NotifyTelegram:ERR> NotifyTelegram failure response from endpoint: 400 Bad Request [latest-21342]2021-12-09T18:38:19.248Z <NotifyTelegram:INFO> NotifyTelegram request URL: https://api.telegram.org/bot2091333304:AXXpXQDQJ1L19xQoI1Gyc9i5XEH0uIwH2Z0/sendMessage [latest-21342]2021-12-09T18:38:19.249Z <NotifyTelegram:INFO> NotifyTelegram request body: {"text":"Hello!!","chat_id":"7777777","disable_notification":"false"} [latest-21342]2021-12-09T18:38:19.249Z <NotifyTelegram:ERR> NotifyTelegram request to https://api.telegram.org/bot2091550404:AXXXXQDQJ1L19xQoI1Gyc9i5XEH0uIwH2Z0/sendMessage failed: Error: NotifyTelegram request failed [latest-21342]2021-12-09T18:38:19.249Z <Engine:ERR> Engine#1 reaction rule-kuvhc9mc:S step 1 notification (Telegram) failed: Error: NotifyTelegram request failed [latest-21342]2021-12-09T18:38:19.250Z <NotifyTelegram:ERR> NotifyTelegram failure response text: {"ok":false,"error_code":400,"description":"Bad Request: chat not found"}