Archiv für den Monat: April 2013

Raspberry PI – SMS empfangen

Für den Empfang habe ich mich für den smsd entschieden. Das Program gehört zu den SMS Server Tools. Mit diesem kann man senden und empfangen. Ich benutze es aber nur zum Empfangen. Damit sich gsmsendsms und smsd nicht in die Quere kommen beende ich den Daemon während des Sendens.

<?php
system("pkill smsd");
...
...
system("/usr/sbin/smsd &");
?>

Die Einrichtung des Deamons läuft ein ein config File im etc Verzeichnis. Ich habe dazu am Ende der Datei smsd.conf folgende Zeilen hinzugefügt: Raspberry PI – SMS empfangen weiterlesen

Raspberry PI – SMS senden

Zum Senden der SMS verwende ich das Programm gsmsendsms. Die Daten werden hierbei einfach als Parameter angehängt. Wichtig ist das der Text nicht über 160 Zeichen lang ist. Wenn man eine SMS über 160 Zeichen versenden möchte, so muss man den Text in mehrere Teile zerlegen und mit Tags verlinken. Die ersten Teile müssen mit LONG# beginnen und der letzte mit LAST# was die Länge der einzelnen SMS auf 155 verkürzt. Leider funktioniert das nicht bei allen Providern. Ich setze O2 ein, da geht das leider nicht. Wenn gsmsendsms die Nachricht erfolgreich gesendet hat, so bekommt man 0 als Returncode zurück. Weitere Meldungen werden nur auf der Console ausgeben. Deshalb schreibe ich den gesamten Output des cronjobs in ein Logfile. Ich rufe den Programmteil zum Senden und Empfangen der SMS jede Minute einmal per cronjob auf.

Ausschnitt aus meinem PHP Programm zu Senden:

<?php
if ($Nummer != "" && $Nachricht != ""){
	system("gsmsendsms -d /dev/ttyUSB0 ".$Nummer." '".$Nachricht."'",$ret);
}
if ($ret == 0){
	$query = "update SMSLOG set erledigt=1,Versuch=Versuch+1 where";
	$query .= "SysSMSLOG=".$SysSMSLOG;
	mysql_query($query);
	$gesendet ++;
}else{
	$query = "update SMSLOG set Versuch=Versuch+1 where SysSMSLOG=".$SysSMSLOG;
	mysql_query($query);
}
?> Raspberry PI – SMS senden weiterlesen