Telegram Messenger Client auf dem Raspberry

  • Hallo Zusammen,


    aus gegebenen Anlass suchen wohl einige nach einer Alternative für Whatsapp.
    Bei mir ist es sogar so weit, dass ich gerne mit dem Smartphone umsteigen möchte.


    In dem Whatsapp Diskussions Thread wurde Telegram als Alternative genannt.
    Das schöne an Telegram ist der Grundgedanke dahinter (Kostenlos, Sicher, Quelloffen, Schnell) siehe auch die Homepage von Telegram.


    Aus diesem Grund habe ich mir heute Mittag Telegram aufs Smartphone und den Raspberry gespielt und ein wenig getestet. Aktuell gibt es aufgrund der Serverprobleme bei Whatsapp einen riesigen Hype auf Telegram, weshalb auch deren Server aktuell etwas überlastet sind.


    Dennoch hier eine kurze Anleitung, wie Ihr euch Telegram auf dem Raspberry einrichten könnt.
    Alle Informationen stammen von der Telegram Homepage und durchgeführten Tests.



    Installation und Einrichtung von Telegram


    1. Installation der benötigten Pakete

    Code
    sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev


    2. Herunterladen des Telegram Clients

    Code
    git clone https://github.com/vysheng/tg.git && cd tg


    3. "Installation" des Telegram Clients

    Code
    ./configure
    make



    Anschließend ist die Installation soweit fertig und es geht an die Einrichtung eures Accounts.
    Hierzu wird wie bei Whatsapp eine Handynummer benötigt.
    Sobald Ihr ein Handy mit Sim-Karte zum Empfangen des Bestätigungscodes als SMS zur Hand habt, geht es mit den folgenden Schritten weiter.


    4. Einrichtung des Accounts

    Code
    ./telegram -k tg.pub


    Anschließend kommt ein Dialog, in dem mehrere Eingaben erforderlich sind.

    • Handynummer (im Format +491519876543)
    • Vorname
    • Nachname


    Alle Eingaben müssen jeweils mit Enter bestätigt werden.
    Daraufhin wird ein Bestätigungscode via SMS an die angegebene Handynummer gesendet.
    Diesen Code anschließend noch im Dialog eingeben.


    Wenn die Einrichtung erledigt ist, kann mit folgendem Befehl im Telegram Verzeichnis der Telegram Client gestartet werden

    Code
    ./telegram


    Es gibt nun einige Befehle, um das Programm zu bedienen:




    Hier noch ein Ausschnitt meiner ersten Tests.
    Sehr schön zu sehen, dass immer angezeigt wird ob der Chatpartner Online oder Offline ist und die Nachricht gelesen wurde.




    Sehr erfreulich finde ich auch, wie einfach Bilder mit dem Client verschickt werden können:

    Code
    > send_photo Daniel_Zieg /home/pi/ocr_pi.png
    [10:50]  Daniel Zieg <<< [photo]
    [10:50]  User Daniel Zieg is now online
    [10:50]  1 messages marked as read
    [10:50]  User Daniel Zieg is now offline



    Zum Thema API um das ganze in eigene Skripte einzubauen, bin ich bisher nicht weiter gekommen.
    In einer Datei im Telegram Verzeichnis namens "test.lua" gibt es einen Teil "onMessageReceive".
    Ich denke, es sollte auch hier so etwas wie der ListenerClient von Yowsup (Whatsapp) möglich sein, um auf eingehende Nachrichten automatisch zu reagieren.


    Gerne kann in diesem Thread das Tutorial auch von euch erweitert werden, gerade was die APIs angeht.
    Informationen hierzu findet man auf der Telegram Seite API.


    Vielen Dank für Ideen, Einwände und Kritik ;-)


    Grüße


    bigdane

  • Mosche,
    Erstmal vielen Dank für dein TUT!!! Das ist, wenn ich mal zeit habe , das nächste kleine projekt was ich starten möchte!
    Mich würde mal interessieren welche simkarten benutzt werden können und auch welche sticks etwas taugen! Benötige ich dazu eine simkarten mit internetflat?
    Oder irre ich mich und wir benötigen gar keine simkarte ?


    Gruß sven

    [Co|xY|sa] ein aus Frankfurt stammendes Erdenwesen!


    >>HIER<< gibt's ordentlich was auf die Ohren !

    Edited once, last by CoxYsa ().

  • Super bigdane69, vielen dank für dein Tutorial :)
    Zusätzlich habe ich gestern Abend (soweit es möglich war wegen den Server Problemen) die Clients auf Windows und einen Webclient getestet. Videos, Bilder, Dateien und natürlich die eigentlichen Nachrichten wurden unter den verschiedenen Systemen super verteilt - so muss das doch sein! ;)


    @CoxYsa
    Ich weiß nicht wie das mit einem Simkarten Stick aussieht... aber du brauchst im Grunde nur eine Simkarte + Handy um SMS empfangen zu können. Ähnlich wie bei Whatsapp verschickt Telegram einen Code denn du in deinem Client eintragen musst. Wenn das geschehen ist, muss es glaubig nicht nochmal wiederholt werden - außer man setzt alle Verbindungen zurück.


    Dazu brauchst du keine Handy-Internetflat. Der Pi kriegt hoffentlich eine Internet Verbindung mit dem heimischen Netzwerk hin ;)

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

  • Ok , ich dachte ich brauche auch eine Handy Nummer für den pi! Sonst weis doch telegram
    Nicht wo es hin soll .... Das könntet ihr mir bitte nochmal erklären wie ich vom Handy aus zum pi ne Nachricht schicken kann

    [Co|xY|sa] ein aus Frankfurt stammendes Erdenwesen!


    >>HIER<< gibt's ordentlich was auf die Ohren !


  • Ok , ich dachte ich brauche auch eine Handy Nummer für den pi! Sonst weis doch telegram
    Nicht wo es hin soll ....


    Das stimmt auch so ;) Wie ich schon geschrieben habe brauchst du eine SIM-Karte um SMS zu empfangen und damit dann auch einen Account bei Telegram zu registrieren.
    Wenn du nun eine Nachricht vom Handy an deinen Pi schicken willst brauchst du eigentlich nur eine SIM-Karte. Du installierst dir auf deinem Handy Telegram und auf dem Pi wie bigdane69 es geschrieben hat. Danach kannst du dir selbst eine Nachricht schreiben und diese wird dann auch auf dem Pi erscheinen...

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

  • Ok vielen Dank ! Dann bestell ich mir ne kostenlose SIM karte!
    Danke

    [Co|xY|sa] ein aus Frankfurt stammendes Erdenwesen!


    >>HIER<< gibt's ordentlich was auf die Ohren !

  • Hi,


    hab das auch gerade probiert... leider bekomm ich folgende Meldung: wenn ich das "github"-Zeug installieren will...



    pi@raspbmc:~$ git clone https://github.com/vysheng/tg.git && cd tg
    Cloning into 'tg'...
    error: Problem with the SSL CA cert (path? access rights?) while accessing https://github.com/vysheng/tg.git/info/refs
    fatal: HTTP request failed
    pi@raspbmc:~$



    was kann ich da tun ??


    Gruß Brick


    EDIT: so gehts:


    vorher das ausführen:
    git config --global http.sslVerify false


    EDIT2: vor "make" brauch ich noch ein :
    sudo apt-get install make


    Gruß Brick

    Edited once, last by Brick ().

  • Hat schon jemand sich mal die test.lua angesehen.. ??
    weiß jemand wie ich die einbinden kann, das sie mit "Telegram" parallel läuft ??


    Gruß Brick

  • Ich hab mich gestern mal mit Telegramm Cli auseinander gesetzt und bin schwer begeistert...


    Es ist wirklich sehr sehr einfach Nachrichten, Audio, Videos, Photos und Dokumente zu verschicken.
    Also eine bessere Lösung als "yowsup"...



    Hat schon jemand sich mal die test.lua angesehen.. ??
    weiß jemand wie ich die einbinden kann, das sie mit "Telegram" parallel läuft ??


    Gruß Brick


    Ja der Listener test.lua läuft bei mir seit ca 12 Stunden stabil...
    man muss den listener wie folgt starten


    Code
    ./telegram -s text.lua


    allerdings habe ich es bis jetzt nur geschafft, automatisch auf eine Nachricht mit Text zu antworten..
    Was ich gerne hätte, wäre wenn der PI mir auf Anfrage ein Bild von der Platte sendet...
    ich hab dazu mal den Entwickler diese Cli angefragt "github"


    hier mal meinen on_msg_receive




    Was sonst so mit der Scriptsprache Lua möglich ist findet ihr hier...


    Mit diesem Modul kann man dann sogar seine GPIOs auslesen..


    Gruß
    Tossi

    Edited once, last by tossi ().

  • 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.

  • Ich hab es jetzt geschafft Fotos und Videos von der Raspberry Pi Kamera aufzunehmen und dann über Telegramm an den jeweiligen Chatpartner zu versenden!!! Hammer... !!:bravo2:
    Man muss dafür aber den Quellcode ein wenig erweitern und das alles auf dem Pi neu compilieren...
    Eine Anleitung dazu stelle ich heute Abend hier rein...


    Hier mal einen kleinen Ausschnitt: ( Vorschaubild vom Video funktioniert nur noch nicht )
    [Blocked Image: http://www.tossiman.de/tele_pi.jpg]


    PS: Der Telegram Listner läuft schon seit 35 stunden ohne jegliche ausfälle...:D


  • Kannste doch aufm Handy setzen!
    Gruß Sven


    Wie soll das denn gehen? Wenn ich auf meinem Handy ein Bild für den RPi setze (wenn das überhaupt geht), wird anderen Benutzern dieses Profilbild nicht angezeigt (wie soll es denn auch?). Wenn ich für alle anderen ein eigenes RPi-Profilbild einstellen will, muss das der RPi hochladen.


    Gruß
    Hans

    Edited once, last by HaSch ().

  • Wenn beide Clients die gleiche Handynummer benutzen dann geht das auch vom Handy...

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

  • Servus ihr da draussen,


    hab mir eben den Messanger aufn PI installiert....nach dem letzten schritt
    den code einzugeben:
    Code from sms (if you did not receive an SMS and want to be called, type "call"):
    und ich den code eingab, kam dann das hier:


    >


    jetz bin ich mir absolut nicht sicher was ich jetzt machen muss! ich kann den code nochmal eingeben aber das bringt nix .... dachte da kommt so ne art bestätigung oder so.... der befehl exit hat auch nichts geholfen es kommen nur weitere ">"-zeichen.


    ich komm mir grade richtig doof vor LACH


    Gruss sven


    #EDIT#


    ok ich denke das ist telegram....aber was muss ich jetzt machen?
    wenn ich folgendes eingebe dann bekomme ich ne fehlermeldung Bad user/chat id


    msg Sven hallo


    oder


    msg +49171XXXX hallo


    wie komm ich denn da jetzt wieder raus und wo kann ich meine Kontakt daten speichern :s
    [hr]
    HaSch


    ja klar daran hab ich nicht gedacht :) des weis ich auch net! wie du siehst weis ich gar nix :D
    hoffe mich kann jmd helfen!!![hr]Ok habs ein bissel gecheckt lach


    wenn ihr bad user bekommt ersetzt das leerzeichen zwischen vor und zuname mit einem unterstrich "_"

    [Co|xY|sa] ein aus Frankfurt stammendes Erdenwesen!


    >>HIER<< gibt's ordentlich was auf die Ohren !

    Edited once, last by CoxYsa ().

  • gude, ich schon wieder !


    kann mir mal jemand seine test.lua einträge schicken?


    hab nämlich ganz euphorisch begonnen die test.lua zu bearbeiten und irgendwas falsch gemacht,
    denn, ich bekomme nach dem aufruf


    ./telegram -s test.lua


    ein fehler der so aussieht


    Telegram-client version 0.01-beta, Copyright (C) 2013 Vitaly Valtman
    Telegram-client comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show_license' for details.
    *** lua: test.lua:61: <eof> expected near 'end'


    augenmerk ist auf die letzte Zeile zu legen!


    wenn ich die Test.lua mit
    sudo nano test.lua öffne steht jetzt folgendes drin:


    started = 0
    our_id = 0


    function vardump(value, depth, key)
    local linePrefix = ""
    local spaces = ""


    if key ~= nil then
    linePrefix = "["..key.."] = "
    end


    if depth == nil then
    depth = 0
    else
    depth = depth + 1
    for i=1, depth do spaces = spaces .. " " end
    end


    if type(value) == 'table' then
    mTable = getmetatable(value)
    if mTable == nil then
    print(spaces ..linePrefix.."(table) ")
    else
    print(spaces .."(metatable) ")
    value = mTable
    end
    for tableKey, tableValue in pairs(value) do
    vardump(tableValue, depth, tableKey)
    end
    elseif type(value) == 'function' or
    type(value) == 'thread' or
    type(value) == 'userdata' or
    value == nil
    then
    print(spaces..tostring(value))
    else
    print(spaces..linePrefix.."("..type(value)..") "..tostring(value))
    end
    end


    print ("HI, this is lua script")




    function on_msg_receive (msg)
    vardump (msg) --Ausgabe von msg


    if (msg.text == 'Hallo') then
    send_msg (msg.from.print_name, 'Welt!')
    return
    endif (msg.text == 'Date') then
    send_msg (msg.from.print_name, os.date())
    return
    end


    end
    --vardump (msg)
    --print ( "Message # " .. msg.id .. " (flags " .. msg.flags .. ")")
    end


    function on_our_id (id)
    our_id = id
    end


    function on_secret_chat_created (peer)
    --vardump (peer)
    end


    function on_user_update (user)
    --vardump (user)
    end


    function on_chat_update (user)
    --vardump (user)
    endfunction on_get_difference_end ()
    end


    function on_binlog_replay_end ()
    started = 1
    end


    ok haut in die tasten und sagt wie doof ich bin LACH


    DANKE EUCH

    [Co|xY|sa] ein aus Frankfurt stammendes Erdenwesen!


    >>HIER<< gibt's ordentlich was auf die Ohren !

  • Ok, hier kommt die test.lua, die durch die Installation angelegt wurde (unverändert). Vergleichen kannst du ja selber oder kopiere sie einfach neu in dein Verzeichnis.


    Gruß
    Hans



  • [font="Tahoma, Verdana, Arial, sans-serif"]function on_chat_update (user)[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"] --vardump (user)[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]endfunction on_get_difference_end ()[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]end[/font]


    ändern in


    :D


    Da es eine Scriptsprache ist, besonderes Augenmerk auf die Leerzeichen und Absätze legen! :thumbs1:

    Edited once, last by tossi ().