Im Bild 4 sind die beiden Möglichkeiten gezeigt, wie eine SMS versendet werden kann. In der ersten Zeile wird ein manueller Sendevorgang gestartet, während der Befehl in der zweiten eine SMS in den Postausgang des Daemons »injiziert«. Dabei muss die Telefonnummer mit einem Pluszeichen und mit »49« statt der bei Inlandsnummern führenden Null beginnen und darf nicht in Anführungszeichen gesetzt werden.
Der Empfang von SMS ist meist ohne Probleme möglich, mitunter hapert es jedoch mit dem Senden. Ein Blick in die Log-Datei des Daemons, die etwaige Fehlercodes anzeigt, kann hier weiterhelfen.
Die SMS wird an das SMS Service Center (SMSC) des jeweiligen Anbieters übertragen, welches das Versenden aus verschiedenen Gründen verweigern kann. In einem solchen Fall, empfiehlt es sich, zunächst die SIM-Karte im LTE-Stick zu kontrollieren, indem man sie zum Test für den Versand einer SMS in ein Handy einlegt. Sollte der Versand auch nicht mit einem üblichen Handy funktionieren, liegt das Problem jedenfalls nicht am Raspberry Pi, sondern am Stick oder an der SIM-Karte und/oder dem Mobilfunkzugang.
Und jetzt mit Internet
Bei Prepaid-SIM-Karten muss man sich bei der ersten Benutzung dafür entscheiden, wie mit dem Guthaben umgegangen werden soll. Wer etwa das 10-Euro-Startguthaben der angebotenen Daten-Flatrate, die mit 9,95 Euro zu Buche schlägt, zuordnet, hat eben noch nicht einmal die ca. 20 Cent für den Versand einer SMS zur Verfügung, was dann in einem Fehlercode »CMS-Error 10« in der Logdatei resultiert. Die Selbstverständlichkeit, dass für den Versand der SMS genügend Guthaben vorhanden sein muss, gerät bei der Inbetriebnahme und den Konfigurationsarbeiten nicht selten aus dem Blickfeld, zumal sich dieser Umstand lediglich in einem unscheinbaren Fehlercode in einer Logdatei niederschlägt.
Die Einwahl ins Internet erfolgt über das Point-to-Point-Protokoll, wofür in Raspbian Jessie das Paket »ppp« zur Verfügung steht. Um dieses komfortabler bedienen zu können, ist das Skript »sakis3g« zu empfehlen, wofür eine ausführliche Installationsanleitung, Dokumentation und Hilfe zur Verfügung steht [3]. Alternativ dazu bietet sich »wvdial« an, das die Verbindung deutlich schneller aufbaut als sakis3g. Nach der Installation von wvdial durch den Paketmanager, ist zunächst eine Konfigurationsdatei anzulegen, was mit dem Befehl »sudo wvdialconf« geschieht. Die so erzeugte Datei »/etc/wvdial.conf« ist wie folgt zu bearbeiten:
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1, »IP«, »internet.t-mobile«
Stupid Mode = 1
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
ISDN = 0
Phone = *99#
Modem = /dev/ttyUSB1
Username = { }
Password = { }
Baud = 9600
Danach ist ein Test der Internetverbindung empfehlenswert:
pi@raspberrypi:~ $ sudo wvdial >/dev/null 2>&1 &
pi@raspberrypi:~ $ sudo route add default gw 10.64.64.64 ppp0
Die erste Zeile ist für jeden Verbindungsaufbau notwendig, die zweite hingegen nur beim ersten Aufruf von wvdial. Für eine komfortablere Bedienung empfiehlt es sich, diese Befehle automatisch − etwa mit einem Skript beim Start − ausführbar zu machen.
Der Verbindungsabbau erfolgt, indem der Prozess, unter dem die Instanz von wvdial läuft, beendet wird. Um sicher zu gehen, dass ausgehende Verbindungen tatsächlich über den LTE-Stick geleitet werden, hängt man an die Datei »/etc/peers/ppp/wvdial« noch die beiden folgenden Zeilen an:
defaultroute
resetdefaultroute
Damit steht die Internetverbindung über den LTE-Stick, sodass hiermit alle üblichen Dienste ausführbar sind. Meist empfiehlt es sich, die Messwerte zu sammeln und zu bestimmten Zeitpunkten per FTP auf einen (eigenen) FTP-Server zu übertragen, etwa mit dem Tool »ncftp«, welches sich wie üblich mit dem Paketmanager installieren lässt.
Smart Schalten per Handy
Das Werkzeug bietet neben einem interaktiven Kommandozeilenmodus die beiden Befehle »ncftpput« und »ncftpget«, mit denen Dateien einfach auf einen FTP-Server hoch- bzw. von dort heruntergeladen werden können. Somit lässt sich ein Dateitransfer aus einem Bash-Script heraus durchzuführen. Das Hochladen einer lokalen Datei mit Messwerten auf einen FTP-Server erfolgt mit:
pi@raspberrypi:~ $ ncftpput -u <USERNAME> -p <PASSWORD> <REMOTE-HOST> <REMOTE-DIR> <LOCAL-FILE>
<USERNAME> und <PASSWORD> sind dabei durch den Benutzernamen und das dazugehörige Passwort des zugangsberechtigten Nutzers zu ersetzen. Für einen anonymen Zugriff auf den FTP-Server ist der Teil -u <USERNAME> und -p <PASSWORD> im Aufruf wegzulassen. Die Parameter <REMOTE-HOST> und <REMOTE-DIR> beziehen sich auf den FTP-Server und geben die Internetadresse an, unter der er zu erreichen ist, sowie das Server-Verzeichnis, in dem die Datei gespeichert werden soll. <LOCAL-FILE> spezifiziert, welche Datei des lokalen Rechners hochzuladen ist.
Der Downloadbefehl ist vergleichbar aufgebaut, nur drei Anpassungen sind nötig: ncftpput wird durch ncftpget ersetzt, und anstelle des Zielverzeichnisses auf dem Server wird das lokale Zielverzeichnis und danach der Pfad zur gewünschten Datei auf dem Server angegeben:
pi@raspberrypi:~ $ ncftpget -u <USERNAME> -p <PASSWORD>,! <REMOTE-HOST> <LOCAL-DIR> <REMOTE-FILE>
Das Mobilfunknetz lässt sich mit einem LTE-Stick für die Übertragung von Messdaten eines Raspberry Pi oder eines anderen Computers auf verschiedene Art und Weise nutzen, wie es oben anhand SMS und FTP beispielhaft gezeigt worden ist. Für einige smarte Anwendungen, etwa für das Einschalten einer Lampe oder das Aktivieren von anderen Geräten, die sich am Stromnetz befinden, reicht die Übertragung eines Schaltbefehls an einen entsprechenden Empfänger aus.