Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

Begonnen von viegener, 20 Juni 2015, 18:59:41

Vorheriges Thema - Nächstes Thema

juergen012

#30
Hallo Johannes, danke für die Antwort.
Mein Startscript sieht so aus:

/root/tg/bin/telegram-cli -k /root/tg/tg-server.pub -W -C -d -P 12345 --accept-any-tcp -L telegram.log -l 20 -N -R -vvv &

Dort habe ich die Option -U nicht angegeben. Wenn ich mit  /root/tg/bin/telegram-cli -k /root/tg/tg-server.pub starte, kann ich auf der Konsole Nachrichten versenden. Den user telegramd hatte ich auch schon angelegt..ohne Erfolg. Der Fehler besteht.
Beste Grüße Jürgen

Edit: Jetzt läuft es..Habe als root installiert. Jetzt erneut ais user pi..und jetzt funzt es!! Vielen DanK!!

Fhem unter Proxmox

viegener

Hallo Juergen,
schön das es geht.
Ich habe inzwischen nachgeschaut, telegram-cli verwendet standardmässig den Benutzer telegramd wenn es als root läuft (uid 0), das muss ich wohl noch in die Doku und Hinweise mitaufnehmen.
Gruss,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

juergen012

Hallo nochmal, Telegram läuft super mit Fhem. Werde jetzt die anderen Pushdienste durch Telegram ersetzen. Auch der Empfang von Nachrichten klappt super. Mit der Einrichtung des prevMsgPeer hatte ich noch leichte Probleme, aber das läuft jetzt auch. Ich hatte ihn zuerst mit underscore (Vorname_Nachname) eingetragen. Er muss aber ohne _ (Vorname Nachname) eingetragen werden. Dann klappt es.
Beste Grüße und nochmals vielen Dank!! Jürgen
Fhem unter Proxmox

Maista

Hallo Johannes,

ich habe die letzte Zeit kaum Zeit gefunden um mich weiter mit FHEM zu beschäftigen  :-[

Am 20.7 gehts nun erst mal in den Urlaub für 2 Wochen.

Danach hoffe ich, das ich weiter machen kann.

Danke und bis dahin..

Gerd

viegener

Ich habe heute nochmal die Read-Funktion überarbeitet.

Alle eingehenden Meldungen werden nun bearbeitet auch wenn sie eingehen während gerade neue Nachrichten eintreffen.
Im wesentlich also ein Bugfix-Release.

Es findet sich wieder im ersten Post.

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

HolyMoly

Danke dir für dein tolles Modul Johannes,
das ist der Sargnagel für Pushover, Pushbullet und WhatsApp.
Wäre toll wenn das Modul bald in den offiziellen Repo aufgenommen würde  8)

Noch ein tipp für die Leute die telegram-cli bisher manuell starten, hier ist ein einfacheres script um es als service zu starten:

https://github.com/vysheng/tg/issues/373#issuecomment-75162998
FHEM auf Raspi2 & Radxa Rock

viegener

Zitat von: HolyMoly am 23 Juli 2015, 09:08:23
Danke dir für dein tolles Modul Johannes,
das ist der Sargnagel für Pushover, Pushbullet und WhatsApp.
Wäre toll wenn das Modul bald in den offiziellen Repo aufgenommen würde  8)


Danke für die Blumen! Gern geschehen.

Ja mit den Modalitäten für das offizielle Repo muss ich micher erst noch befassen. Wenn es genügend Interesse gibt, kann ich das aber angehen.


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

berlineraxel

Auch ich bin begeistert. Telegram ist eigentlich die optimale Verbindung von Fhem zur Außenwelt !!!
Obwohl die Installation nicht ganz einfach ist (Raspberry).
Ich habe eine Festnetznummer mit telegram Account und ein Account fürs Handy.
Mit secretChat bekomme ich nun verschiedene Meldungen (Anrufe, Schalungen...) und auch steuern kann ich eigentlich auch alles.
Notify zum Schalten:
define tSCHALTEN notify Telegram:msgText.* $EVTPART1 $EVTPART2 $EVTPART3
Beispiel: set Lampe on

Zumindest ging es schon mal;)
Im Moment habe ich ein Problem:
   STATE opened
   defaultSecret 1
...

set Telegram message Hallo

FAIL: 38: can not parse arg #1

Mir ist nicht ganz klar in welcher Reihenfolge die Clients gestartet werden müssen.
Muss z.B. nach einem Raspberry reboot auf dem Handy ein neuer Geheimer Chat gestartet werden ?

Kann in Fhem ein "neuer" Chat erzwungen werden ?
(set Telegram connect???)


Vielen Dank schon mal für Infos

Axel

viegener

