Telegram Messenger Client auf dem Raspberry

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen,


    Telegram mit Python
    Das Tolle am open Source ist das er offenen ist.
    Darum jetzt eine up-to-date Version, mit der neuen telegram-cli, zu finden unter http://flutterb.at/pytg2:

    Das Verfahren ist im groben ganzen das selbe wie vorher, nur müssen URLs und Pfade angepasst werden.

    hat sich denn mit dem genannten Paket schon jemand auseinander gesetzt?
    Leider scheint das noch etwas buggy zu sein.

    Nach einigem hin und her habe ich es zum laufen bekommen. Leider sind da meiner Meinung nach teilweise Fehler im Code.

    z.B. __init__.py:
    die whoami Methode ist nicht eingerückt und somit tut auch schon mal das pingpong Beispiel-Script nicht.

    Die Funktion load_photo benötigt im Code 2 Parameter def load_photo(self, peer, msg_id): Wenn man die Funktion aber direkt im telegram-cli aufruft wird nur die msg_id benötigt.
    Nach dem ich die Funktion in

    Code
    # load_photo <msg-id>     Downloads file to downloads dirs. Prints file name after download end
    def load_photo(self, peer, msg_id):
    		"""
    		Downloads file to downloads dirs.
    		"""
    		self.tgin.write(' '.join(['load_photo',  msg_id,'\n']))
    		self.tgin.flush()

    geändert habe, kann ich auch gesendete Bilder auf dem Raspi speichern.
    Leider wir nicht wie im Kommentar beschrieben der filename ausgegeben.

    Die Dateien werden unter ~/.telegram-cli/downloads mit recht kryptischen Namen und ohne Dateierweiterung abgelegt.

    Vielleicht hat ja noch jemand etwas damit rum gespielt und hat weitere Erkenntnisse.

    Jetzt läuft mal ein Script im Hintergrund um mal zu sehen ob das ganze einigermaßen stabiel läuft.

    Gruß Jochen

    Es gibt zwei Dinge die sind unendlich, das Universum und die Dummheit der Menschen. Beim Universum bin ich mir jedoch nicht sicher. [A. Einstein]

    Einmal editiert, zuletzt von mbod77 (17. Oktober 2014 um 17:24)

  • Hi,

    habe mich mal frisch angemeldet, da ich hier einige wichtige Infos bekommen habe aber nun an einem Problem fest hänge. Und ich bin Linux Neuling... :blush:

    Ich kann nach der Anleitung in einem vorriegen Beitrag, mit Telegram (die "pytg2 Version"), über das Terminal bzw. einem Bash Script, Nachrichten verschicken. Genau genommen verschickt mein Script einen Alarmtext, nimmt dann die Umgebungsgeräusche auf und schickt diese als mp3 gleich hinter her. Das funktioniert. Auch dann, wenn ich es mittels

    Code
    os.system("bash /home/pi/Desktop/ALARM_Record_Send.sh")

    aus einem Python Programm P1.py starte.

    Nun zum Problem:
    Möchte ich für die Alarmdetektion in P1.py auf die GPIO Pins zugreifen, muss ich P1.py mittels sudo starten. Dann funktioniert aber Telegram im Bash Script nicht mehr!!!

    Ich bekomme als Fehler:
    *** error_code = 400, error = PHONE_NUMBER_INVALID
    telegram-cli: queries.c:458: send_code_on_error: Assertion `0' failed.

    Teste ich es aus dem Terminal so:

    Code
    sudo ./bin/telegram-cli -k ./server.pub -W -N


    Fragt Telegram mich nach meiner Telefonnummer. Anscheinend will Telegram dass ich mich neu registriere. Warum? Hat es durch sudo auf einmal keinen Zugriff mehr auf wichtige Dateien? Wie kann ich das umgehen?

    Und nun ein paar grundlegende Fragen:

    Wo liegt der genau Unterschied zwischen der "normalen" Telegram Version für den Raspberry und der für Python geänderten? Wie kann ich Telegram direkt aus Python, ohne Umweg über ein Bash-Script, steuern bzw. die in __init__.py definierten Befehle nutzen. (Jip, habe wenig Ahnung von Phyton!)
    Wenn jemand hierzu eine kurze Anleitung verfassen würde, wäre das sicher vielen Einsteigern eine Hilfe^^

    So, vielen Dank schon mal. Hoffe es ist ein lösbares, nicht peinlich banales Problem :daumendreh2:

  • Hallo, habe jetzt nach langem hin und her geschafft Telegram zum laufen zu bekommen.

    Über den folgenden Befehl kann ich es starten:
    ./bin/telegram-cli

    mit msg user#XXXXXXXXXX Text kann ich dann auch was verschicken.

    Das Screen und Lua Zeugs habe ich installiert und läuft jetzt auch fehlerfrei. Schwer tue ich mir ein Funktionierendes Lua Skript anzulegen.
    Kann mir hier jemand ein paar Tips geben?

    wenn ich test1.lua anlege und mit folgendem fülle reicht das noch nicht oder?
    function on_msg_receive (msg)
    vardump( msg ) --Ausgabe von msg
    if (msg.text == 'Hallo') then
    send_msg (msg.from.print_name, 'Welt!')
    return
    end

    der Aufruf sollte dann ja so funktionieren oder?
    screen -dmS TelegramCLI ~/tg/telegram -s ~/tg/test1.lua -k ~/tg/tg-server.pub

  • Hey, ne da muss (soweit ich weiß) noch mehr rein.
    Ich habe mir die test.lua einmal kopiert und habe dann die function on_msg_receive erweitert.

    Bei mir sieht die jetzt z.B. so aus:

    Viele Grüße

    Tobi

  • Hi,
    bei meinem Skript antwortet er irgendwie nicht, warum auch immer:

  • Hallo an alle!

    Wollte gerne TGCLI kompilieren, bekomme aber bei "make" folgenden Error:

    Zitat


    make: *** No rule to make target 'tgl/scheme.tl', needed by 'auto/scheme.tl'. Schluss.

    Woran liegt das?

    mFg perry

    p.s.: Installation von libevent-dev fehlt!

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

  • Verbessertes Tutorial:

    Code
    sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev lua-lgi
    Code
    git clone --recursive https://github.com/vysheng/tg.git && cd tg
    Code
    ./configure
    Code
    sudo make

    Dann wie im Ersten Tutorial!

    MfG perry

    MfG Perry

    Der Rauch ist dann wohl kein gutes Zeichen :lol::wallbash:

  • Hallo Leute,

    wie kann ich den Telegram Clienten & die test.lua als daemon laufen bekommen, also auch wenn ich die Konsole geschlossen habe, sollte der Client weiterhin erreichbar sein. Soweit läuft alles gut und auch ein Bild von meiner Cam wird per Aufforderung geschickt.

    Es währe nett wenn mir da jemand nochmal etwas zu erklären könnte. https://github.com/vysheng/tg/wiki/Running-as-daemon habe ich getestet, komme jedoch leider zu keinem Ergebnis und werde auch aus der Anleitung nicht sonderlich schlau :(

  • Das mit dem Daemon hab ich auch nicht hinbekommen.
    Ich mach es so, dass ich mir Screen installiert habe und dort einen Session aufbaue und Telegram darin starte. Läuft mehrere Wochen stabil so.

    Viele Grüße

    Tobi

  • Hi,

    Ich habe mit folgenden Tutorials Telegram auf meinem Pi Installiert.

    http://www.tutorials-raspberrypi.de/webserver/tele…em-raspberrypi/

    http://www.tutorials-raspberrypi.de/webserver/uebe…rry-pi-steuern/

    Problem ist:

    Ich bekomm es nicht das Telegram beim Booten mit gestartet wird.

    weder mit

    Code
    crontab -e
    Code
    @reboot screen -dmS TelegramCLI ~/tg/bin/telegram-cli -s ~/tg/test.lua -k ~/tg/tg-server.pub

    noch mit

    Code
    sudo nano /etc/init.d/telegram
    Code
    sudo chmod 755 /etc/init.d/telegram
    Code
    sudo update-rc.d telegram defaults

    Per...

    Code
    sudo /etc/init.d/telegram start

    ...startet Telegram ohne Probleme.

    Beim Booten klappt es nach wie vor nicht.

    Wie macht ihr das?
    Habt ihr selbe Probleme?
    Was mache ich verkehrt?

    lg


  • Habs heute auch mal installiert. Läuft soweit super. Nummer hab ich einfach meine Festnetznummer genommen. Sowohl vom Pi zum Handy als auch andersrum klappt total easy. Mal gucken inwieweit ich das noch für mein FHEM nutzen werde.

    Hallo würde ich auch gerne im fhem benuzen, has du da schon was hinbekommen ?
    bei mir läuft es bis jetzt nur über Putty auf einen Cubietruck


    Gruß otto

  • Hallo zusammen, ich habe vorher Whatsapp genutzt um mich über den Fortschritt einiger Skripte zu informieren (Youtube-, Flickrupload etc.).
    Da ging es mit einem einfachen Einzeiler. Mit Telegram hab ich dies bisher noch nicht geschafft :( Hat hier jemand eine Idee oder eine Lösung wie ich mit Telegram schnell und einfach aus Skripten heraus etwas schreiben kann?
    Ansonsten läuft Telegram bei mir relativ flüssig und stabil mit Lua etc.

    Viele Grüße und frohes Neues

    Tobi

  • Ich habe Probleme mit dem Tutorial von Tossi,
    Ich bekomme einfach Telegram nicht kompiliert mit den neuen Dateien.
    Ich habe mir mal die Header Datei angesehen und bin nicht sehr schlau daraus geworden.
    Das ist die Ausgabe von sudo make :

    Code
    In file included from main.c:74:0:
    lua-tg.h:5:24: fatal error: structures.h: Datei oder Verzeichnis nicht gefunden
    compilation terminated.
    Makefile:48: recipe for target 'objs/main.o' failed 
    
    
    make: *** [objs/main.o] Error 1


    In der Header Datei habe ich den Verweis auf structures.h in tgl/tgl-structures.h verändert.
    Das war die Ausgabe von sudo make:

    Code
    In file included from main.c:74:0:
    lua-tg.h:8:26: error: ‘struct message’ declared inside parameter list [-Werror]
    lua-tg.h:10:38: error: ‘struct secret_chat’ declared inside parameter list [-Werror]
    lua-tg.h:11:30: error: ‘struct user’ declared inside parameter list [-Werror]
    lua-tg.h:12:30: error: ‘struct chat’ declared inside parameter list [-Werror]
    cc1: all warnings being treated as errors
    Makefile:48: recipe for target 'objs/main.o' failed
    make: *** [objs/main.o] Error 1

    Ich hoffe auf Hilfe da im Netz sehr wenig über dieses Verfahren steht.

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

    Einmal editiert, zuletzt von petit_miner (3. Januar 2015 um 17:29)

  • Ich habe gerade erst vor zwei Tagen den Telegram Client auf meinem Pi kompiliert.

    Wie hast du den Quellcode heruntergeladen?
    wget? oder git clone?

    Anpassen musst du da eigenltich nichts!

    Beim herunterladen des .tar.gz Archives mit z.b. wget gibts Probleme da das Archiv anscheindend nicht richtig (recursiv) gepackt wurde. Das heißt die ganzen Unterordner sind leer. Das war zumindest bei mir so.

    Mit "git clone" und der Option --recursive wie auf der Github Seite beschrieben hat es dann aber problemlos geklappt.

    DON'T PANIC!

  • Ich habe den Quellcode mit git clone --recursive https://github.com/vysheng/tg.git && cd tg
    heruntergeladen.
    Danach habe ich die 3 lua-tg.o lua-tg.c und lua-tg.h ins tg Verzeichnis kopiert und danach sudo ./configure && sudo make
    ausgeführt.
    Ich hoffe ich habe das in der richtigen Reihenfolge gemacht.
    Ich gehe momentan davon aus das sich was auf Github geändert hat und die drei Dateien nicht mehr passend sind.
    Telegram kann ich ohne Austausch der Dateien problemlos benutzen.

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

    Einmal editiert, zuletzt von petit_miner (3. Januar 2015 um 17:13)


  • ... danach sudo ./configure && sudo make
    ausgeführt.

    BTW: Für "./configure" und "make" brauchst Du kein sudo.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Nicht das wir uns falsch verstehen ich meine das Tut von Tossi (letzter Post der Seite 2).
    In dem Tutorial steht drin das man die lua-tg Dateien in das tg Verzeichnis kopieren soll.
    Um Fehler auszuschließen habe ich vor ./configure und make sudo geschrieben.

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!