(modifié le 23 février 2024 à 1:25)

Pour connecter une dongle Huawei et envoyer des SMS avec une petite manipulation est nécessaire.

Voyons comment faire avec Raspbian et gammu.

 

Contexte

Cette procédure est compatible avec Raspbian 8 et supérieure. Elle fonctionnera aussi pour les versions inférieures à condition d'utiliser "apt-get" au lieu de "apt". Dans mon cas c'est un Raspberry Pi B+ avec Raspbian 9.

Ce tutoriel a été testé avec 2 clés 3G Huawei au préalable désimlockées : E1752 (orange) et E303 (achetée sur ebay).

Pour trouver une clé compatible j'ai utilisé https://fr.wammu.eu/phones/.

Installation de usb-modeswitch

Le lecteur SD et le CDROM virtuel empêchent l'adressage de la partie modem.

Il faut installer le paquet usb-modeswitch qui permet de changer de mode :

sudo apt install usb-modeswitch

Redémarrez le Pi.

Vérifiez que la clé 3G est bien détectée :

$ dmesg | grep ttyUSB
[ 15.845570] usb 1-1.5.1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 18.333407] usb 1-1.5.4: GSM modem (1-port) converter now attached to ttyUSB1
[ 18.504667] usb 1-1.5.4: GSM modem (1-port) converter now attached to ttyUSB2
[ 18.527069] usb 1-1.5.4: GSM modem (1-port) converter now attached to ttyUSB3

ttyUSB0 correspond à mon RFXCom. Les 3 suivants correspondent à ma clé Huawei. ttyUSB1 correspond au modem, les autres sont des ports séries virtuels.

Figer le chemin d'accès

Nous devons fixer le chemin afin qu'il ne change pas si d'autres périphériques sont connectés, nous choisissons ttyUSB-3G.

Il faut bien comprendre que nous allons ajouter un second chemin fixe en plus du premier qui lui restera dynamique, nous ne le remplaçons pas.

Modem (Mass Storage Mode)

Récupérez l'ID avec :

$ lsusb | grep -i huawei
Bus 001 Device 007: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem (Mass Storage Mode)

Les 2 champs qui nous intéressent sont ceux après "ID" :

  • 12d1 = idVendor
  • 1506 = idProduct

Fixons le chemin :
sudo nano /etc/udev/rules.d/98-usb-serial.rules

Ajoutez ceci à l'aide des 2 champs précédents :
SUBSYSTEM=="tty", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1506", SYMLINK+="ttyUSB-3G"

Redémarrez le Pi, ou bien :

udevadm control --reload-rules && udevadm trigger

Vérifiez que la clé 3G est visible sous son chemin ttyUSB-3G :

$ udevadm info --query=all --name=ttyUSB-3G | grep -i huawei
S: serial/by-id/usb-HUAWEI_HUAWEI_Mobile-if00-port0
E: DEVLINKS=/dev/serial/by-path/platform-20980000.usb-usb-0:1.5.4:1.0-port0 /dev/serial/by-id/usb-HUAWEI_HUAWEI_Mobile-if00-port0 /dev/gsmmodem /dev/ttyUSB-3G
E: ID_MODEL=HUAWEI_Mobile
E: ID_MODEL_ENC=HUAWEI\x20Mobile
E: ID_SERIAL=HUAWEI_HUAWEI_Mobile
E: ID_VENDOR=HUAWEI
E: ID_VENDOR_ENC=HUAWEI
E: ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd.

Maintenant le dongle est détecté comme "Modem/Networkcard" au lieu de "(Mass Storage Mode)".

C'est parfait, passons à la suite.

Installer gammu

Gammu permet d'envoyer et recevoir des SMS, il peut fonctionne sous forme de démon ou de programme à la demande (émission uniquement).

Vu le nombre de fichiers source gammu je préfère ne pas le compiler :

sudo apt install gammu

Configurer gammu

Pour générer le fichier de configuration de gammu :

$ gammu-config -c /home/pi/.gammurc

Je modifie uniquement :

  • port : /dev/ttyUSB-3G
  • Connection : 19200 (115200 fonctionne aussi mais n'apporte rien pour du SMS)
  • Log File : /ramdisk/gammu.log (si vous avez un ramdisk)
  • Log format : text
  • Save pour finir

La clé 3G devrait maintenant être reconnue :

$ gammu identify
Périphérique : /dev/ttyUSB-3G
Fabricant : Huawei
Modèle : unknown (E303S)
Firmware : 21.158.23.00.864
IMEI : 8617370********
SIM IMSI : 2081501********

Envoyez votre premier SMS

Rien de plus simple :

$ gammu sendsms TEXT 0612345678 -text "coucou"

ou :

$ echo -e "coucou\nRetour ligne" | gammu -c /home/pi/.gammurc sendsms TEXT 0612345678

Vous devriez aussi avoir quelque chose dans le log /ramdisk/gammu.log si activé.

Je referai un billet dédié sur l'utilisation de scripts pour envoyer des SMS et l'intégration avec Domoticz, en attendant retrouvez les scripts chez arno0x0x.

Reset

Faire un reset gammu :

sudo /usr/sbin/usb_modeswitch -W -v 12d1 -p 1506 -R

Note : 12d1 correspondant à idVendor et 1506 à idProduct (voir plus haut dans le billet), remplacez ces valeurs avec celles de votre dongle pour que cela fonctionne

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter

Tags: ,