Da ich den Raspberry Pi häufig für Monitoringzwecke o.ä. einsetze, möchte ich bei Problemen oder kritischen Events schnellstmöglich benachrichtigt werden. Um im Problemfall nicht auf die (möglicherweise unterbrochene) Internetverbindung angewiesen zu sein, setze ich für kritische Status-Benachrichtigungen im Serverbereich gerne auf SMS. Da ich damit in den vergangenen Jahren sehr positive Erfahrungen im geschäftlichen Umfeld gemacht habe, wollte ich dies nun auch bei meinen Projekten rund um den Raspberry Pi einsetzen.
Dazu benötigen wir Folgendes:
- Raspberry Pi mit ausreichend dimmensioniertem Netzteil
- unterstützer UMTS-Surfstick (Tipp: HUAWEI E303 / HUAWEI E169 oder HUAWEI E173)
- ggf. aktiven USB-Hub (z.B. Anker Ultra Slim 4 Port USB 3.0 Hub)
Die ideale SIM-Karte
Um die SMS für möglichst kleines Geld versenden zu können, setze ich auf Prepaid Anbieter mit günstigem SMS-Preis. Dabei setze ich jedoch nur Prepaid-Anbieter ein, die auch eine automatische Guthaben-Aufladung anbieten. Sobald das Kartenguthaben unter einen bestimmten Betrag fällt wird dann per Abbuchung das Guthabenkonto automatisch wieder aufgeladen. Dadurch muss ich mir um das Kartenguthaben nie Gedanken machen und dem SMS-Versand steht nichts im Wege.
Ich habe folgende Anbieter bei mir im Einsatz:
Schwierigkeitsgrad:
UMTS-Stick unter Raspbian einrichten
Ist der UMTS-Stick mit der SIM-Karte bestückt, sollte dieser am Besten über einen aktiven USB-Hub am Raspberry Pi angeschlossen werden. Besonders dann, wenn zusätzlich noch ein WLAN-Stick oder ein anderes USB-Gerät direkt am Raspberry Pi angeschlossen ist, reicht die Stromversorgung direkt über den USB-Port nicht mehr aus.
Sobald der Stick angeschlossen wurde, wird er von Raspbian auch schon erkannt. Dies kann einfach mit folgendem Befehl überprüft werden:
$ lsusb
Bei mir sieht die Ausgabe dann folgendermaßen aus:
Die mir bekannten UMTS-Sticks stellen meist zwei oder drei serielle Schnittstellen zur Verfügung. Die erste fungiert dabei meist als herkömmliches Modem, die anderen können zur Abfrage von Statusinformationen (Netz, Signalstärke, …) verwendet werden. Diese serielle Schnittstellen findet man unter /dev:
Hinweis zu Modem- und Datenmodus
Da UMTS-Sticks zusätzlich einen microSD Steckplatz zur Bereitstellung der Windows-Treiber besitzen, werden manche Sticks unter Linux nur als USB Speicher erkannt. Sollte also kein neues serielles Device auftauchen, muss zusätzlich noch das Paket usb-modeswitch und usb-modeswitch-data installiert werden. USB-Switchmode bringt eine recht große Datenbank mit Daten zu allen gängigen Sticks mit und aktiviert damit den Modemmodus des UMTS-Sticks. Bei mir war dies aber nicht erforderlich.
Gammu SMS Daemon
Um über die Konsole einfach SMS versenden zu können, benötigen wir einen Daemon, der den UMTS-Stick entsprechend anspricht. Diesen installieren wir mit folgendem Befehl:
$ sudo apt-get install gammu-smsd
Ist die Installation fertig, muss die Konfigurationsdatei (/etc/gammu-smsdrc) editiert werden. Der Inhalt sollte wie folgt aussehen, lediglich die Pin sollte natürlich entsprechend angepasst werden:
# Configuration file for Gammu SMS Daemon # Gammu library configuration, see gammurc(5) [gammu] # Please configure this! port = /dev/ttyUSB0 connection = at # Debugging logformat = textalldate # SMSD configuration, see gammu-smsdrc(5) [smsd] pin = 1234 service = files #logfile = syslog logfile = /var/log/gammu-smsd # Increase for debugging information debuglevel = 4 ReceiveFrequency = 300 # Paths where messages are stored inboxpath = /var/spool/gammu/inbox/ outboxpath = /var/spool/gammu/outbox/ sentsmspath = /var/spool/gammu/sent/ errorsmspath = /var/spool/gammu/error/
Anschließend starten wir nun den SMS Daemon neu. Startet dieser ohne Fehlermeldungen (siehe Ausgabe und ggf. Logfile /var/log/gammu-smsd), steht einer ersten Test-SMS nichts mehr im Wege.
$ sudo /etc/init.d/gammu-smsd restart
SMS-Versand
Um nun eine SMS über die Konsole zu versenden, kommt folgender Befehl zum Einsatz:
echo "Ich bin eine Test-SMS, versandt vom Raspberry Pi" | sudo gammu-smsd-inject TEXT "+491741234567"
Note: There is a rating embedded within this post, please visit this post to rate it.