Aus Raspberry Pi Geek 04/2014

Mobiles Instant Messaging mit dem RasPi (Seite 3)

Listing 4 baut dieses Grundgerüst zu einem funktionsfähigen Skript aus, das sich quasi als Anrufbeantworter betätigt: Nachrichten Ihrer Kontakte quittiert es mit der Antwort, dass Sie gerade beschäftigt sind und sich später noch einmal melden. Dazu verwendet es das Ereignis on_msg_receive von Tg (Zeilen 3 bis 14). Alle anderen Funktionen bleiben leer, so wie in Listing 3.

Listing 4

our_id = 0
function on_msg_receive (msg)
  if msg.out then
    return
  end
  if msg.text == nil then
    return
  end
  if msg.unread == 0 then
    return
  end
  send_msg(msg.from.print_name, "Bin gerade beschäftigt, melde mich später.")
end
[...]

Weil der Kommandozeilenclient auch die von Ihnen verschickten Nachrichten anzeigt, gilt es, diese zu ignorieren (Zeilen 4 bis 6): Anderenfalls produzieren Sie eine Endlosschleife, in der Tg auf jede von Ihnen verschickte Nachricht mit einer weiteren reagiert, die wiederum selbst eine automatische Antwort auslöst, und so weiter.

Erhalten Sie eine leere Nachricht ohne jeglichen Text, können Sie davon ausgehen, dass es sich dabei um ein Versehen handelt. Solche Nachrichten ignorieren Sie (Zeilen 7 bis 9). Sinngemäß dasselbe gilt für Nachrichten, die Sie bereits gelesen haben (Zeilen 10 bis 12).

Trifft keines der drei Ausschlusskriterien zu, dann versendet die Funktion in Zeile 14 den Antworttext. Dazu benötigt sie als Parameter den Namen desjenigen, der Ihnen die Nachricht hat zukommen lassen (msg.from.print_name) sowie den zu versendenden Text ("Bin gerade**...").

Wie ein entsprechender Nachrichtenaustausch aussehen kann, zeigt Abbildung 3. Eine Reihe weiterer Vorlagen und Anregungen zum Erstellen eigener Skripte bietet die im Quellcode-Archiv von Tg enthaltene Datei test.lua.

Abbildung 3: Hier reagiert Tg skriptgesteuert auf eingehende Nachrichten.

Abbildung 3: Hier reagiert Tg skriptgesteuert auf eingehende Nachrichten.

Fazit

Ein für Smartphones gedachtes Messaging-System auf der Kommandozeile eines RasPis laufen zu lassen, erscheint auf den ersten Blick etwas widersinnig – bis man auf die vielfältigen Möglichkeiten stößt, die die ereignisgesteuerten Lua-Skripte bieten. So ließe sich Tg beispielsweise nutzen, um nachrichtengesteuert Prozesse auf dem Mini-Rechner anzustoßen beziehungsweise zu beenden oder sogar über die GPIO-Schnittstelle externe Geräte zu kontrollieren. 

Infos

  1. Telegram: https://telegram.org
  2. Telegram für Linux: https://github.com/vysheng/tg
  3. Lua: http://www.lua.org
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben