E3531 et [Errno 32] Broken pipe

Tags: #<Tag:0x00007f283b7a49e0>

Bonjour à tous,

Voila mon souci depuis l’été dernier :

Le plugin SMS n’arrive plus à lancer le démon à cause d’une erreur “[Errno 32] Broken pipe”.
N’ayant pas vu le problème immédiatement à l’époque, je n’ai pas réussi a trouver l’origine du problème…

Et depuis, j’essaie tout ce que je trouve sur le net pour résoudre la situation mais rien n’y fait… J’ai essayé :

  • de forcer un changement de mode de la clef 3531 via DC Unlock
  • de réinstaller le démon et réinstaller le plugin
  • de faire une install uniquement du plugin sms avec la 3531 sur un autre rpbi

Je précise que la clef 3531 et le plugin SMS fonctionnait bien avant et je n’avais pas d’incompatibilité.
Je passe pas un hub usb qui a sa propre alim.
La carte sim n’a pas de code PIN et elle fonctionne dans une téléphone.

Voici comment la clef est reconnue par la commande lsusb :
Bus 001 Device 010: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard

et voici le log d’un démarrage du démon :

[2020-01-26 11:10:06][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consecutivement
[2020-01-26 11:10:09][INFO] : Lancement démon sms : /usr/bin/python /var/www/html/plugins/sms/resources/smsd/smsd.py --device /dev/ttyUSB1 --loglevel debug --socketport 55002 --serialrate 9600 --pin None --textmode yes --smsc None --cycle 30 --callback http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php --apikey PWQQ0xxxxxxxxSnmuiLsTWHh54 --pid /tmp/jeedom/sms/deamon.pid
[2020-01-26 10:10:11][INFO] : Start smsd
[2020-01-26 10:10:11][INFO] : Log level : debug
[2020-01-26 10:10:11][INFO] : Socket port : 55002
[2020-01-26 10:10:11][INFO] : Socket host : 127.0.0.1
[2020-01-26 10:10:11][INFO] : PID file : /tmp/jeedom/sms/deamon.pid
[2020-01-26 10:10:11][INFO] : Device : /dev/ttyUSB1
[2020-01-26 10:10:11][INFO] : Apikey : PWQQ0xxxxxxxxSnmuiLsTWHh54 
[2020-01-26 10:10:11][INFO] : Callback : http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php
[2020-01-26 10:10:11][INFO] : Cycle : 30.0
[2020-01-26 10:10:11][INFO] : Serial rate : 9600
[2020-01-26 10:10:11][INFO] : Pin : None
[2020-01-26 10:10:11][INFO] : Text mode : yes
[2020-01-26 10:10:11][INFO] : SMSC : None
[2020-01-26 10:10:11][DEBUG] : Writing PID 8319 to /tmp/jeedom/sms/deamon.pid
[2020-01-26 10:10:11][DEBUG] : Init request module v2.22.0
[2020-01-26 10:10:11][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2020-01-26 10:10:11][DEBUG] : http://127.0.0.1:80 "GET /plugins/sms/core/php/jeeSMS.php?apikey=PWQQ0xxxxxxxxSnmuiLsTWHh54 HTTP/1.1" 200 0
[2020-01-26 10:10:11][DEBUG] : Socket interface started
[2020-01-26 10:10:11][DEBUG] : LoopNetServer Thread started
[2020-01-26 10:10:11][DEBUG] : Start listening...
[2020-01-26 10:10:11][DEBUG] : Listening on: [127.0.0.1:55002]
[2020-01-26 10:10:11][DEBUG] : Connecting to GSM Modem...
[2020-01-26 10:10:11][DEBUG] : Text mode true
[2020-01-26 10:10:11][INFO] : Connecting to modem on port /dev/ttyUSB1 at 9600bps
[2020-01-26 10:10:11][ERROR] : Exception: [Errno 32] Broken pipe
[2020-01-26 10:10:11][ERROR] : Exit 1 because this exeption is fatal
[2020-01-26 10:10:11][DEBUG] : Send to jeedom :  {'message': '[Errno 32] Broken pipe', 'number': 'none'}
[2020-01-26 10:10:11][DEBUG] : Shutdown
[2020-01-26 10:10:11][DEBUG] : Removing PID file /tmp/jeedom/sms/deamon.pid
[2020-01-26 10:10:11][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2020-01-26 10:10:11][DEBUG] : http://127.0.0.1:80 "POST /plugins/sms/core/php/jeeSMS.php?apikey=PWQQ0xxxxxxxxSnmuiLsTWHh54 HTTP/1.1" 200 0
[2020-01-26 10:10:12][DEBUG] : LoopNetServer Thread stopped
[2020-01-26 10:10:12][DEBUG] : Exit 0
[2020-01-26 11:10:40][ERROR] : Impossible de lancer le démon sms, vérifiez le port

Je désespère :slight_smile:
Et je pense qu’en continuant comme ca, je vais faire plus de mal que de bien…

Merci de vos retours si vous une idée :slight_smile:

Réponse à moi-même et si ca peut aider d’autres personnes.
Je donne ça dans l’état :slight_smile:

J’ai abandonné l’idée de conservé ma e3531… j’ai donc acheté une e3372h qui malheureusement ne fonctionne pas sous jeedom car elle est mode Hilink. Le firmware de la clef est trop récent pour utiliser DC-Unlock sous Windows, il faut donc passer directement par un rpi pour downgrader la clef.

Voici les étapes :

apt-get install git-all

2. cloner balong flash
git clone https://github.com/forth32/balongflash.git

et faire 
cd balongflash
make

3. cloner balong usbdload
git clone https://github.com/forth32/balong-usbdload.git


et faire
cd balong-usbdload
make

4. récupérer le firmware souhaité et le mettre dans un repertoire (ici /tmp/fw)
https://www.lteforum.at/mobilfunk/firmware-versionen-hi-non-hilink-e3372h-inkl-mod.2691/

5. Insérer la clef dans un rpi avec la méthode de lépingle (pour la passer en mode factory)

6. vérifier la présence d'un seul port com avec la commande
dmesg

6. Se mettre dans le repertoire de travail (ici /tmp/fw)
et lancer 
balong-usbdload/balong-usbdload -p /dev/ttyUSB0 balong-usbdload/usblsafe-3372h.bin

un bargraph va augmenter jusqu'a 100% (environ 30s)

7. vérifier la présence de 3 ports com avec 
dmesg

8. lancer la commande pour flasher le nouveau firmware en testant les ports un a un
balongflash/balong_flash -p /dev/ttyUSB0 E3372UPDATE_21.200.07.00.805.BIN
ou
balongflash/balong_flash -p /dev/ttyUSB1 E3372UPDATE_21.200.07.00.805.BIN
ou
balongflash/balong_flash -p /dev/ttyUSB2 E3372UPDATE_21.200.07.00.805.BIN

attendre environ 20s

un essai non concluant se termine par "Нет ответа от модема в HDLC-режиме"
un essai concluant montre un tableau et se termine par "Перезагрузка модема..."

9. reboot de la clef USB (débrancher/rebrancher)

10. vérifier la présence du port modem avec 
lsusb

11. insérer la clef dans jeedom, 2 port doivent apparaitrent dans le plugin SMS, en sélectionner un des deux.

Il n’est pas conseiller de réaliser ces manip depuis un rpi en exploitation :slight_smile:
J’ai utilisé un rpi qui trainait.

Bonjour @GGTF,

Une méthode ici : [Présentation] akenad

akenad :slight_smile:

Merci pour ton réponse @akenad :slight_smile:

Malgré ces manip, ma e3531 ne fonctionne toujours pas sur Jeedom, alors que je peux m’en servir pour envoyer des sms depuis mon PC…
A force d’essais, je pense que j’ai dû lui flinguer un truc nécessaire pour le rpi…

Pour le moment la e3372h fait le taf :wink:

Même problème pour moi après bascule de mon jeedom en debian 10 ce jour

Pour information ma clée USB est : Huawei E367

[2020-05-03 18:28:33][INFO] : Connecting to modem on port /dev/ttyUSB1 at 115200bps
[2020-05-03 18:28:33][ERROR] : Exception: [Errno 32] Broken pipe
[2020-05-03 18:28:33][ERROR] : Exit 1 because this exeption is fatal
[2020-05-03 18:28:33][DEBUG] : Shutdown

La solution :

apt-get -y install python-pip
pip install python-gsmmodem-new
mv /var/www/html/plugins/sms/resources/smsd/gsmmodem /var/www/html/plugins/sms/resources/smsd/gsmmodem.disabled

Il semblerait que ce soit KO depuis debian:stretch contenant la version Python 2.7.13

Plus proprement, il faudrait que je prenne le temps d’un pull-request sur https://github.com/jeedom/plugin-sms avec 2 solutions possibles

@GGTF tu devrais pouvoir réutiliser ta clée Huawei E3531 :slight_smile:

Je vais garder précieusement cette solution pour la tester le jour la E3372h fera des siennes :slight_smile:
J’ai trop peur de faire une modif actuellement et que ca plante à nouveau lol

Merci pour la solution :wink: