OpenHab can make Telegram Phone Calls now! (with TTS Voice)

Since a couple of weeks, there is a free API that you can use to make Telegram Phone Calls (with TTS Voice).

It will ring your phone and “read” the message that you specify. It is very useful for urgent notifications like Alarms, Fire, etc.

Instructions are here and very easy to follow with OpenHab:

https://www.callmebot.com/blog/telegram-phone-calls-from-openhab/

Has anybody tried it?

4 Likes

Could also be a nice feature for visually challenged people.
No did not try it.

ohhhh and

Welcome to the openHAB Community :heart:

Thank you! I’m new in OpenHab (moving from HomeAssistant) so I might have some basic questions for this great community. :wink:

Have you tried it with OH?

Don’t feel shy about asking questions, but remember there is a great guide which can help you helping us to help you. YEA confusing I know :smiley:

I’m trying it right now. I was using it with HomeAssistant but I see that it is much easier with OpenHab because I can use directly the SendHttpGetRequest Action instead of executing a shell wget command.

2 Likes

Nice, let us know how it works out as others might find this helpful. :wink:

Hmm, can’t get it working with the rules

> [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'TestCall': An error occurred during the script execution: Couldn't invoke 'assignValueTo' for feature JvmVoid: (eProxyURI: anrufen.rules#|::0.2.0.2.0.1::0::/1
Same error in both versions??

And I don’t get a phone call when trying with the browser either.

Ups: I totally missunderstood the HowTo, you NEED and can use ONLY a registered phone number. That’s why I didn’t get all call.:slight_smile:

And trying to get an ID results in no TelegramID found!

Works for me - great!
Just don’t hand it any figures such as the time or connection ID. It’ll properly read that out loud in English (“fourty-two gazillion …”).
Oh and it keeps repeating the message until you hang up - if anyone knows how to parametrize the API call to avoid that please let me know.

I got that error when I called the URLEncoder method but forgot to assign the result to a variable.

Of course, Telegram has to know the recipient. The call goes end-2-end to Telegram (not PSTN), so it has to be a valid telegram user ID.
Usually that is your mobile number but I guess it would probably also work with a registered user name.

In order to get the “Telegram ID” it is obviously not enough to enter the phone number on the page linked with “Get Telegram ID”.

How did it work for you?

I have tried with that example code (correcting the errors), with sendHttpGetRequest, but I didn’t got any call. Tried with my alias and with my phone number also…

See settings in your telegram app for your name to use as the recipient.
By default that’s your phone number in E.164 format +ccaaaaassssssss,
cc=country code,aaaaa=area code, ssssssss=subscriber number

    val urlmsg = URLEncoder::encode("Hello, dies ist ein telegram Test", 'UTF-8')
    sendHttpGetRequest("http://api.callmebot.com/start.php?user=+49xxxxxxxxxxx&lang=de-DE-Standard-B&text=" + urlmsg)

Yes that’s how I have tried it… and with the alias also…
Nothing helped :confused:

Doublecheck your Telegram Settings (Privacy and Security).
Ensure that you can receive “Calls” and if you want to use your phone number, enable “Phone Number” in the same section. If you select “My Contacts”, ensure that you add the bot user to your contacts (@CallMeBot_API)