Zitat von: berlineraxel am 27 Juli 2015, 17:25:26
Auch ich bin begeistert. Telegram ist eigentlich die optimale Verbindung von Fhem zur Außenwelt !!!
Obwohl die Installation nicht ganz einfach ist (Raspberry).
Ich habe eine Festnetznummer mit telegram Account und ein Account fürs Handy.
Mit secretChat bekomme ich nun verschiedene Meldungen (Anrufe, Schalungen...) und auch steuern kann ich eigentlich auch alles.
Notify zum Schalten:
define tSCHALTEN notify Telegram:msgText.* $EVTPART1 $EVTPART2 $EVTPART3
Beispiel: set Lampe on

Zumindest ging es schon mal;)
Im Moment habe ich ein Problem:
   STATE opened
   defaultSecret 1
...

set Telegram message Hallo

FAIL: 38: can not parse arg #1

Mir ist nicht ganz klar in welcher Reihenfolge die Clients gestartet werden müssen.
Muss z.B. nach einem Raspberry reboot auf dem Handy ein neuer Geheimer Chat gestartet werden ?

Kann in Fhem ein "neuer" Chat erzwungen werden ?
(set Telegram connect???)


Vielen Dank schon mal für Infos

Axel

Hallo Axel,
Danke erstmal und Ja ich sehe auch, dass telegram aus meiner Sicht eine sehr gute Möglichkeit um Benachrichtigungen oder Kommandos nach/von aussen zu erlauben ohne gleich einen direkten Zugang von aussen zu ermöglichen oder seine Daten freizugeben.

Die Kommandosteuerung ist mit der aktuellen Version viel einfacher, denn man kann nun einfach ein Schlüsselwort (Attribut: cmdKeyword) zu definieren, mit dem eine Message anfangen soll. Dann wird automatisch das entsprechende Kommando ausgelöst. Siehe dazu auch weitere einschränkende Attribute.

Ich verwende die secret chat Funktion selber nicht im Produktivbetrieb, da ich meine Chats auf mehreren Devices nutze und das ja mit secret chats nicht geht. Ich versuche mal Deine Fragen zu beantworten:

Bezueglich Reihenfolge: Eigentlich gibt es keine feste Reihenfolge sowohl wenn telegram-cli zuerst gestartet wird oder auch FHEM zuerste versucht den Kontakt aufzubauen sollte es funktionieren. Der STATE "opened" zeigt üblicherweise an, dass eine korrekte Verbindung zwischen FHEM und telegram-cli besteht.

Bezueglich neuen Chat anlegen: Grundsätzlich sind secret chats in telegram nicht auf dem server gespeichert, damit muss der secret chat nach einem Restart neu angelegt werden. Dazu gibt es ja den set-Befehl:
set <devicename> secretChat

Der secret chat kann aber erst benutzt werden, wenn die Gegenstelle diesen bestätigt hat.

Problem ist, dass telegram-cli wenn man mehrfach dieses Kommando absendet neue Chats anlegt, die z.B: so heissen und entsprechend ausgegeben werden:

ANSWER 54
Secret chat !_Peter_Mustermann#2 updated access_hash

ANSWER 59
Encrypted chat !_Peter_Mustermann#2 is now in wait state


In diesem Fall müsste für secret chats in FHEM der defaultPeer als
Peter_Mustermann#2
eingetragen werden. Der nächste Secret Chat heisst dann
Peter_Mustermann#3
und so weiter.

Jetzt nochmal zu Deinem Problem:

