Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

Zitat von: co010 am 19 August 2015, 10:43:56
Hallo,
da ja nun das versenden von Nachrichten richtig gut funktioniert,möchte ich Fotos von meiner IpCam aus dem Ordner "/opt/fem/www" ein Bild IPCam_Hof_snapshot.jpg mit Telegram auf mein Handy senden,was muß ich da eingeben ?

mfg co010
Eigentlich sollte das ganz einfach sein (angenommen Dein telegram device heisst mytelegram:

set mytelegram sendPhoto /opt/fhem/www/IPCam_Hof_snapshot.jpg

Alternativ noch bei sendPhotoTo einen telegram-User (mit Unterstrich statt Leerzeichen !) vor dem Pfad angeben.

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

viegener

#76
Zitat von: fh168 am 13 September 2015, 16:40:20
Ich wollte nur ein kurzes Feedback geben, Telegram klappt seit einigen Wochen tadellos.

Genial finde ich, das man das auch zum Informationsaustausch mit einem Tablet (Stichwort InfoPanel) nutzen kann.

Hi Robin,
Danke für das Feedback und den blog-Eintrag.
Die Idee mit der Nachricht auf dem Info-Display ist richtig gut, auch wenn ich bei uns noch der einzige bin der mein schönes Info-Display auf dem Tablet-UI nutzt...

Das mit dem Autostart steht auf meiner Todo-Liste, es wäre auch eine Option ganz auf telegram-cli zu verzichten, in dem man das neue bot-api von telegram verwendet: https://core.telegram.org/bots/api. (Danke an igami für den Hinweis). Das erfordert allerdings quasi eine Neuentwicklung und jeder Benutzer müsste sich dann für den Bot bei telegram registrieren um einen Schlüssel zu bekommen.

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

fh168

Hallo Johannes,

ja, leider ist die Installation immer noch zu schwierig. Mein Blog-Beitrag hat zumindest etwas beigetragen, Telegram mit Fhem etwas näher zu bringen. 190 User haben meinen Beitrag diesen Monat gelesen, und ich vermute, das einige es bald im Einsatz haben.

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

BioS

Ahoi Johannes,

das is ja ein cooles Modul, an telegram wollte ich mich nach meinem Jabber Modul ranmachen.. hehe ist jetzt wohl sinnlos ;)
Hast du dir mal überlegt das Modul vielleicht an die jetzt vorhandene Bot-API/Telegram-API anzulehnen?

Ich hab das bei mir mit C# rudimentär gemacht um Statusnachrichten und Fotos einer Webcam über Telegram an mich zu schicken.
Dabei ist mir aufgefallen dass ich aussschließlich den Web-Client brauche um das meiste (Connection handling etc.) damit abzufackeln und das die Bot-API ziemlich stabil und schnell ist.

Damit würdest du dir das Linux-Only Thema sparen und du könntest die End-to-End Encryption benutzen.

Nur so eine Überlegung.. :)

EDIT: ich hab jetzt erst alle Foren-Beiträge gelesen und gesehen dass du dir das eh schon überlegst.. Um die Bot-API registrierung wird man nicht drumrum kommen, mit der Telegram-API bräuchte jeder Nutzer eine extra Telefonnummer nur für FHEM..
Wenn du willst - ich kann dir auch bei der Entwicklung gerne behilflich sein - wenn ich auch im Moment zeitlich eher einegspannt bin..

Grüße,
BioS
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

viegener

#79
Hi BioS,
Danke für das Lob und das Angebot zur Hilfe!

Ja das BOTApi habe ich jetzt nach dem Urlaub angedacht, in der Hoffnung auf mehr Regentage  :D
Ich sehe allerdings nicht, dass es damit noch secret chats bzw. Ende-Zu-Ende-Verschlüsselung gibt, denn der Austausch mit dem Bot ist ja für die telegram-Server lesbar. Oder habe ich Deinen Kommentar missverstanden?

Sobald etwas läuft, bräuchte ich Interessenten, die das bei sich ausprobieren wollen. Ich kann jetzt schon sagen, dass die Installation sehr einfach ist  und das API token gibt es über den telegram client :)

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

co010

Hallo Johannes,

klingt interessant was Ihr da vor habt mit den BOTApi,ich bin gerne beim Testen dabei.


mfg Co010


viegener

#81
OK, die Machbarkeitsstudie läuft!

Ich habe jetzt mal ein erstes Modul, dass grundsätzlich texte senden und texte sowie Kommandos empfangen kann.
Neben vielen Kleinigkeiten fehlt noch eine Kontaktverwaltung, Doku und das Versenden von Photos. Ausserdem natürlich noch die ganze Abrundung, um robust zu sein.

Apropos Kontakte: Alle Kontakte müssen (noch) als contact_ids angegeben werden.

ACHTUNG; Das ist ein testmodul und NICHT für Produktivbetrieb gedacht und befindet sich in einem sehr frühen Alphastatus!



Wg. Reparaturcafe am Wochenende komme ich vermutlich erst nächste Woche wieder dazu eine erweiterter Version zu machen.


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

igami

Zitat von: viegener am 17 September 2015, 17:22:26
Ja das BOTApi habe ich jetzt nach dem Urlaub angedacht, in der Hoffnung auf mehr Regentage  :D
Ich sehe allerdings nicht, dass es damit noch secret chats bzw. Ende-Zu-Ende-Verschlüsselung gibt, denn der Austausch mit dem Bot ist ja für die telegram-Server lesbar.
Schön, dass zu lesen :)
Es gibt weiterhin secret chats, der Bot läuft ja auf deinem eigenen Server, bzw, auf dem fhem Server bei jedem zu hause.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

