Controlling OpenHAB by Telegram?

Tags: #<Tag:0x00007f6170187cd8> #<Tag:0x00007f6170187b98> #<Tag:0x00007f6170186e28>

you can use node-red with openhab and telegram nodes to control openhab by telegram.
for openhab and node-red see https://community.openhab.org/t/node-red-as-alternative-rule-engine/29509
if you are using openhabian it is very easy to install.

Any how-to about setting up a working telegram-openhab integration + node-red?

1 Like

Does this still work with OpenHAB2?

If so, can you explain a bit more, what is needed to make it work?

So far I installed the XMPP action addon and sending messages from OpenHAB to the messenger app (Conversations on an Android phone) works. Also messages sent to the OpenHAB server are shown in the log. But I don’t see a way to e.g. switch on a lamp by sending an XMPP message to the OpenHAB server.

Not sure, that it works with OH2, but for the latest OH1 it works perfectly for me:
( in config: xmpp:consoleusers=)

Vladimir Grebenschikov:
items Light*

OpenHAB:
Lights (Type=GroupItem, BaseType=SwitchItem, Members=28, State=OFF)
Light_1_Kitchen_Center (Type=SwitchItem, State=OFF)
Light_1_Kitchen_Zone (Type=SwitchItem, State=OFF)

Also, I’ve small Lua script for telegram-cli command line tool, which provides same functionality over telegram messenger, connecting to console port (localhost:5555), like:

$ telnet localhost 5555
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
osgi>
osgi> openhab items Light*
Lights (Type=GroupItem, BaseType=SwitchItem, Members=28, State=OFF)
Light_1_Kitchen_Center (Type=SwitchItem, State=OFF)
Light_1_Kitchen_Zone (Type=SwitchItem, State=OFF)

Thanks for your reply.

I don’t use the telegram messenger, so I would prefer to do this with XMPP (Conversations).

When sending a message from Conversations to OpenHAB I can see in the log that the message was received:

[DEBUG] [hab.action.xmpp.internal.XMPPConsole] - Received XMPP message: items W* of type chat

But OpenHAB doesn’t send an answer to Conversations.

On the other hand I created a rules file which sends a message from OpenHAB to Conversations when e.g. a thing goes OFFLINE. This works so far.

So the question is: what is missing here?

Hi all, just to know, is someone working on telegram IO module ?
Have a nice day

1 Like

I have the same issue in OH2, and think I tracked it down. No idea how to fix it, but might try copying the code and building it, but figure it’s a much bigger change underneath.

In OH2, org.openhab.io.console.ConsoleInterpreter is provided by org.openhab.core.compat1x, and the handle*() functions are empty.

In OH1 they aren’t

For what it’s worth there is another workaround.

If you use Jython there is the python-telegram-bot module. I do everything in python anyway and this way it nicely integrates into my automatization scripts.

Put the telegram module it into your library paths together with the other dependencies (future and certifi)

Unfortunatelly jython appears to handle sockets slightly different (explanation i don’t really understand) and you need to change the shipped urllib3. There is a platform dependent function is_connection_dropped(), I had to adjust:

sed -i 's/return bool(wait_for_read(sock, timeout=0.0))/return False/g' python-telegram-bot-10.1.0/telegram/vendor/ptb_urllib3/urllib3/util/connection.py

After installing the dependencies you can copy the telegram-module’s example echobot to your jython scripts folder to get started. This way once the telegram bot receives a message all openhab-jython functions can be used directly without running another abstraction layer.

Hello guys,
I had same problem, so I decided to write a simple bridge application in java (spring boot) to control OpenHab using Telegram and REST API.
It supports only 4 commands at the moment, but works pretty well and is easily extendable. You can run it on the same machine with OpenHab.

Here is a description and instructions how to use it:

Best regards

2 Likes

For whom it may concern, I just use a python script that constantly checks the telegram bot “in the background”, creates a buttons keyboard in the chat after /menu command and receives any button press (commands to OpenHAB) forwarding to OH via MQTT

Control OpenHAB2 with Telegram and simple python script

1 Like

OMG ! I would love a Telegram Binding and as bonus the IO module. I cannot migrate everything because of that. I am right now using some fonction like my home ask me something and wait for an answer.

For exemple:

- Did you put the trash "Hausmull" outside for tomorrow ?
NO | NOT NEEDED | YES
- NO
- Ok I will remind you to do it later.
...

Or

- I will close the shutter of the terrace if it is fine for you.
NOT TONIGHT | REMIND ME IN X MIN | ...

Or

- Someone is at the door. + pic. Should I open ?
YES | NO

I can write the answer or click on Telegram action button.

About the I/O module, it will be mostly for my wife. instead of asking me per message I will tell her to ask the bot :smiley:

Actually is there anything implemented with the Human Language Interpreter ?

unfortunately I am not Java dev :frowning:

It’s here now. Example how to send a button to Telegram.