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 →