viegener

Zitat von: igami am 18 September 2015, 05:41:11
Es gibt weiterhin secret chats, der Bot läuft ja auf deinem eigenen Server, bzw, auf dem fhem Server bei jedem zu hause.
Leider stimmt das nicht.

Das mit den Secret chats habe ich nochmal überprüft: Sie sind wohl (noch) nicht möglich.

Bezugnehmend auf diese Quelle: http://stackoverflow.com/questions/32093188/telegram-bots-secret-chats-possible

Aber auch grundsätzlich. Die Kommunikation wird auf dem telegram-Server bereitgehalten bis der Bot diese über getUpdates abholt. GetUpdates liefert die Nachrichten im Klartext, damit ist es nicht ende-zu-ende verschlüsselt.

Testweise habe ich gerade einen secret chat erstellt mit meinem Bot. Der Bot bekommt aber leider keine Info über den chat und kann auch nicht antworten. Meiner Ansicht nach ist das einfach im telgram Client nicht abgeklemmt, aber secret chats würden eine erhebliche Errweiterung des BOTAPIs erfordern (z.B. für Schlüsselaustausch und Versenden/Empfangen verschlüsselter Nachrichten).

Das hat nichts mit eigenem Server zu tun.

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

Will

Hallo, habe auch dieses Modul installiert. Wenn ich telegram-cli starte kann ich Nachrichten empfangen und senden. Ich starte den daemon und in fhem sehe ich die Verbindung als "opened". In fhem kann ich dann allerdings nichts machen. "cannot parse arg $1" kann mir da einer auf die Sprünge helfen? Kann ich irgendwie testen ob der davon korrekt läuft? Raw befehle gehen auch nicht....

Danke
W

Sent from my SGP611 using Tapatalk


viegener

Hallo Will,
die Verbindung zu telegram-cli scheint zu funktionieren, denn die Meldung cannot parse arg $1 stammt bereits aus dem telegram-cli.
Ich nehme an, Du verwendest set <device> messageTo ... und bekommst diese Meldung. In diesem Fall ist die Vermutung, dass telegram-cli mit dem von Dir angebenen Kontakt nicht klar kommt. Kontakte müssen immer exakt wie in telegrm definiert (Gross- und Kleinschreibung beachten) angegeben werden und statt einem Leerzeichen zwischen dem Vor- und Nachnamen einen Unterstrich verwenden.

Kannst Du mal folgende Eingabe versuchen:
set <DeinTelegramDevice> raw contact_list
(Sollte eine Liste der Kontakte Vorname Nachname liefern.

oder noch rudimentärer

set <DeinTelegramDevice> raw help
Liefert eine Beschriebung für alle Befehle in telegram-cli

Was kommt als Ergebnis für diese Befehle?

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

viegener

So jetzt gibt es eine erste relativ stabile Version von einem telegramBot Modul für FHEM --> 50_TelegramBot.pm

Anbei findet sich der aktuelle Stand, im wesentlichen kann dieses Modul das meiste, was auch 70_Telegram (das aufh telegram-cli) aufsetzt macht. Also insbesonderen Senden und Empfangen von Textnachrichten, mit Auslösen von Kommandos und auch entsprechende Einschränkungen, wer kommunizieren darf. Ich habe im wesentlichen auch die Benennungen gleich gehalten. Folgende wesentliche Abweichungen sind mir bekannt:

+ Es ist keine andere Software notwendig, das Modul sollte demnach auch auf anderer Hardware funktionieren können (insbesondere kein telegram-cli
+ Es ist keine Rufnummer erforderlich für die Registrierung reicht die telegram BOT Registrierung wie hier beschrieben: https://core.telegram.org/bots
- Es können noch keine Bilder gesendet werden (Muss ich noch implementieren)
- Es gibt keine secret chats (im BOT API nicht enthalten)
- Bots können nicht von sich beliebige telgram user kontaktieren, die erste Kommunikation muss immer von einem normalen Telegram-Benutzer gestartet werden
o Das Attribut pollingTimeout muss auf einen Wert > 0 gesetzt sein, sonst wird nichts empfangen

Jetzt hoffe ich auf eifrige Fehlermeldungen...

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

Will

Set raw help funktioniert. Set raw contact_list bringt FAIL: 71: RPC_CALL_FAIL 401: AUTH_KEY_UNREGISTERED.

Ideen?

Sent from my SGP611 using Tapatalk


viegener

Ok, wie vermutet liegt das Problem auf der telegram-cli seite.

Kannst Du telegram-cli auf der kommandozeile benutzen?
Also wenn Du es aus einer shell herausaufrufst und contact_list eingibst kommt derselbe fehler?

Wenn ja, ist bei der installation bzw. beim einrichten von cli etwas schief gegangen

Wenn nein, vermute ich,dass es an berechtigungen für den fhem-benutzer liegen könnte.

Alternativ könntest Du direkt das oben gepostete 50_telegramBot versuchen einzusetzen. Es benötigt keine zusätzliche software und hat demnach weniger fehlerquellen.

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

Will

als telegram-cli nicht als daaemon lief, konnte ich alles aus der kommandozeile machen....

telegramd habe ich per adduser hinzugefügt....