Moin Moin,
heute geht um es die Möglichkeit, mit einem Raspberry Pi SMS zu versenden. Ich nutze diese Technik als Benachrichtigungsdienst für bestimmte Serverevents (hohe Last/Temperatur usw.). Denkbar wäre aber auch eine SMS-basierte Serversteuerung, da man mit dieser Technik auch eingehende Nachrichten auswerten kann.
Dies ist mein Aufbau:

Vorbereitung
Ich habe den Surfstick an ein aktives USB-Hub angeschlossen, um sicherzustellen, dass dieser auch mit ausreichend elektrischer Spannung versorgt wird. Dabei habe ich die Erfahrung gemacht, dass es zu Verbindungsproblemen kommen kann, wenn dieser nicht an ein aktives USB-Hub angeschlossen ist.
Grundlage ist eine frische Linux Installation (bspw. Raspbian) und eine SIM-Karte mit einem guten SMS-Tarif. Bei diesem Projekt kann ich eine SMS-Flatrate sehr empfehlen.
Installation und Konfiguration
Viele Surfsticks werden beim Anschließen unter Linux nicht direkt als GSM/UMTS-Modem erkannt, sondern als USB-Massenspeichergerät. Damit der Stick direkt in den richtigen Modus wechselt, kann man sich mit dem Paket „usb-switchmode“ behelfen.
sudo apt-get install usb-modeswitch usb-modeswitch-data
Es gibt unterschiedliche Gateway-Pakete zum Versenden von SMS. Ich habe bei meinen Projekten mit dem „SMS Server Tools“-Paket gute Erfahrungen gemacht.
sudo aptitude install smstools
Die Konfiguration des Paketes befindet sich unter „/etc/smsd.conf“ und kann mit
sudo nano /etc/smsd.conf
bearbeitet werden.
Meine Konfiguration sieht so aus:
devices = GSM1
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
incoming = /var/spool/sms/incoming
logfile = /var/log/smstools/smsd.log
infofile = /var/run/smstools/smsd.working
pidfile = /var/run/smstools/smsd.pid
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent
stats = /var/log/smstools/smsd_stats
[GSM1]
#init =
device = /dev/ttyUSB2
incoming = yes
#pin =
baudrate = 19200
Die ersten Parameter beschreiben die Ordnerstruktur, in welcher sich später die SMS-Dateien befinden. Nachdem man Änderungen an der Konfiguration vorgenommen hat, muss der Dienst neu gestartet werden.
sudo /etc/init.d/smstools restart
Es kann los gehen
Soweit so gut. Nun kann man das Ganze testen. Das Prinzip dahinter ist recht einfach: Um eine SMS zu versenden, muss lediglich eine Textdatei innerhalb des Ordners „/var/spool/sms/outgoing“ unter Berücksichtigung einer bestimmten Syntax erstellt werden. Hier ein Beispiel.
SMS erstellen:
sudo nano /var/spool/sms/outgoing/meinesms.txt
Inhalt der Datei:
To: 49171234559
Visit lets-get-nerdy.com
Nachdem diese SMS-Datei erstellt wurde, wird der Dienst eine Änderungen innerhalb der Ordnerstruktur bemerken und diese Datei auf eine richtige Syntax prüfen. Er verschiebt die Datei von „/var/spool/sms/outgoing“ zu „/var/spool/sms/checked“. Sobald die SMS versendet wurde, findet sich die Datei unter „/var/spool/sms/sent“ wieder. Bei einem Fehler findet man die Datei unter „/var/spool/sms/sms/failed“. Der Grund für den Fehler befindet sich dann innerhalb der Textdatei.
Ich habe mir für den SMS-Versand zusätzlich ein Webinterface installiert, mit welchem Kontakte und Gruppen gepflegt werden können. Mit Hilfe dieses Tools lässt sich dann ein SMS-Versand initiieren. Das Tool heißt „Playsms“ und basiert auf PHP und MySQL.

Ich wünsche Euch viel Erfolg. Fragen beantworte ich gern über die Kommentarfunktion.
Sehr schöner Artikel. Die Idee Gefällt mir richtig gut.
Danke dafür.
Moin Michi,
danke. Finde auch das es ein spannendes Projekt ist – und es funktioniert erstaunlich gut ;-)
Hi,
habe ein USB-Surfstick von Huawei E303, mit lsusb wird ttyUS??
nicht erkannt.
Was mache ich falsch?
Danke im Voraus.
Was muss ich tun wenn die Datei im checked Ordner feststeckt?