Update: 05.03.2016 Das ist ein alter Blog-Beitrag. Bitte den Telegram-Bot benutzen, weil dieses Modul weiterentwickelt wird. Der Telegram-Bot ist einfacher zu installieren, eine Hilfe gibts in der Wiki hier
Die ganze Idee fängt mit diesem Thread im Fhem-Forum an: siehe hier
Um nicht die ganzen Thread durchzulesen, wurde auch schon abgekürzt etwas in der Wiki geschrieben, siehe hier.
Wichtig ist es, zunächst einen Account, genauer gesagt zwei (oder mehrere für die Familienmitglieder) Accounts bei Telegram zu erstellen. Einen Account für das Smartphone, ein anderes für Fhem. Ich habe meine Festnetznummer für Fhem bei den Einstellungen eingegeben. Ihr könnt Euch den Aktivierungscode nämlich auch via Voice mitteilen lassen, sonst kommt er per SMS. Dann muss der oder die Kontakte, mit der Fhem nach außen kommunizieren soll, mit add_contact in die Liste hinzugefügt werden. Die genaue Beschreibung für die Installation von Telegram auf Fhem findet ihr auch in dem Thread.
Meine Meinung nach eine gute Idee, sie wird bei mir Pushover ablösen, welches – wie der Name schon sagt – nur Mitteilungen von Fhem senden kann.
Falls Fragen, fragen in den Kommentaren und viel Spaß beim Ausprobieren!
Hier ein Screenshot, wie Telegram in Fhem ungefähr aussehen sollte, wenn es richtig installiert wurde. Wichtig ist hier das State = opened
DEF |
1234
|
DeviceName
|
localhost:1234
|
FD
|
75
|
NAME
|
user1
|
NR
|
1652
|
PARTIAL
|
|
Port
|
1234
|
Protocol
|
telnet
|
REMAINING
|
|
STATE
|
opened
|
TYPE
|
Telegram
|
lastmessage
|
User xxx online (was online [2015/08/12 21:41:32])
|
sentMsgPeer
|
xxx
|
sentMsgResult
|
NO RESULT
|
sentMsgSecure
|
normal
|
sentMsgText
|
FHEM INITIALIZED
|
Autostart:
Blog-Leser Georg hat noch einen Tip, wie man das Problem mit dem Autostart löst:
Er startet den Dienst einfach 20 Sekunden später, und so geht es:
Die Datei /etc/rc.local
um folgenden Eintrag erweitern (vor dem exit 0):
/bin/sleep 20 && /etc/init.d/telegram-daemon start
Infos zum init.d telegram-daemon findet ihr oben in den Link zum Fhem-Forum.
Update 13.09.2015: Der Vorteil von Telegram gegenüber von Pushover ist, das man die Versendung von Nachrichten auch bi-direktional verwenden kann. So kann man beispielsweise auf dem Smartphone eine Nachricht schreiben und mit
pt 30
text v1 0 380 {"Info: ".ReadingsVal("user1","msgText",0)}
erscheint diese Info auf dem InfoPanel (-> Blog-Beitrag und -> Blog-Beitrag).
Um diese Meldung nach eine gewissen Zeit wieder automatisch zu löschen, nutze ich bei Fhem den AT-Befehl und schicke eine Nachricht an das System selber
define trigger_Telegram_Cleanup at +*01:00:00 setreading user1 msgText -
Hier wird die Nachricht nach einer Stunde gelöscht.
Aktionen mit Telegram von Fhem ausführen:
Stellen wir uns einmal vor, wir würden jede Minute ein Camerabild machen, welches wir auf /opt/fhem/www/snapshots/snap.jpg speichern.
Wir könnten jetzt von unterwegs dieses Snapshot anfordern und uns das Kamerabild per Telegram auf das Smartphone schicken lassen.
Wir müssen an unserem Bot in Fhem ein Codewort schicken, sodass der Befehl von Fhem ausgeführt werden kann. Das Attribut bei Fhem heisst: cmdKeyword. Wir legen als cmdKeyword bspw. das Wort Fhem fest. Möchten wir nun ein aktuelles Cam-Bild empfangen sagen wir hier:
Fhem set user1 sendImage /opt/fhem/www/snapshots/snap.jpg
Mit diesem Befehl schicken wir mit dem Code-Wort Fhem an den user1 (Name des Telegram-Devices) eine Aufforderung in dem Pfad /opt/fhem/www/snapshots/snap.jpg zu schauen und die jpg zu posten. Wichtig ist hier vorab einmal das Attribut pollingTimeout auf 1 zu setzen.