Aktualisierungen von März, 2014 Kommentarverlauf ein-/ausschalten | Tastaturkürzel

  • mc 16:20 am 7. March 2014 permalink | Antwort
    Tags: , , , raspberry pi   

    Raspberry Pi: SMS2Email Gateway mit AldiStick 

    Es ist mal wieder soweit. Ich habe einen neuen Handyvertrag und auch eine neue Handynummer. Dies nehme ich zum Anlass, meine „damalige“ Anleitung zum Bau eines SMS2Email Gateways für die Synology Diskstation DS211j zu überarbeiten und für den Raspberry Pi auf Stand zu bringen. Die Tatsache, dass mein AldiStick bereits mit „Lösung 1″…

    Schön, unser Stick wird als USB-Datenträger erkannt. “Moderne” Linuxe erkennen diese Situation dank uDev und schalten den Stick automatisch in den Modem Modus – wir müssen das aber leider von Hand machen. Dazu gibt es zwei Möglichkeiten:

    • wir schalten den Stick auf einem Linux Rechner dauerhaft in den Modem Modus. Da hilft Google weiter. Oder dieser Link. Oder dieses PDF.
    • wir benutzen das Paket usb_modeswitch

    * Update: inzwischen hat es mich ziemlich genervt, dass ich den USB-Modus des Sticks nach jedem Reboot wieder manuell umschalten musste – zumal das per Init-Script irgendwie nicht funktionierte. Also hab ich dann doch mal „Lösung 1“ Ausprobiert und des Datenträger komplett deaktiviert:

    1. picocom /dev/ttyUSB1

    picocom v1.6
    port is : /dev/ttyUSB1
    flowcontrol : none
    baudrate is : 9600
    parity is : none
    databits are : 8
    escape is : C-a
    local echo is : no
    noinit is : no
    noreset is : no
    nolock is : no
    send_cmd is : sz -vv
    receive_cmd is : rz -vv
    imap is :
    omap is :
    emap is : crcrlf,delbs,
    Terminal ready
    ATZ
    OK
    ATI
    Manufacturer: huawei
    Model: E1550
    Revision: 11.608.13.01.52
    IMEI: 353443045652026
    +GCAP: +CGSM,+DS,+ES
    OK
    AT^U2DIAG=0
    OK

    Das wars. Beim nächsten Neustart ist und bleibt der Stick ein Modem…

    …dauerhaft in den Modem-Modus geschaltet ist, scheint mir das Leben dabei sehr leicht zu machen. (Aber vielleicht kaufe ich mir nachher im REWE auch einen „gesimlockten“ Stick für 10€ und probiers damit auch mal.) Ebenfalls spielt mir das auf dem Raspberry Pi installierte Raspbian in die Karten – Debian in klein halt. Und so zeigte auch das Einstecken des AldiSticks das zu erwartende, aber dennoch überaus erfreuliche Ergebnis:

    [ 4.683102] usb 1-1.3: Product: HUAWEI Mobile
    [ 4.688842] usb 1-1.3: Manufacturer: HUAWEI Technology
    [ 4.699791] usb-storage 1-1.3:1.0: USB Mass Storage device detected
    [ 4.710090] usb-storage 1-1.3:1.1: USB Mass Storage device detected
    [ 4.752041] usb-storage 1-1.3:1.2: USB Mass Storage device detected
    [ 22.615306] usbserial: USB Serial support registered for generic
    [ 23.466525] usbserial: USB Serial support registered for GSM modem (1-port)
    [ 23.741833] option 1-1.3:1.0: GSM modem (1-port) converter detected
    [ 23.946533] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
    [ 24.167174] option 1-1.3:1.1: GSM modem (1-port) converter detected
    [ 24.357518] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
    [ 24.540019] option 1-1.3:1.2: GSM modem (1-port) converter detected
    [ 24.687946] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2

    Das Modem wird erkannt. Und auch hier zeigt ein einfaches cat /dev/ttyUSB3, dass der Zugriff funktioniert:

    ^BOOT:45652026,0,0,0,87
    ^RSSI:8
    ^RSSI:8
    ^RSSI:0
    ^RSSI:7
    ^RSSI:7

    Die Installation der smstools ist auf dem Raspberry Pi ebenfalls erheblich unaufgeregter zu erledigen als auf der Diskstation. Denn im Gegensatz zu dieser gibt es für den Raspberry Pi entsprechende Pakete 🙂 Bäm!

    pi@raspberrypi ~ $ sudo apt-get install smstools
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen.... Fertig
    Die folgenden NEUEN Pakete werden installiert:
    smstools
    0 aktualisiert, 1 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
    Es müssen noch 0 B von 143 kB an Archiven heruntergeladen werden.
    Nach dieser Operation werden 414 kB Plattenplatz zusätzlich benutzt.
    Vorkonfiguration der Pakete ...
    Vormals nicht ausgewähltes Paket smstools wird gewählt.
    (Lese Datenbank ... 71276 Dateien und Verzeichnisse sind derzeit installiert.)
    Entpacken von smstools (aus .../smstools_3.1.14-1.2_armhf.deb) ...
    Trigger für man-db werden verarbeitet ...
    smstools (3.1.14-1.2) wird eingerichtet ...
    Starting SMS Daemon: smsd.
    pi@raspberrypi ~ $

    Das war’s auch schon fast! Nun muss man sich nur noch die Konfiguration zurechtstricken und – wenn man möchte – einen Eventhandler einrichten, der auf empfangene SMS reagiert. Die Konfiguration ist standardmäßig recht leicht verständlich, so dass ich hier nur die von mir angepassten Einträge der Datei /etc/smsd.conf aufzeigen möchte:

    devices = GSM1
    eventhandler = /usr/bin/smsevent
    [GSM1]
    device = /dev/ttyUSB0
    incoming = yes
    signal_quality_ber_ignore = yes
    init = AT+CPMS="ME"
    #Congstar
    smsc = 491710760000

    Die Werte für signal_quality_ber_ignore, init und smsc müssen jeweils für das verwendete GSM-Modem und die SIM-Karten bzw. den Provider angepasst werden. Da hilft Google weiter…

    Nun muss man sich nur noch einen Eventhandler (z.B. /usr/bin/smsevent) basteln und fertig ist die Laube!

    #!/bin/bash
    
    ###################################################
    # RECEIVED = SMS empfangen
    ###################################################
    if [ "$1" == "RECEIVED" ]; then
    
      #Nummer aus der From Zeile ermitteln. Beginnt an Position 7
      number=$( grep -ih 'FROM:' $2 | cut -b 7- )
    
      #Mal schauen, ob ich den Absender kenne
      case $number in
        491771234567)
          name=Heike
          ;;
        4917376544321)
          # ;)
          name=Mama
          ;;
        *)
          name=Unbekannt
          ;;
      esac
    
      #SMS einfach auf dem Pi Display ausgeben
      clear > /dev/tty0
      echo $1 von $name > /dev/tty0 
      cat $2 > /dev/tty0
    fi
    
     
  • mc 11:28 am 6. March 2014 permalink | Antwort
    Tags: ,   

    SED – i love it! 

    Gut dass ich mir das damals mal aufgeschrieben habe! Mit sed lassen sich nicht nur einzelnen Zeilen, sondern auch ganze Dateien verarbeiten. Dieses Multiline-Pattern-Matching hab ich hier erklärt. Und heute konnte ich es nochmal selber brauchen.
    Die Aufgabe war, in Hunderten FTP-Server-Konfigurationsdateien den letzten Konfigurationsblock zu kopieren, darin ein paar Werte zu ändern und als neuen Block ans Ende der bestehenden Datei anzufügen. Und das ging dann so:

    for file in *.conf ; do sed -n -e '1h; 1!H; ${ g; s/\(.*\)\( Directory \/srv\/ftp\/ftp2\/.*\/xml .*\)$/\2/gi ; s/xml/html/gi ; s/_X_/_H_/gpi }' $file >> $file ; done

    Geil, oder?

     
  • mc 12:25 am 4. March 2014 permalink | Antwort
    Tags: facebook, , , ,   

    Facebook „Teilen“ Cache leeren 

    Das kennt jeder Webentwickler und Webseitenbetreiber: man entwickelt und schraubt an seiner Website und klickt dann irgendwann mal auf „bei Facebook teilen“ um auch diese Funktion zu testen. Und was macht Facebook? Es wird ein alter Stand der Seite angezeigt! Schlimmstenfalls noch irgendwas mit „Wartungsmodus“ und „Schau in ein paar Tagen wieder vorbei!“. Das gleiche kann auch passieren, wenn man die Meta-Tags geändert oder ein Beitragsbild aktualisiert hat. Der Grund für dieses garstige Verhalten: Facebook speichert alle geteilten Seiten in einem Cache und holt sie bei erneutem Teilen von dort. Dieser Cache wird nach unbestätigten Informationen alle 24 Stunden erneuert. Man könnte also nun einfach 24 Stunden warten, oder aber den Facebook URL Linter aufrufen. Zum Einen erfährt man dort einige recht interessante Dinge über die eigene [oder eine fremde ;)] Seite, zum Anderen sorgt der Aufruf des Linters (was Linter auch immer bedeuten mag) dazu, dass Facebook den Cache augenblicklich aktualisiert.

    Und wenn man nun bei den köstlichen Frikadellen von ichzeigdirwiemanskocht.de auf „Teilen“ klickt, dann werden auch die Frikadellen angezeigt – und nicht das Wartungsmännlein 😉

    [Der ursprüngliche Tipp stammt von Oliver Hauser/ ToolsNerd]

     
c
Neuen Beitrag erstellen
j
nächster Beitrag/nächster Kommentar
k
vorheriger Beitrag/vorheriger Kommentar
r
Antwort
e
Bearbeiten
o
zeige/verstecke Kommentare
t
Zum Anfang gehen
l
zum Login
h
Zeige/Verberge Hilfe
Shift + Esc
Abbrechen