Telegram ist eine schneller, kostenloser und vor allem verschlüsselter Nachrichtendienst der sich gut dazu eignet um Meldungen der Heimautomatisierungslösung FHEM auf die Mobilgeräte zu bringen. Mittlerweile gibt es zwei verschiedene Möglichkeiten um Telegram in Fhem einzubinden. Es sei die neuere Version per Bot API empfohlen, da diese wesentlich einfacher einzurichten ist.
Neue Version per Bot API:
in Telegram an den BotFather schreiben:
/newbot
MyFhemBot
MyFhemBot
/setuserpic
der BotFather gibt dann ein Token à la 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw zurück.
in Fhem dann eine TelegramBot Instanz definieren:
1 2 3 |
define telegram TelegramBot 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw attr telegram pollingTimeout 20 attr telegram defaultPeer @yourTelegramHandle |
Da der Bot nicht von sich aus Kontakt aufnehmen darf, per telegram eine Nachricht an @MyFhemBot senden. Danach kann der Bot mit bekannten peers per
1 |
set telegram messageTo @yourTelegramHandle Dies ist eine Nachricht von FHEM |
oder mit dem defaultPeer per
1 |
set telegram message Dies ist eine Nachricht von FHEM |
kommunizieren.
Alte überholte Version per Telegram cli:
Der Telegram Client tg lässt sich folgendermaßen installieren:
1 2 3 4 |
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make git clone --recursive https://github.com/vysheng/tg.git && cd tg ./configure make |
Nun kann man testen, ob das telegram-cli grundsätzlich funktioniert
1 |
bin/telegram-cli -k tg-server.pub |
Beim ersten Start ist die Registrierung eines Accounts mit einer Telefonnummer nötig. Dazu wird per SMS oder Anruf ein Code zur Verifizierung übermittelt. Nach erfolgreicher Registrierung müssen zuerst die benötigten Kontakte angelegt werden :
1 |
add_contact <phone-number> <first-name> <last-name> |
Nun sollte überprüft werden, ob Nachrichten verschickt und empfangen können werden:
1 |
msg Julian_Tatsch Dies ist eine ausgehende TestNachricht |
Bei Bedarf kann noch ein Profilname, Benutzername und Profilbild für den Telegram Account gesetzt werden:
1 2 3 4 |
set_profile_name Augusten FHEM set_username AugustenFHEM wget -O /opt/fhem/www/images/default/fhemicon_highres.png http://archive.yeasoft.net/xbmcaddons/service.fhemcinema/icon.png set_profile_photo /opt/fhem/www/images/default/fhemicon_highres.png |
Funktioniert dies alles, kann Telegram als Daemon gestartet werden. Dazu verwende ich folgendes Script von Fizzle:
1 2 3 4 |
sudo wget -O /etc/init.d/telegram-daemon https://gist.githubusercontent.com/jmtatsch/b7a52d17c7b0128601a1/raw/bb9311ba5c91db4d5a1fae808b7a0545d12c33f5/telegram-daemon sudo chmod 755 /etc/init.d/telegram-daemon sudo nano /etc/init.d/telegram-daemon update-rc.d telegram-daemon defaults |
Der Benutzer tatsch und die binary Pfade müssen auf ihrem System angepasst werden. Der Dienst kann nun ganz bequem per
1 2 3 |
sudo service telegram-daemon start sudo service telegram-daemon stop sudo service telegram-daemon restart |
gestartet, gestoppt, bzw. neu gestartet werden.
Nun muss noch das FHEM Modul 70_Telegram.pm von viegener installiert werden:
1 |
wget -O /opt/fhem/FHEM/70_Telegram.pm https://raw.githubusercontent.com/viegener/Telegram-fhem/master/70_Telegram.pm |
in FHEM muss das Modul dann neu geladen werden. Danach kann eine telegram Instanz definiert, ein Standardempfänger gesetzt und eine Testnachricht versendet werden:
1 2 3 4 |
reload 70_Telegram define telegram Telegram localhost:2391 attr telegram defaultPeer Julian_Tatsch set telegram message Dies ist eine Nachricht von FHEM |