Raspian wheezy install telegram

  • Nachdem ich heute Stunden vergeblich versucht habe Telegram zu installieren ( ich habe nicht EINE Anleitung im Netz gefunden die funktioniert!!!! ) hier nun meine Lösung:
    Es sollte git installiert sein!


    So, das sollte reichen.

    Ich muss noch etwas wichtiges nachtragen.
    Die Schlüsseldateien .telegram-cli muss für jeden Benutzer angelegt werden, auch, und das hab ich übersehen, auch im Verzeichnis /var/www/.telegram-cli. Beim ersten Aufruf durch den Benutzer www-data wird das Verzeichnis zwar angelegt, ist aber leer. Also die angelegten Schlüssel hierher kopieren.

    VM

  • Dann bist Du halt ein Glückspilz.
    Auf dieser Seite habe ich folgenden Fehler:

    apt-get install libpython-dev
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package libpython-dev

    Das nur dazu.

    Und ja, compilieren liess es sich, aber lief es auch fehlerferei?
    Bei mir nicht.
    Siehe hier, nicht mein Problem alleine:

    https://github.com/vysheng/tg/issues/904
    VM

    • Offizieller Beitrag

    Dann aktiviere doch mal bash completion (z.B: in der /etc/bash.bashrc) für die shell (wenn noch nicht geschehen) und drücke 2x tab nachdem du

    Code
    apt-get install libpython

    eingeben hast. Dann solltest du sehen welche Pakete es für libpython gibt.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Darum geht es aber hier nicht.
    Es geht darum das ich Fehlermeldungen bekomme wenn ich mich an die genannte Anleitung halte,

    Und da bekam ich den Fehler schon in der ersten Zeile!

    Mein Befehl lautet
    apt-get install python-dev

    Und da ich für alle meine Probleme. zwar nach längerem Suchen, jeweils eine Lösung gefunden habe zeigte mir, nicht bei mir alleine traten die Probleme auf.

    Warum das so ist? Who cares.

    dbv
    Danke trotzdem für den Hinweis, wieder was gelernt. Nur, welche von den dann fünf mir angezeigten libs soll ich nehmen? Im Zweifel alle?
    Mache ich das nur bei python kommen 247 Vorschläge.


    VM

  • telegram test.lua error
    Und damit war die Sache ja noch nicht zu Ende.
    Es ist MIR nicht gelungen das mitgelieferte Script test.lua zu starten.
    Man achte auf das MIR!
    Es mag ja Glückspilze geben denen alles auf Anhieb gelingt, mir meistens nicht.
    Ich schenk mir hier die Fehler, folgendes war nötig um das script überhaupt starten zu können:

    apt-get install lua-lgi
    apt-get install libnotify-bin
    apt-get install libnotify-dev

    Nur, jetzt kam immer noch nicht das pong wenn ich ping eingegeben habe.
    Lösung war dann diese Zeile komplett mit Unterzeilen aus dem script zu entfernen.

    if (msg.to.id == our_id) then

    Jetzt kann ich endlich ping pong spielen.

    VM


  • Es mag ja Glückspilze geben denen alles auf Anhieb gelingt, mir meistens nicht.

    Ich denke, man hat hier übersehen, dass Du (noch) wheezy nutzt, denn mit jessie sieht es anders aus. Z. B.:

    Code
    :~ $ apt-cache policy libpython-dev
    libpython-dev:
     Installed: (none)
     Candidate: 2.7.9-1
     Version table:
        2.7.9-1 0
           500 http://mirrordirector.raspbian.org/raspbian/ jessie/main armhf Packages

    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

  • Danke für den Hinweis. Hatte auch diesen Fehler unter wheezy,

    Code
    telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion `0' failed

    mit dem Auskommentieren der beiden Zeilen funktioniert es wieder.

    Wäre es dir möglich in deinem ersten Post code tags zu verwenden? Das macht es für uns einfacher zu lesen.
    Das Verzeichnis nach

    Code
    cd tg

    heißt

    Code
    tgl

    da hast du einen Buchstabülverwechsler.

    Danke und Gruß
    co8

  • mit dem Auskommentieren der beiden Zeilen funktioniert es wieder.

    BTW: Es sollte auch funktionieren, wenn man statt dem Auskommentieren der Zeilen, in der .c-Datei vor der Zeile:

    Code
    #include <assert.h>


    die Zeile:

    Code
    #define NDEBUG


    (d. h. das Makro NDEBUG definiert)
    einfügt.
    Evtl. mal testen.

    EDIT:

    Siehe z. B.: http://www2.hs-fulda.de/~klingebiel/c-stdlib/assert.h.htm

    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

    Einmal editiert, zuletzt von rpi444 (8. Mai 2016 um 17:13)

  • co8
    Alles wie gewünscht erledigt.

    Nun noch einiges zur Info:
    Neben den 2 Installationen auf Wheezy habe ich noch eine Installation auf Ubuntu Mate gemacht mit den gleichen Problemen und der gleichen Lösung. Jetzt , wenn nötig, werden nur noch die libs installiert und der Rest kopiert.
    Dann habe ich Telegram 2 x auf Ubuntu installiert.
    Einmal das Binary, das aber keine .lua Dateien akzeptiert und dann das telegram-cli compiliert.
    Hier übrigens ohne die bekannten Fehler.
    Allerdings läuft der mitgelieferte test.lua unter Ubuntu nicht weil es keine lua.lib gibt.
    Also das ganze test.script weggeworfen und nur die Zeilen behalten, die beim Empfang von Messages angesprochen werden. Der Rest ist komplett über! Wie im folgenden Beispiel beschrieben kann man einfach ein schellscript schreiben um Fotos zu machen oder auch Videos.

    Code
    if (msg.text == '!pic') then
     send_msg(msg.from.print_name, 'Schicke ein Foto',ok_cb, false)
     os.execute("./machbild.sh")
     send_photo(msg.from.print_name, '/root/bilder/image.jpg',ok_cb, false )
     return
    end
    
    
    Wichtig hier ist das am Ende immer das ,ok_cb,false steht weil ansonsten sendet das Ding nix.


    Da ich keine Smartphone benutze habe ich auf meinem Windows PC eine Android Emulation laufen die i. Ü. super funktioniert. Das Ding heißt Bluestacks. Da habe ich auch Pushover und ThingSpeak laufen.

    Und nun kommen sowohl auf Ubuntu Desktop als auch auf Android die Fotos an und auch die Videos kommen an und starten sofort.
    Also, was will man mehr. Hat mich viel Mühe und Zeit gekostet aber nun funktioniert es prima.

    Es sind mir noch einige Sachen unklar aber ich kann mit einer Blackbox leben, solange sie funktioniert.


    In diesem Sinne

    VM

    PS: Es wundert mich ja nur das noch niemand über Telegram mit mir Kontakt aufgenommen hat.

  • Zum Abschluss.
    Telegram ist ja nicht zum Chatten installiert worden sondern soll auf Abruf Fotos oder Videos übertragen.
    Ich habe das nun so gelöst das ich mit einem account z. Zt. 4 Kameras abfragen kann.

    Ansonsten muss ich sagen das ich Pobleme habe den Code zu verstehen.
    Es gibt keinerlei Beschreibung z. B. zu send_msg. Das gehört nicht zum lua 5.2 Sprachumfang.
    Es ist mir z. B. nicht gelungen einen einfachen send_msg Befehl ans laufen zu bekommen der ausserhalb der received message Abfrage steht. Also z. B. beim Start sofort eine Message verschicken.
    Scheinbar kann telegram nur reagieren, nicht agieren, z. B. zu bestimmten Zeiten einen Weckruf schicken.
    Zumindest habe ich bisher keinen Weg dahin gefunden.
    Wie auch immer, ich habe was ich wollte, beliebig viele Kameras abfragen.

    VM

  • Es gibt eine Beispiel Datei, test.lua und eine readme. https://github.com/vysheng/tg/blob/master/README-LUA

    Wenn du direkt beim Start einen der hier dokumentierten befehle (https://github.com/vysheng/tg/blob/master/README.md) absetzen willst, kannst du die mit -e übergeben. Siehe hier für mehr: https://github.com/vysheng/tg/wiki/Telegram-CLI-Arguments

    Einmal editiert, zuletzt von KrawallKurt (9. Mai 2016 um 18:19)

  • Hallo Kurt,
    vielen Dank, das hilft mit ja weiter zum Verständnis.

    Warum habe ich diese Seite nicht gefunden? Egal, jetzt habe ich sie mir gespeichert und verstehe diese Funktionen etwas besser.
    Ich hatte inzwischen etwas mit lua geübt und das soweit auch ganz gut unter Kontrolle.
    Ich hatte nicht gewusst das lua eine komplette Interpretersprache ist, so wie Python oder php.
    Allerdings habe ich noch keine Lösung für mein Problem gefunden, senden einer Message.
    Eine andere Frage im Codeblock.

    Der von Dir angegeben Parameter -e bezieht sich auf ein shell Kommando.

    Mein Frage bleibt, ich möchte OHNE vorherigen Message Eingang folgendes:

    send_msg('Klaus_Werner', 'Hallo, ich bins, der Willi, ich bin noch aktiv',ok_cb, false)

    Wie gesagt, mit lua z. B, zeitgesteuert. alle zehn Minuten.

    Obwohl, wenn wir jetzt so drüber reden, wenn lua threading unterstützt kann ich ja eine Endlosschleife nach einem Messageingang bauen.
    Nur so ins Blaue gedacht. Muss ich heute nacht mal ausprobieren.

    Auf jeden Fall hilft es mir weiter, Danke nochmal für die Mühe.

    VM

  • Zitat

    send_msg('Klaus_Werner', 'Hallo, ich bins, der Willi, ich bin noch aktiv',ok_cb, false)

    Wie gesagt, mit lua z. B, zeitgesteuert. alle zehn Minuten.

    Was spricht denn gegen einen cronjob? Dafür hab ich die ja die Kommandozeilenparameter mit geschickt. Ich verteile auch per cronjob täglich Erinnerungen an Kontakte. Könnte dann zum Beispiel so aussehen:

    Code
    /home/pi/tg/bin/telegram-cli -p cron -k /home/pi/tg/tg-server.pub -WRC -e "msg kontakt nachricht"

    Wichtig ist, dass der ständig laufende LUA Bot ein eigenes Profil kriegt und nicht das von den cronjobs benutzt. Sonst kommen die sich in die Quere und schießen sich gegenseitig ab.


    Warum ohne cb_function und cb_extra nicht gesendet wird? Weil die Signatur von den send_* Befehlen 4 Parameter verlangt.

    Zitat

    send_msg (peer, text)


    und

    Zitat

    Each this function last two arguments, are cb_function and cb_extra.

    Daraus wird dann

    Code
    send_msg (peer, text, cb_function, cb_extra)


    cb_function steht für callback Funktion. Siehe hierzu: https://de.wikipedia.org/wiki/R%C3%BCckruffunktion

    Einmal editiert, zuletzt von KrawallKurt (9. Mai 2016 um 23:44)

  • Nochmal vielen Dank.
    Wie allseits bekannt bin ich ja ein copy_paste Ritter auf allen Schlachtfeldern.
    Umso dankbarer bin ich ja für jeden Hinweis.
    Callback, lese ich mir genau durch.

    Nun dein cronjob:

    Vielen Dank, aber das ist nicht derWeg den ich suche, alles sollte innerhalb von Telegram sein.
    Und da "fummel" ich so rum, z. B.

    Code
    if (msg.text=='ping') then
        send_msg (msg.from.print_name, 'pong', ok_cb, false)
       for j=1,  1 Millionen :-)  do
         send_msg (msg.from.print_name, 'Weg aus dem Chat', ok_cb, false)  end
    end

    Wie gesagt, es geht nur mit Threading damit das Ding normal weiterläuft. Alle x Minuten eine Meldung ist ja nicht schwer, nur dann kann er nix anderes mehr tun!
    Ich bin dran und jeder Hinweis hilft mir.
    Leider ist die lua 5.1 Dokumenation sehr schlecht, nicht ein Beispiel jeweils dabei.

    Danke nochmal

    VM

  • Zitat

    I: config dir=[/home/kl/.telegram-cli]
    FAIL: 38: can not parse arg #1

    Du musst natürlich schon vorher -wie oben gesagt- ein eigenes Profil anlegen. Bei mir sieht das zB folgendermaßen aus:
    /home/pi/.telegram-cli/config

    Du kannst einfach Profile in diese Datei nach dem Muster eintragen und dann benutzen. Jedes Profil muss aber erstmal angelegt werden, also mit neuer Registrierung, wie du das selbst oben beschrieben hast. Der Parameter -p gibt das Profil an, das benutzt werden soll. Wenn weggelassen, wird das default Profil benutzt. Da du oben -p cron benutzt hast, aber kein Profil mit Namen cron hast, ist das Programm abgestürzt. "Kontakt" und "Nachricht" in dem Befehl, der bei dir abgestürzt ist, müssen natürlich ersetzt werden.

    Gibt es denn einen Grund, warum du unbedingt nur mit einer Instanz von Telegram arbeiten willst? Ich habe immer Probleme, dass das Programm ein Speicherleck produziert. Je mehr du da machst, desto schneller bläst sich das auf. Deswegen lasse ich den Bot jede Nacht neustarten, bis das behoben ist. Ich empfehle dir, zeitgesteuerte Jobs immer über cronjobs zu realisieren. Ist einfach zuverlässiger, als eine Dauerschleife.

    Wenn du unbedingt mit einer Instanz arbeiten willst, bietet dir das Programm auch die Möglichkeit, über telnet oder netcat mit einer laufenden Instanz zu reden. Mehr dazu im wiki.

  • Ach Kurt,

    es fing so gut an mit Dir.
    Nun rennst Du mir davon, ich kann Dir kaum folgen.
    Bitte, sei versichert, ich lese alles sehr genau und versuche zu folgen.

    Bevor ich nun auf Deine umfängliche Antwort eingehe 3 Punkte.

    1. Ja, Du hast sicher Recht und ich verrenne mich, das tue ich gerne, ich wollte halt eben wissen ob es mir geling Dinge in telegram zu tun, ob es sinnvoll ist oder nicht, die Frage hat sich zunächst nicht gestellt.
    Zumal ich ja meine eigentlichen Probleme, Fotos / Videos abzurufen gelöst habe.
    Es hat mich eigentlich nur geärgert halt diesen "simplen" Sendbefehl nicht hinzubekommen.
    Ich denke ich höre auf Dich, ich lass es sein. Danke dafür. Es gibt noch soviele andere Probleme auf die ich mich stürzen kann.

    Und da ich das geschrieben habe gibt es keine weiteren Punkte mehr. Mal muss Schluss sein!

    Telegram ist so ok für mich.

    In diesem Sinne noch einmal vielen Dank,

    VM

    PS: Ich bin ja ehrlich, habe unendlich viel gelesen, telegram-bot!!!!!!!!!
    Ich habe nichts verstanden! Habe von github min. ein Dutzend Dinge runtergeladen, nicht EINES davon hat funktioniert. Also, bot????????????????????
    Ich will es nicht mehr wissen. Danke Kurt, Du hast mir viel Stress erspart,


  • PS: Ich bin ja ehrlich, habe unendlich viel gelesen, telegram-bot!!!!!!!!!
    Ich habe nichts verstanden! Habe von github min. ein Dutzend Dinge runtergeladen, nicht EINES davon hat funktioniert. Also, bot????????????????????
    Ich will es nicht mehr wissen. Danke Kurt, Du hast mir viel Stress erspart,

    Was zur... Ich versteh grad nicht mehr wirklich, was du tun willst. Finde es generell immer schade, wenn Leute ihre Projekte so schnell aufgeben. Oder weißt du nicht, was ich mit Bot meine?

    Zitat von &quot;wikipedia&quot;


    Unter einem Bot (von englisch robot ‚Roboter‘) versteht man ein Computerprogramm, das weitgehend automatisch sich wiederholende Aufgaben abarbeitet, ohne dabei auf eine Interaktion mit einem menschlichen Benutzer angewiesen zu sein.

  • Naja,
    zunächste einmal habe ich ja erreicht was ich wollte, Bilder und Videos von meinen vielen Kameras abrufen.
    Zum Thema bot

    Ich habe ja nun 10 Jahre in Asien gelebt und dort natürlich nur Englisch gesprochen.


    Ich muss gestehen das ich die Beschreibungen zum Thema bot einfach begrifflich nicht verstanden habe.

    Also habe ich mir gedacht schau Dir die Beispiele an, die da z. B. waren:
    Hole Wetterdaten, hole Wechselkurse usw.

    Und nicht eine Anwendung habe ich ans Laufen bekommen, was bei Github normal ist, da funktionieren 80% der scripts nicht, wobei ich mich frage was mir dabei telegram nutzen soll?
    An solche Daten komme ich auch so.

    Also erschliesst sich mir im Moment nicht was mir ein telegram bot nützen würde?

    Aber ich lass mich gerne belehren.

    VM

  • Wenn du deine Kameras über Telegram abfragst, ist die Instanz von Telegram, die auf deinem Pi läuft und auf Anfragen reagiert, auch ein Bot! Von dem hab ich geredet. Was ich oben in #16 meinte: Wenn du nun zusätzlich über eine andere Telegram Instanz auf dem Pi noch Nachrichten zeitgesteuert verschicken willst, braucht diese Instanz ein eigenes Profil - ein anderes, als der Bot, der eh bei dir läuft.

Jetzt mitmachen!

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