Die Fehlermeldung lässt darauf schliessen, dass das Attribute defaultPeer für telegram-cli nicht behandelt werden kann. Vielleicht kannst Du mal schauen, ob Dein Eintrag Leerzeichen enthält und diese durch _ (Unterstrich) ersetzen. Ich nehme aber an, es hängt mit den anderen Punkten zu sammen, dass zuerst ein neuer secret chat angelegt werden muss und deshalb der defaultPeer (arg #1) nicht passt.

Ich habe bisher leider keine Möglichkeit gefunden abzufragen, ob es einen aktiven secret chat gibt und diesen dann bei Bedarf zu eröffnen. Auch der Status des chats (waiting / ok) ist leider nicht überprüfbar im client.

Gruss,
Johannes











Ich habe heute abend mal weiter mit secret chats experimentiert und dabei festgestellt, dass es ein paar Ungereimtheiten im telegram-cli gibt.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

HolyMoly

Hallo Johannes,

kann irgendwie nicht an non-defaultPeers versenden.

set telegram messageTo xxx_xxx Hallo Welt
FAIL: 38: can not parse arg #1

aber in der cli ist der Kontakt angelegt und versenden geht mit
msg xxx_xxx Hallo Welt

geht wunderbar. Woran könnte das liegen?
FHEM auf Raspi2 & Radxa Rock

viegener

Zitat von: HolyMoly am 29 Juli 2015, 12:50:12
Hallo Johannes,

kann irgendwie nicht an non-defaultPeers versenden.

set telegram messageTo xxx_xxx Hallo Welt
FAIL: 38: can not parse arg #1

aber in der cli ist der Kontakt angelegt und versenden geht mit
msg xxx_xxx Hallo Welt

geht wunderbar. Woran könnte das liegen?

Ich weiss das telegram-cli manchmal etwas kritisch ist beim Parsen von Kontaktnamen.

Kannst Du sagen ob der Kontaktname Sonderzeichen oder Umlaute enthält? Wenn ich recht weiss ist auch Gross- und Kleinschreibung signifikant.
Kannst Du mal die Ausgabe von folgendem Befehl überprüfen, ob der von dir verwendete Kontakt korrekt gelistet ist (allerdings ohne den Unetrstrich zwischen Vor- und Nachnamen)
set telegram raw contact_list


Ansonsten werde ich gerne heute abend nochmal übrprüfen, ob ich das Probelm nachstellen kann.
Gruss,
Johannes


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

co010

Hallo,

da ich erst anfange mit FHEM hätte ich folgende Frage zur Einbindung von Telegram in meinen FHEM Server auf meinen Pi mit FHEM,

-Ich habe bereits das Programm zum Senden und Empfangen von Nachrichten mit Telegram erfolgreich auf meinen Pi nach Anleitung hinbekommen,also ich kann Nachrichten Senden und Empfangen auf Putty.

Frage:
einloggen auf Putty mache ich mit
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub     (Pfad für die tg-server.pub)
dann klappt der Nachrichtenversand ohne Probleme.
meinen Kontakt R._Muster hab ich angelegt,

wie muss ich jetzt das Modul-Telegram in FHEM integrieren ? ,und welche Attribute müssen noch gesetzt werden um mit FHEM zu kommunizieren.
In welchen Ordner muss die Datei 70_Telegram.pm hochgeladen werden.

Danke
mfg Co010

viegener

Zitat von: co010 am 01 August 2015, 11:45:24
Hallo,

da ich erst anfange mit FHEM hätte ich folgende Frage zur Einbindung von Telegram in meinen FHEM Server auf meinen Pi mit FHEM,

-Ich habe bereits das Programm zum Senden und Empfangen von Nachrichten mit Telegram erfolgreich auf meinen Pi nach Anleitung hinbekommen,also ich kann Nachrichten Senden und Empfangen auf Putty.

Frage:
einloggen auf Putty mache ich mit
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub     (Pfad für die tg-server.pub)
dann klappt der Nachrichtenversand ohne Probleme.
meinen Kontakt R._Muster hab ich angelegt,

wie muss ich jetzt das Modul-Telegram in FHEM integrieren ? ,und welche Attribute müssen noch gesetzt werden um mit FHEM zu kommunizieren.
In welchen Ordner muss die Datei 70_Telegram.pm hochgeladen werden.

Danke
mfg Co010

Wenn Du telegram-cli bei Dir starten kannst müsstest Du das Kommando als "daemon", also im Hintergrund starten, so dass es läuft auch wenn Du nicht über putty verbunden bist und fhem sich damit verknüpfen kann.

Ich nehme an, Dein fhem läuft auf demselben pi wenn ich Deine Beschreibung richtig verstehe:

Analog zum Komando in der Doku müsstest Du etwa folgendes Kommando eingeben:

/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -C -d -P <portnumber> -L <logfile> -l 20 -N -R &

Bei portnumber solltest Du eine Zahl z.B. zwischen 10000 und 30000 verwenden (z.B. 11111). Diese muss natürlich ohne < > eingefügt werden.

Bei logfile z.B. den Namen einer Datei in /home/pi in der Du die logs von telegram-cli ablegen willst. Also z.B. /home/pi/telegram.log
Wenn diese Datei zu gross wird, kannst Du statt -l 20 auch einen kleinen Wert verwenden z.B. -l 2

Damit kannst Du dann in fhem einen telegram device anlegen (hierbei den oben gewählten port verwenden).

Dieses Kommando muss bei jedem Neustart des pi (nicht von fhem) wieder ausgeführt werden, damit telegram funktioniert.

Ich hoffe das hilft und passt jetzt auch zu Deiner Umgebung,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

co010

Hallo,

ich habe jetzt diese Zeile in der Putty Konsole eingetragen...
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -C -d -P 11111 -L /home/pi/telegram.log -l 10 -N -R &

den Port habe ich auf 11111 gesetzt
dann habe ich den Pi neu gestartet
als Device hab ich dieses eingetragen
define Telegram Telegram raspberrypi:11111      -das Device wurde angelegt aber es meldet   -STATE   disconnected.

was mache da falsch ?    Sorry-Anfänger halt.

mfg co010







DanielK

Hallo co010,

wie Johannes im Post über Dir geschrieben hat, muß der Befehl nach einem Neustart wieder eingegeben werden. Sonst läuft Telegram nicht...
Gruß Daniel