[Tuto] Reset modem 3G
Publié : 02 mars 2017, 13:53
Bonjour, ceci est mon premier tuto, j'espère ne rien oublier!
Je dispose d'un modem Huawei E220 branché sur mon Raspberry Pi 3, qui permet à Domoticz d'envoyer et recevoir des SMS (avec un forfait à 0 € chez un fournisseur en 4 lettres) via gammu.
Ce modem fonctionne à merveille, mais parfois au bout de quelques jours, la connexion se coupe sans raison et les sms ne fonctionnent plus. Après quelques heures d'arrachage de cheveux et de redémarrages de Raspberry Pi, j'ai trouvé une solution qui permet de réinitialiser la connexion toutes les nuits. Cela fait maintenant de nombreux mois que c'est en production, sans aucun problème.
Tout d'abord, il faut installer minicom
Créer un script pour minicom qui va envoyer les commandes de réinitialisation au modem. Je l'ai appelé modem_reset.minicom :
Créer un script shell qui va appeler ce script, en prenant soin de stopper puis relancer gammu-smsd. Je l'ai appelé modem_reset:
Note: chez moi le modem est sur /dev/ttyUSB31
Ne pas oublier de rendre ce script exécutable:
Enfin mettre un cron qui va lancer cette tâches toutes les nuits, par exemple à 4h25 du matin (crontab -e):
Je dispose d'un modem Huawei E220 branché sur mon Raspberry Pi 3, qui permet à Domoticz d'envoyer et recevoir des SMS (avec un forfait à 0 € chez un fournisseur en 4 lettres) via gammu.
Ce modem fonctionne à merveille, mais parfois au bout de quelques jours, la connexion se coupe sans raison et les sms ne fonctionnent plus. Après quelques heures d'arrachage de cheveux et de redémarrages de Raspberry Pi, j'ai trouvé une solution qui permet de réinitialiser la connexion toutes les nuits. Cela fait maintenant de nombreux mois que c'est en production, sans aucun problème.
Code : Tout sélectionner
sudo apt-get install minicomCode : Tout sélectionner
send AT+CFUN=0
sleep 3
send AT+CFUN=0
sleep 3
send AT+CFUN=1
sleep 3
! killall -9 minicom
Code : Tout sélectionner
#!/bin/bash
TERM=vt100
export TERM
sudo /etc/init.d/gammu-smsd stop
sleep 5
/usr/bin/minicom -D /dev/ttyUSB31 -S /root/modem_reset.minicom
sleep 5
sudo /etc/init.d/gammu-smsd start
Code : Tout sélectionner
chmod +x modem_resetCode : Tout sélectionner
25 4 * * * /root/modem_reset > /root/modem_reset.log