SMS verschicken und empfangen mit dem Raspberry Pi

© Instinia, 123RF

Robuster Oldie

SMS erscheint heute als veraltete, teure Technologie, bietet aber in manchen Fällen dennoch die bessere Alternative. Dank gut gepflegter Bordmittel fällt dem RasPi die Kommunikation per SMS leicht.

Der Short Message Service oder kurz SMS zählt zu den robustesten Technologien im Mobilfunkbereich. Trotz oder gerade wegen all seiner Beschränkungen, wie etwa Länge der übertragenen Meldungen und der asynchronen Verarbeitung, erweist sie sich nach wie vor als Brot-und-Butter-Geschäft für die Provider – zu Recht, denn die Technologie ist nicht auf das immer wieder anfällige mobile Internet angewiesen.

Für den Raspberry Pi kämen verschiedene Einsatzgebiete für das Simsen infrage: Per SMS schafft es beispielsweise auch eine autonom arbeitende Messeinheit fernab von jeglichem UMTS-Empfang in aller Regel noch, sich trotzdem ins 2G-Netz einzubuchen und Statusmeldungen zu senden, oder der Mini-PC alarmiert über Ausfälle im Netzwerk. Ebenso könnten empfangene SMS als Anstoß zahlreicher möglicher Aktivitäten dienen.

In einem anderen Szenario dient die SMS als unabhängiger Kanal für eine sogenannte Zwei-Faktor-Authentifizierung: Per SMS sendet der RasPi einem Benutzer ein nur kurze Zeit gültiges One-Time-Passwort an eine hinterlegte Telefonnummer. Zusammen mit dem Benutzernamen und dem regulären Passwort macht dies den Login auf kritischen Seiten sicherer.

Eine trivialere Anwendung gab aber Anstoß zu diesem Artikel: Wie in einer vorherigen Ausgabe beschrieben, verwandelt sich der RasPi in Kombination mit einem UMTS-Stick sehr einfach in einen 3G-Router [1]. Dummerweise läuft die Abfrage über das Guthaben oder das Buchen von Transfervolumen bei Prepaid-Tarifen oft über SMS. Statt dazu die Karte aus dem Stick zu ziehen und in ein Handy einzulegen, überlassen Sie diese Arbeit lieber gleich dem kleinen Computer.

Im Folgenden beschreiben wir kurz das Einrichten der Hardware und zeigen dann, wie Sie mithilfe der Software Gammu ("Gammu All Mobile Management Utilities") per Kommandozeile SMS versenden und empfangen. Darüber hinaus gelingt die Konfiguration von Gammu als kompletter SMS-Server mit geringem Aufwand und erlaubt dann vollständige Flexibilität beim Verarbeiten ein- und ausgehender Nachrichten.

Minimale Hardware-Anforderungen

Die Anforderungen an die Hardware fallen moderat aus: Ein gängiger UMTS-Stick und ein Raspberry Pi (Modell B+ oder 2) genügen. Erfahrungsgemäß benötigt ein RasPi der ersten Generation noch einen aktiven USB-Hub, denn der Strombedarf eines UMTS-Sticks überfordert diese Modelle in der Regel.

Für die Inbetriebnahme der Hardware benötigen Sie zwei Software-Pakete (Listing 1, Zeile 1 und 2). Stecken Sie nach deren Installation den UMTS-Stick an, erkennt das System ihn meist automatisch. Sie erkennen das daran, dass im Dev-Verzeichnis die Dateien /dev/ttyUSB0 bis /dev/ttyUSB2 vorliegen. Die genaue Anzahl der entsprechenden Files hängt vom Typ des UMTS-Sticks ab; drei Device-Dateien sind gängig.

Listing 1

 

$ sudo apt-get update
$ sudo apt-get install usb-modeswitch usb-modeswitch-data
$ sudo apt-get install gammu python-gammu
$ sudo adduser Benutzername dialout

Existiert keine der fraglichen Dateien, dann liegt das eventuell daran, dass das System den Stick nicht unterstützt. Wahrscheinlicher aber ist, dass hier das Betriebssystem Raspbian etwas hakt – nochmaliges An- und Abstecken des Sticks hilft manchmal. Falls das nichts hilft, setzen Sie auf der Konsole den Befehl sudo udevadm trigger ab. Schafft das Abhilfe und betreiben Sie den Rechner stets mit beim Booten schon angestecktem UMTS-Stick, dann tragen Sie den Befehl in die Datei /etc/rc.local ein.

Zeigt keiner dieser beiden Tricks Wirkung, dann lesen Sie aus dem Logfile /var/log/messages die ID des Sticks aus und suchen anschließend bei Google danach. Die Chancen stehen aber sehr gut, dass das System die Hardware automatisch erkennt, es sei denn, Sie verwenden einen brandneuen UMTS-Stick.

Einfache Installation

Auch für den eigentlichen Versand und Empfang der SMS fallen keine Installationsorgien an: Hier tut es der Befehl aus der dritten Zeile von Listing 1. Das Python-Paket benötigen Sie nur dann, wenn Sie per Python auf die SMS-Funktionen zugreifen wollen.

Für die Dokumentation gibt es noch ein eigenes Paket namens gammu-doc, das jedoch einen ganzen Rattenschwanz andere und für unsere Zwecke unnötige Pakete nach sich zieht. Da bei der Installation des Gammu-Pakets ausreichend Dokumentation in Form der Manpages auf der Platte landet, sparen Sie sich die zusätzlichen MByte besser.

Auf den ersten Blick erscheint Gammu [2] ein wenig angestaubt. In der Tat liegen die Wurzeln der Software in der Zeit der ersten intelligenten Handys von Nokia und Konsorten. So taucht der Name "Nokia" in den Manpages noch an 50 Stellen auf. Täuschen Sie sich aber nicht: Die Arbeit an dem Programm geht aktiv weiter, sodass sich Gammu auf dem Stand der Zeit befindet, auch wenn eine Reihe an Funktionen im Zeitalter von Android und iOS antiquiert wirken.

Bei einer Recherche im Internet zum Thema SMS-Versand unter Linux stoßen Sie eventuell noch auf eine Reihe weiterer Pakete. Wie so häufig bei freier Software gibt es mehrere Wege zum Ziel. Besonders zu erwähnen sind die SMS-Server-Tools, die Sie im Paket smstools finden [3]. Benötigen Sie aber keinen dedizierten SMS-Server, wird das schlanke Gammu den Anforderungen besser gerecht und macht selbst im Betrieb als Server eine gute Figur.

Unter Umständen lohnt jedoch ein Blick auf einige andere Pakete: So gibt es neben dem Gammu-Server-Modul eine einfache grafische Oberfläche (Wammu), eine C-Bibliothek (Libgammu) sowie das bereits erwähnte Python-Interface. Mit Letzterem steht der Integration in eigene Skripte und Anwendungen nichts im Weg. Im Folgenden konzentrieren wir uns aber trotzdem auf die native Anwendung von Gammu auf der Kommandozeile und streifen Python nur am Rande, da dies die Grundprinzipien am besten vermittelt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.