Commander son raspberry avec gammu

Bonjour je viens de découvrir Gammu un logiciel installable sur le raspberry et qui permet d'envoyer ou de recevoir des sms via le raspberry.La ou ça devient interressant c est que l on peut piloter sa chere framboise en envoyant simplement un sms.Ce que j arrive a faire:allumer ou éteindre une lampe avec un simple sms.Ce que je voudrais faire mais suis nul en basch c est toujours en envoyant un sms sur le dongle 3g connecté en usb sur mon raspberry qu'il me renvoi les temperatures de mes sonde ds18b20.En cherchant je vais trouver mais si je pouvez aller plus vite en faisant participer notre chere communauté j'en serais heureux.Bien entendu je suis pret a partager ma faible expérience. 

«1

Commentaires

  • Bonjour à tous ,tout marche bien ,je ferais un petit tuto la dessus,si je vois qu'il y a une demande.je reste dispo.
  • j'achète!
    merci d'avance

  • bilbil
    edited septembre 2015

    salut:

    Le matériel necessaire:

    -Ton raspberry

    -une clé 3g avec une carte sim dedans disposant d'un peu de crédit afin
    d'envoyer des SMS(perso j ai un une carte sim sosh avec un forfait sms
    illimité)

    -Un hub USB alimenté



    Nota:Le dongle 3g doit être reconnu par le raspberry comme modem et doit être
    compatible avec Gammu le logiciel que l on va installer sur le rasperry (perso
    j utilise une cle usb 3g de chez free.Model : alcatel one touch x220L que j ai
    désimloké.)

    On peut vérifier si c est compatible après avoir installé Gammu.



    Allez on y va:

    dans un terminal sous ssh tapez:

    sudo apt-get update

    sudo apt-get upgrade



    Histoire de mettre son systeme à jour

    sudo
    apt-get install gammu-smsd




    Pour installer gammu



    dmesg | grep ttyUSB

    ça c'est pour voir si ta clé 3g est compatible en retour tu
    doit avoir quelque chose d'a peu prés comme ça:



    [ 2977.420713] usb 1-1.3.1: GSM modem (1-port) converter now attached to
    ttyUSB1



    Si c est le cas c'est que ça commence bien,on va maintenant configurer Gammu et
    taper :



    sudo gammu-config



    -dans la ligne port mettre dev/ttyUSB1 ou USB0 ou autre selon ce que tu as eu en réponse de la
    derniere commande.

    -dans la ligne connection mettre at19200

    sauvegarder cette config

    Tapez ensuite:

    sudo gammu-identify

    En retour tu dois avoir les caractéristiques de ta clé 3g.

    si c est
    le cas tu es pret a envoyer des sms en ligne de commande en tapant:



    echo "Test" | sudo gammu sendsms TEXT 06********


    Bon envoyer des sms c pas mal mais ce n est qu'une étape,la ou ça devient intéressant c'est que ton raspberry est capable aussi d'en recevoir et d'executer certaine taches en fonction des sms reçuts.Je te propose de valider cette premiére étape ensuite on s'attaquera au reste(manque de temps pour ce soir).
    Tient moi au courant
  • bilbil
    edited septembre 2015
    Je me suis planter a la place de
    sudo apt-get install gammu-smsd il faut taper:
    sudo apt-get install gammu

  • merci
    c'est fait (en fait c'était déjà fait)  ;o)
    ça marche

    à quand tu veux, y a pas le feu
    cordialement

  • bilbil
    edited septembre 2015
    Salut ,allez on y retourne
    (avant j ai noté une erreur(encore dans mon premier tuto sur gammu. c'est :sudo gammu --identify   qu'il faut taper et non sudo gammu-identify)
    maintenant il faut installer le service gammu-smsd on tape dans un terminal:

    sudo apt-get install gammu-smsd

    Lors de l'envoi d'un SMS sur le raspberry ,celui ci va exécuter un script.Créons ce script.
    moi je l'ai placé dans /var/www donc on tape :
    sudo nano /var/www/smsaction.sh
    voici un exemple (mon script):


    #!/bin/bash
    message=$SMS_1_TEXT
    from=$SMS_1_NUMBER
    if test "$message" = "1502;lumiere salon on"; then
    /var/www/yana-server/plugins/radioRelay/radioEmission 0 12325261 1 on | echo "commande et mot de passe reconnues.lumiere salon on" | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;lumiere salon off"; then
    /var/www/yana-server/plugins/radioRelay/radioEmission 0 12325261 1 off | echo "commande et mot de passe reconnues.lumiere salon off" | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;radiateur salon on"; then
    /var/www/yana-server/plugins/radioRelay/radioEmission 0 12325261 2 on | echo "commande et mot de passe reconnues.lumiere salon off" | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;radiateur salon off"; then
    /var/www/yana-server/plugins/radioRelay/radioEmission 0 12325261 2 off | echo "commande et mot de passe reconnues.lumiere salon off" | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;lumiere cuisine on"; then
    /var/www/yana-server/plugins/radioRelay/radioEmission 0 12325261 3 on | echo "commande et mot de passe reconnues.lumiere salon off" | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;lumiere cuisine off"; then
    /var/www/yana-server/plugins/radioRelay/radioEmission 0 12325261 3 off | echo "commande et mot de passe reconnues.lumiere salon off" | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;temp int"; then
    cat /sys/bus/w1/devices/28-00043a56b8ff/w1_slave | grep "t=" | awk -F "t=" '{print" la temperature interieur est de " $2/1000 " degres"}' | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;temp ext"; then
    cat /sys/bus/w1/devices/28-00043e9b08ff/w1_slave | grep "t=" | awk -F "t=" '{print" la temperature exterieur est de " $2/1000 " degres"}' | sudo gammu sendsms TEXT "$from"
    elif test "$message" = "1502;reboot"; then
    echo "commande et mot de passe reconnues.redemmarage de la blackbox en cour" | sudo gammu sendsms TEXT "$from" | sudo reboot
    elif test "$message" = "commande liste"; then
    echo "lumiere salon on/lumiere salon off/lumiere cuisine on/lumiere cuisine off/radiateur salon on/radiateur salon off/temp int/temp ext/reboot" | sudo gammu sendsms TEXT "$from"
    else echo "commande et/ou  mot de passe non reconnues" | sudo gammu sendsms TEXT "$from"
    fi



    Dans ce script on peut voir que si j 'envoi (avec n'importe quel portable) le SMS: 1502;lumiere salon on ,le raspberry executera:la commande qui grace au tuto d'idlemant allumera une de mes prise chacon et me renvera un sms qui me confirmera que la commande a ete reçut.On peut voir egalement dans ce script que si je lui envoi le sms :1502;temp ext il me renverra un sms qui me donnera la temperature capté par une de mes sonde de température.le 1502; que j envoi avant chaque commande c'est un mot de passe (que je vais changer) que j ai prédéfini.si je lui envoi autre chose comme message il me renvoi :commande et/ou mot de passe non reconnus.

    ATTENTION:Gammu n'aime pas les accents

    Il faut maintenant rendre exécutable ce script
    sudo chmod u+rwx /var/www/smsaction.sh
    il faut maintenant éditer le fichier de configuration de gammu-smsd
    sudo nano /etc/gammu-smsdrc

    sous [gammu]
    port = /dev/ttyUSB4 (ou USB0 ou autre selon la config de gammu)
    connection = at19200
    sous [smsd]
    RunOnReceive = /var/www/smsaction.sh
    Voila on peut quitter et enregistrer.
    Je rappel que gammu-smsd est un service et qu'il va s'executer en arriere plan.les commande suivant sont disponible:
    sudo service gammu-smsd stop
    sudo service gammu-smsd start
    sudo service gammu-smsd restart

    Petite observation lorsque le service et démarrer si on tape:
    sudo gammu --identify
    on a un beau:
    Erreur à  l'ouverture du périphérique: il n'existe pas.
    En effet le périphérique est occupé avec le service gammu-smsd.

    Normalement ça devait marcher quand je faisais ça (et non il y avait encor un problème)
    il faut éditer le service gammu smsd
    sudo nano /etc/init.d/gammu-smsd
    Sous la ligne :
    # user which will run this daemon
    USER=gammu
    changer
    USER=root
    enregistrer et quitter.
    redémarrer le service.
    sudo service gammu-smsd restart
    Voila ça devrai le faire.Vous pouvez trouver la liste des téléphones et des clé 3g compatible gammu à cette adresse:
    http://wammu.eu/phones/
    Une dernière remarque :j'utilisais une cle 3g qui était pourtant dans la liste et celle ci se mettait en veille au bout de 10 a 15 min la Huawei E160E elle n'etait pas désimlokée prévue pour opérateur orange avec une sim shosh.Est ce que cela venait de la clé elle même ou alors parce qu’elle n’était pas désimlokée ,ça j en sait rien.j utilise une clé USB 3g de chez FREE.Model : alcatel one touch x220L que j ai désimloké avec ma carte sim shosh et ça marche nickel.
    En espérant que cela en aidera quelque un et évitera quelque galère,je reste dispo et prêt à partager mon expérience.J’espère quand même avoir quelque retour.
    A+

    PS:beaucoup de faute d'hortographe,je sais et c'est pas la peine de me le rappeler


    :))
  • merci!
    je mets ça en place et je te tiens au jus.
    ma clé est une huawei E520 avec carte sim free 2€: ok en émission avec gammu.
  • edited septembre 2015
    bon ben c'est pas gagné!

    au milieu de quelques essais infructueux et sans que je comprenne pourquoi, ça a marché 3 fois:
    - prise on: j'ai reçu l'accusé réception
    - prise off: pareil
    - reboot : il a rebooté mais sans confirmation.

    depuis plus rien alors que l'émission seule d'un sms marche toujours
    syslog est gavé de lignes comme:

    Sep 11 18:32:12 San16-1 gammu-smsd[2233]: Starting phone communication...
    Sep 11 18:32:12 San16-1 gammu-smsd[2233]: Error at init connection: Error opening device, it doesn't exist. (DEVICENOTEXIST[4])
    Sep 11 18:32:12 San16-1 gammu-smsd[2233]: Going to 30 seconds sleep because of too much connection errors
    Sep 11 18:32:42 San16-1 gammu-smsd[2233]: Starting phone communication...

    d'autres logs sont bourrés également.

    visiblement, il a un sms (ou plusieurs) en attente de transmission et il essaye comme un malade. ce matin, c'est toujours le cas.
    j'ai stoppé gammu-smsd!
    je vais maintenant chercher où sont stockés ces sms en attente.

    ça et les évènements en mode "talk", j'en ai un peu ras la casquette!!!


  • bilbil
    edited septembre 2015
    Salut je crois que ta cle usb 3g se met en veille quand gammu-smsd est en marche le raspberry allumé du deconnecte et reconnecte ta clé 3g.J'ai eu ce deconvenu moi aussi,courage
  • edited septembre 2015
    ok
    j'essaye
    merci

    ...quoique? le problème devrait être identique lorsque j'envoie un sms "normal" avec echo"message" | sudo gammu sendsms TEXT etc...
    et là, ça marche toujours!

    :-w
  • Est ce que ta clé est desimlokée?

  • bonsoir
    Quand le service gammu-smsd est en route sur mon raspberry il m'est impossible d'envoyer un message avec la commande :
    echo "message" | sudo gammu sendsms TEXT 06********
    quand j 'essai j ai en retour:
    Aucune réponse dans le temps d'attente spécifié: Le téléphone n'est peut-être pas connecté.De méme quand on essaye la commande:
    sudo gammu --identify 
    On a en retour :Erreur à  l'ouverture du périphérique: il n'existe pas.Quand on éteint le service gammu-smsd en tapant la commande :
    sudo service gammu-smsd stop
    Je peux à nouveau envoyer un sms en tapant la commande :
    echo "message" | sudo gammu sendsms TEXT 06********
    Ou lancer la commande:sudo gammu --identify
    qui me retourne:
    Périphérique       : /dev/ttyUSB4
    Fabricant            : TCT Mobile International Limited
    Modèle              : unknown (HSPA Data Card)
    Firmware             : S21B3700XX
    IMEI                 : 35*********114
    SIM IMSI             : 2*************29
    Voila en tout cas ce que j ai chez moi.En espérant que tu trouve ce qui cloche ,je te souhaite une bonne soirée

  • j'ai eu le même problème.

    chez moi, la clé prend ttyUSB0 ET ttyUSB1.
    j'ai laissé gammu sur ttyUSB0 et j'ai mis gammu-smsd sur ttyUSB1 pour voir.

    ça a marché (une fois comme indiqué plus haut), mais ça a marché!

    pour moi, rien de mieux.
    bonne journée


  • Pour moi si je veux envoyer un sms avec le service gammu-smsd qui est en train de tourner en arriere plan je fais:
    sudo service gammu-smsd stop&&echo "message" | sudo gammu sendsms TEXT 06********&&sudo service gammu-smsd start
    Cette commande me permet de couper le service gammu-smsd,d'envoyer le sms et de relancer le service
  • edited septembre 2015
    c'est un moyen de contourner, effectivement.
    moi je vais désinstaller/réinstaller.
  • ce coup-ci, ça marche chez moi (gammu et gammu-smsd) sans réinstal
    (commentaire malencontreux au bout de:
    port /dev/ttyUSB1 ## commentaire qui casse ##
    dans /etc/gammu-smsdrc

    pour ton souci 2 autres possibilités:
    A - gammu => ttyUSB0 et gammu-smsd => ttyUSB1 c'est ce que j'ai choisi

    B - pour envoyer un sms au lieu de:
    echo "ton message" | sudo gammu sendsms TEXT 0612345678
    ecrire:
    sudo gammu-smsd-inject TEXT 0612345678 -text "ton message"<br><br>Bien sûr, dans mon script, ça n'exécute pas encore la commande radio de ma prise mais c'est encore (toujours!!!) un problème de droits... J'ai le sms de confirmation, c'est déjà pas mal.

    ~X(

    bonne continuation
  • Bonne continuation a toi aussi ;)
  • Merci pour votre tuto
    J'ai un soucis j'arrive a commander une borne gpio via sms , ecrire ds un ecran lcd via adafruit
    En revanche , ma cle 3g doit se mettre en veille au bout de 10min.... Que dois faire pour éviter qu'elle se mette en veille ??
    Cle 3g huawei E1752
    Merci d'avance pour vos réponses
  • Salut
    J'ai eu ce deconvenu moi aussi.Je n'ai pas trouvé de solution.Est ce que ta clé est desimlocke?Peut être que ça pourrait arrangé quelque chose. Pour moi la seule solution a été de changer de clé.
    Bon courage
  • Il faudrait trouver un moyen de couper et de rallumer l'alim du port USB tout les x minute ou de faire un cron pour envoyé un SMS toute les x minute sur un numéro bidon(si tu a un forfait illimité) ou alors de lancer une commande gammu du genre sudo gammu --identify toute les x minutes.Bon je te donne toutes les idées tel quelle me viennent.Tient nous au courant si tu trouves une soluce si ça peu aider quelqu'un...
  • Justement j'ai pense que ca venais de la cle 3g j'ai rachete une huawei 303 et la qd je lance le gammu --identify => aucun périphérique connecte ? Bref je tourne en rond
  • Bonsoir
    Si tu as lu mes précédents commentaires ou observations sur gammu tu pourras voir que j'avais constater que si le service gammu smsd et lancé, la commande gamme -- identify renvoi le message d erreur dont tu parles.Essaye de lancer la commande:
    sudo service gammu-smsd stop
    Ensuite réessaye:
    sudo gammu --identify
    Bon courage,accroche toi
  • edited juin 2016
    Me revoila apres plusieurs essais sans succès :(( le Raspberry reconnaît la cle 3g comme cle usb . Je n'arrive pas a la basculer en 3g avec le usb_modeswitch. Quelqu'un aurais une solution ( a part le cout de marteau sur cette cle :)) )
  • Salut
    Pour voir si ta clé est compatible lance la commande:

    dmesg | grep ttyUSB
    et dis moi ce que tu as en retour..Voila ce que j'ai
    pi@raspberrypi:~ $ dmesg | grep ttyUSB
    [   13.556547] usb 1-1.3.2: GSM modem (1-port) converter now attached to ttyUSB0
    [   13.571034] usb 1-1.3.2: GSM modem (1-port) converter now attached to ttyUSB1
    [   13.587867] usb 1-1.3.2: GSM modem (1-port) converter now attached to ttyUSB2
    [   13.646527] usb 1-1.3.2: GSM modem (1-port) converter now attached to ttyUSB3
    [   13.686523] usb 1-1.3.2: GSM modem (1-port) converter now attached to ttyUSB4

    A+

  • edited juin 2016
    Salut,

    Pour la 3G, j'utilise wvdial, ca marche super bien.
    Mais il te faudra un petit script, pour récupéré l'adresse ip 3G ppp0. 
    Après il faut rajouter une nouvelle route par défaut. Et ça fonctionne. Je pourrais partager le script à l'occasion.

    Moi j'utilise gammu-smsd sans start/stop à chaque fois. Peut etre que avec mon portable pas de soucis.
    Je n'utilise pas la commande "echo", mais j'écris directement le message dans la table SQL car j'ai codé en java.

    ( Ps: Sinon y'a un projet pas mal, RASPI-SMS ) 
    Ps : la bonne methode pour utiliser gammu-smsd
    gammu-smsd-inject TEXT 123456 -text "All your base are belong to us"

    Il y'a encore un autre moyen de controler son raspberry.
    XMPP-Shell (C'est un chat, genre facebook). C'est une super solution, mais faut un serveur Ejabberd XMPP ect... pas simple (ce que je fais)
    Du coup, dès que le raspberry capte internet, il se connecte au serveur, et on peut écrire, en shell...

    Il faut savoir que : Avoir une adresse IP 3G, n'est pas vraiment une adresse IP publique. C'est une adresse NAT privé de votre opérateur (normalement). Donc avoir cette adresse se suffit pas pour se connecté à distance. Il faut au minimum un VPN ou XMPP
  • Merci VOST pour tes conseils mais j'arrive a piloter plusieurs relais par sms. J'ai juste un cle qui se mets en veille donc je la change pour voir si ca viens de la cle et la le Raspberry la detecte comme cle usb.
    Avec la fonction dmesg | grepp ttyUSB le Raspberry me donne rien. Juste une nouvelle fois l'invite de commande.
    Merci par avance
  • Et des que je remet l'ancienne cle 3g il me detecte bien la cle en tant que modem....
  • Je lance le lsusb
    Il me trouve 12d1:14dc huawei technologie
  • Pour voir si ta clé est compatible la seule commande possible est:
    dmesg | grep ttyUSB
    A+
  • Et gammu-detect ? tu as essayé ? 
Sign In or Register to comment.