Démarrage SMS impossible depuis MAJ du 18/10/22 - modem lixee

C’est dingue mais je pense qu’il s’agit de la bonne piste … :sweat_smile:

J’ai modifié le fichier serial_comms.py qui initialise la com dans le plugin.

ligne 48 à 56

    def connect(self):
        """ Connects to the device and starts the read thread """
        self.serial = serial.Serial(dsrdtr=True, rtscts=True, port=self.port, baudrate=self.baudrate,
                                    timeout=self.timeout,*self.com_args,**self.com_kwargs)
        # Start read thread
        self.alive = True
        self.rxThread = threading.Thread(target=self._readLoop)
        self.rxThread.daemon = True
        self.rxThread.start()

On remarque dsrdtr=True, rtscts=True
je modifie dsrdtr=False, rtscts=False

je relance le plugin sms et la, ça fonctionne :slight_smile:

[2023-03-08 13:44:25][INFO] : Lancement démon sms : /usr/bin/python3 /var/www/html/plugins/sms/resources/smsd/smsd.py --device /dev/ttyUSB0 --loglevel debug --socketport 55002 --serialrate 9600 --pin 1234 --textmode no --smsc None --cycle 30 --callback http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php --apikey xxxxxx --pid /tmp/jeedom/sms/deamon.pid
[2023-03-08 13:44:25][INFO] : Start smsd
[2023-03-08 13:44:25][INFO] : Log level : debug
[2023-03-08 13:44:25][INFO] : Socket port : 55002
[2023-03-08 13:44:25][INFO] : Socket host : 127.0.0.1
[2023-03-08 13:44:25][INFO] : PID file : /tmp/jeedom/sms/deamon.pid
[2023-03-08 13:44:25][INFO] : Device : /dev/ttyUSB0
[2023-03-08 13:44:25][INFO] : Apikey : xxxxx
[2023-03-08 13:44:25][INFO] : Callback : http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php
[2023-03-08 13:44:25][INFO] : Cycle : 30.0
[2023-03-08 13:44:25][INFO] : Serial rate : 9600
[2023-03-08 13:44:25][INFO] : Pin : 1234
[2023-03-08 13:44:25][INFO] : Text mode : no
[2023-03-08 13:44:25][INFO] : SMSC : None
[2023-03-08 13:44:25][DEBUG] : Writing PID 15555 to /tmp/jeedom/sms/deamon.pid
[2023-03-08 13:44:25][DEBUG] : Init request module v2.28.2
[2023-03-08 13:44:25][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2023-03-08 13:44:25][DEBUG] : http://127.0.0.1:80 "GET /plugins/sms/core/php/jeeSMS.php?apikey=xxx HTTP/1.1" 200 0
[2023-03-08 13:44:25][DEBUG] : Socket interface started
[2023-03-08 13:44:25][DEBUG] : LoopNetServer Thread started
[2023-03-08 13:44:25][DEBUG] : Start listening...
[2023-03-08 13:44:25][DEBUG] : Listening on: [127.0.0.1:55002]
[2023-03-08 13:44:25][DEBUG] : Connecting to GSM Modem...
[2023-03-08 13:44:25][DEBUG] : Text mode false
[2023-03-08 13:44:25][DEBUG] : Enter pin code : 1234
[2023-03-08 13:44:25][INFO] : Connecting to modem on port /dev/ttyUSB0 at 9600bps
[2023-03-08 13:44:25][DEBUG] : write: ATZ
[2023-03-08 13:44:25][DEBUG] : response: ['OK']
[2023-03-08 13:44:25][DEBUG] : write: ATE0
[2023-03-08 13:44:25][DEBUG] : response: ['ATE0
', 'OK']
[2023-03-08 13:44:25][DEBUG] : write: AT+CFUN?
[2023-03-08 13:44:25][DEBUG] : response: ['+CFUN: 1', 'OK']
[2023-03-08 13:44:25][DEBUG] : write: AT+CMEE=1
[2023-03-08 13:44:25][DEBUG] : response: ['OK']
[2023-03-08 13:44:25][DEBUG] : write: AT+CPIN?
[2023-03-08 13:44:25][DEBUG] : response: ['+CPIN: READY', 'OK']
[2023-03-08 13:44:25][DEBUG] : write: AT+CLAC
[2023-03-08 13:44:25][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:25][DEBUG] : write: AT
[2023-03-08 13:44:25][DEBUG] : response: ['OK']
[2023-03-08 13:44:25][DEBUG] : write: AT^CVOICE=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:26][DEBUG] : write: AT+VTS=?
[2023-03-08 13:44:26][DEBUG] : response: ['+VTS: (0-9,*,#,A,B,C,D),(1-255)', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT^DTMF=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:26][DEBUG] : write: AT^USSDMODE=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:26][DEBUG] : write: AT+WIND=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:26][DEBUG] : write: AT+ZPAS=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:26][DEBUG] : write: AT+CSCS=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CSCS: ("IRA","GSM","UCS2","HEX","PCCP","PCDN","8859-1")', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CNUM=?
[2023-03-08 13:44:26][DEBUG] : response: ['OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CGMI
[2023-03-08 13:44:26][DEBUG] : response: ['SIMCOM_Ltd', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+DDET=1
[2023-03-08 13:44:26][DEBUG] : response: ['OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CGMI
[2023-03-08 13:44:26][DEBUG] : response: ['SIMCOM_Ltd', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+ZPAS?
[2023-03-08 13:44:26][DEBUG] : response: ['+CME ERROR: 100']
[2023-03-08 13:44:26][INFO] : Unknown/generic modem type - will use polling for call state updates
[2023-03-08 13:44:26][DEBUG] : write: AT+COPS=3,0
[2023-03-08 13:44:26][DEBUG] : response: ['OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CMGF=0
[2023-03-08 13:44:26][DEBUG] : response: ['OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CSCA?
[2023-03-08 13:44:26][DEBUG] : response: ['+CSCA: "+336xxxxxxxx",145', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CSMP=49,167,0,0
[2023-03-08 13:44:26][DEBUG] : response: ['OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CSCA?
[2023-03-08 13:44:26][DEBUG] : response: ['+CSCA: "+33xxxxxxxxxx",145', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CPMS=?
[2023-03-08 13:44:26][DEBUG] : response: ['+CPMS: ("SM","ME","SM_P","ME_P","MT"),("SM","ME","SM_P","ME_P","MT"),("SM","ME","SM_P","ME_P","MT")', 'OK']
[2023-03-08 13:44:26][DEBUG] : write: AT+CPMS="ME","ME","ME"
[2023-03-08 13:44:27][DEBUG] : response: ['+CPMS: 0,0,0,0,0,0', 'OK']
[2023-03-08 13:44:27][DEBUG] : write: AT+CNMI=2,1,0,2
[2023-03-08 13:44:27][DEBUG] : response: ['+CMS ERROR: 325']
[2023-03-08 13:44:27][DEBUG] : write: AT+CNMI=2,1,0,1,0
[2023-03-08 13:44:27][DEBUG] : response: ['OK']
[2023-03-08 13:44:27][DEBUG] : write: AT+CLIP=1
[2023-03-08 13:44:27][DEBUG] : response: ['OK']
[2023-03-08 13:44:27][DEBUG] : write: AT+CRC=1
[2023-03-08 13:44:27][DEBUG] : response: ['OK']
[2023-03-08 13:44:27][DEBUG] : write: AT+CVHU=0
[2023-03-08 13:44:27][DEBUG] : response: ['OK']
[2023-03-08 13:44:27][DEBUG] : Waiting for network...
[2023-03-08 13:44:27][DEBUG] : write: AT+CREG?
[2023-03-08 13:44:27][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:44:28][DEBUG] : write: AT+CSQ
[2023-03-08 13:44:28][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:44:28][DEBUG] : Ok
[2023-03-08 13:44:28][DEBUG] : write: AT+COPS?
[2023-03-08 13:44:28][DEBUG] : response: ['+COPS: 0,0,"Orange F"', 'OK']
[2023-03-08 13:44:28][DEBUG] : Send to jeedom :  {'number': 'network_name', 'message': 'Orange F'}
[2023-03-08 13:44:28][DEBUG] : write: AT+CPMS="ME","ME","ME"
[2023-03-08 13:44:28][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2023-03-08 13:44:28][DEBUG] : http://127.0.0.1:80 "POST /plugins/sms/core/php/jeeSMS.php?apikey=xxx HTTP/1.1" 200 0
[2023-03-08 13:44:28][DEBUG] : response: ['+CPMS: 0,0,0,0,0,0', 'OK']
[2023-03-08 13:44:28][DEBUG] : write: AT+CMGD=1,4
[2023-03-08 13:44:28][DEBUG] : response: ['+CMS ERROR: 321']
[2023-03-08 13:44:28][ERROR] : Exception2: CMS 321
[2023-03-08 13:44:28][DEBUG] : write: AT+CPMS="SM","SM","SM"
[2023-03-08 13:44:28][DEBUG] : response: ['+CPMS: 4,100,4,100,4,100', 'OK']
[2023-03-08 13:44:28][DEBUG] : write: AT+CMGD=1,4
[2023-03-08 13:44:28][DEBUG] : response: ['OK']
[2023-03-08 13:44:58][DEBUG] : write: AT+CREG?
[2023-03-08 13:44:58][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:44:59][DEBUG] : write: AT+CSQ
[2023-03-08 13:44:59][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:44:59][DEBUG] : write: AT+CMGL=0
[2023-03-08 13:44:59][DEBUG] : response: ['OK']
[2023-03-08 13:44:59][DEBUG] : write: AT+CSQ
[2023-03-08 13:44:59][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:44:59][DEBUG] : write: AT+CSQ
[2023-03-08 13:45:00][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:45:00][DEBUG] : write: AT+CSQ
[2023-03-08 13:45:00][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:45:00][DEBUG] : Send to jeedom :  {'number': 'signal_strength', 'message': '29'}
[2023-03-08 13:45:00][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2023-03-08 13:45:00][DEBUG] : http://127.0.0.1:80 "POST /plugins/sms/core/php/jeeSMS.php?apikey=xxx HTTP/1.1" 200 0
[2023-03-08 13:45:30][DEBUG] : write: AT+CREG?
[2023-03-08 13:45:30][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:45:31][DEBUG] : write: AT+CSQ
[2023-03-08 13:45:31][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:45:31][DEBUG] : write: AT+CMGL=0
[2023-03-08 13:45:31][DEBUG] : response: ['OK']
[2023-03-08 13:45:31][DEBUG] : write: AT+CSQ
[2023-03-08 13:45:31][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:46:01][DEBUG] : write: AT+CREG?
[2023-03-08 13:46:01][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:46:02][DEBUG] : write: AT+CSQ
[2023-03-08 13:46:02][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:46:02][DEBUG] : write: AT+CMGL=0
[2023-03-08 13:46:02][DEBUG] : response: ['OK']
[2023-03-08 13:46:02][DEBUG] : write: AT+CSQ
[2023-03-08 13:46:02][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:46:32][DEBUG] : write: AT+CREG?
[2023-03-08 13:46:32][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:46:33][DEBUG] : write: AT+CSQ
[2023-03-08 13:46:33][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:46:33][DEBUG] : write: AT+CMGL=0
[2023-03-08 13:46:33][DEBUG] : response: ['OK']
[2023-03-08 13:46:33][DEBUG] : write: AT+CSQ
[2023-03-08 13:46:33][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:47:03][DEBUG] : write: AT+CREG?
[2023-03-08 13:47:03][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:47:04][DEBUG] : write: AT+CSQ
[2023-03-08 13:47:04][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:47:04][DEBUG] : write: AT+CMGL=0
[2023-03-08 13:47:04][DEBUG] : response: ['OK']
[2023-03-08 13:47:04][DEBUG] : write: AT+CSQ
[2023-03-08 13:47:04][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:47:34][DEBUG] : write: AT+CREG?
[2023-03-08 13:47:34][DEBUG] : response: ['+CREG: 0,5', 'OK']
[2023-03-08 13:47:35][DEBUG] : write: AT+CSQ
[2023-03-08 13:47:35][DEBUG] : response: ['+CSQ: 29,0', 'OK']
[2023-03-08 13:47:35][DEBUG] : write: AT+CMGL=0
[2023-03-08 13:47:35][DEBUG] : response: ['OK']
[2023-03-08 13:47:35][DEBUG] : write: AT+CSQ
[2023-03-08 13:47:36][DEBUG] : response: ['+CSQ: 29,0', 'OK']

test ok … j’y crois pas :pray: :smiling_face_with_three_hearts:
Pas faute d’avoir dit que cela venait « possiblement » de la gestion du flow control :stuck_out_tongue_closed_eyes:

Solution pour modem Lixee sur dernière version du plugin SMS (python3)

1/ Arreter le plugin (c’est une blague, il démarre pas de tt façon :wink: )
2/ Se rendre dans Editeur de fichiers jeedom
Réglages > Système > Configuration
Onglet >_OS/DB
Section Outils Système
→ Editeur de fichiers

3/ Se rendre ici
image
image

4/ Ouvrir le fichier serial_comms.py

5/ Trouver la ligne 50 et modifier rtscts=True par rtscts=False

6/ Sauvegarder et fermer

7/ Relancer le plugin SMS

EDITION du 13/03/23 concernant le non remplacement du dsrdtr

1 « J'aime »

je vais tester de mon coté pour voir si cela à un impact avec un mon modem pcq si en activant cette option ça marche pour lixee et plus pour les autres, va falloir un flag

1 « J'aime »

Je m’en doute

Visiblement, si je change uniquement le rtscts cela suffit pour démarrer le plugin (normal c’est lui porte sur le démarrage et l’arrêt des com), mais je remarque moins d’erreurs (que j’avais déjà sur la version python2 et qui m’obligeait à avoir un script de surveillance / redémarrage du plugin) en désactivant aussi le dsrdtr en complément … Je vais faire des tests pour voir

EDITION du 13/03/23

Just un petit msg pr me faire penser a regarder demain, car le plugin ne fonctionne plus depuis plusieurs semaines/mois pr moi egalement :slight_smile: des fois que…

Je confirme que je n’ai plus aucunes erreurs qui plantaient (via l’ancienne version python2) le plugin plusieurs fois par jour et qui m’imposaient un scenario de monitoring (solution proposé par lixee sur son blog à l’époque). Cela ne fait que 24H, mais cela semble très stable maintenant.

Pourquoi modem Lixee et pas d’autre ? La gestion du flow control dépend (dans le cas d’une émulation série) du Driver (ici FTDI) du modem.

Sur leur site, on trouve

Disable Modem Ctrl At Startup
This option is used to control the modem control signals DTR and RTS at startup. In normal
operation, the modem control signals at startup follow the behaviour of the legacy port. However,
due to timing differences between a legacy COM port and a virtual COM port, a « spike » on one of
these signals in the legacy port can appear as an assertion of the signal in the virtual COM port.

Devices that monitor these signals can enter the wrong state after an unplug-replug cycle on USB.

Note that if the « Serial Enumerator » option in the property page is selected, then the enumeration
sequence causes the modem control signals to change at startup. So if it is necessary to select
« Disable Modem Ctrl At Startup », then it is likely that « Serial Enumerator » should be unchecked in
the property page.

Bravo @J2B !
Ca fonctionne chez moi.
Merci beaucoup pour tes recherches!
Une statue à l’entrée du forum devrait être érigée à ton pseudo!

:joy:
Ça serait bien moche :crazy_face: :pray:

Bravo @J2B pour tes investigations !!!
C’est où la cagnotte pour la statue ?

@alexcrp
Je t’envoie mon RIB en MP, promis, aucun détournement! :innocent:

Quel bonne nouvelle, Merci J2B
Je test ça a mon retour de congé.
Je ferai la mise ajour du pluging et ensuite j’apporterai les modifications que tu as indiqué.

Que donne votre test @Mips ?
Dans le mesure ou le flow control reste intéressant (quand le produit le supporte), il serait bon de ne pas le supprimer du plugin, mais plutôt de le désactiver via une option de configuration (comme le texte mode actuellement) ?

PS : fait maintenant 3 jours que le plugin tourne sans aucune erreur ni plantage (il plantait régulièrement sur la version py2)

Je n’ai pas encore eu le temps.
Je ne comprends pas grand chose à ce Flow control je dois dire mais je n’ai lu qu’en diagonale pour l’instant.

Si tu penses que c’est important alors on peut voir pour mettre une option.
C’est pas super de multiplier les options, ça ne fait que compliquer la maintenance et les soucis de config mais vu la sensibilité générale des clés gsm c’est peut-être mieux pour éviter d’impacter ceux chez qui cela fonctionne pour l’instant.

C’est la doc qui va être plus compliqué… en gros on va devoir dire: « essayez avec et si ça marche pas sans parce qu’on ne sait pas dire » :grimacing:

une options dans le style du plugin KNX par exemple
image

Concernant la doc, depuis le temps que la mise à jour est la, il me semble pas avoir vu d’autre retour (pour le moment) en dehors du modem lixee. Ceci étant dit, il y a pas mal de thread concernant les modems, et certains produits ont peut être été évacués « à tort » des listes des produits « compatibles » en raison de cette option ?

Exactement, pas mal de gens avec des soucis sur config modem Huawei depuis la MAJ du plugin…

Rien ne prouve à ce stade qu’il s’agisse du même problème non plus :slight_smile:

J’ai testé cette modification chez moi et cela fonctionne toujours.

J’ai aussi commencé à préparer le terrain pour rendre cela paramétrable depuis la config du plugin.
Je vais voir pour proposer ça à l’équipe et avoir leur avis afin de livrer une nouvelle bêta avec ces changements ainsi cela pourra être testé par plus de monde (j’espère)

2 « J'aime »

Je refait un test avec dsrdtr=True, rtscts=False
Dans la mesure du possible, plus il y a de contrôle, mieux c’est :wink:

Pour l’instant cela tient la route, si cela reste stable comme cela, je corrigerais ma réponse précédente.

PS : je n’ai pas d’interaction, donc je vais en faire une ou deux histoire de tester cette fonction
Réponse au PS : Interaction OK

bon finalement de mon côté je n’ai pas testé, puisque le msg d’erreur que j’ai au niveau du démon n’est pas du tout celui dont il est question ici …


Visiblement je dois avoir un soucis avec ma VM et/ou ma multi-prise usb
(même si ca fonctionne plusieurs minutes avant de peter)

0065|[2023-03-12 14:02:32]ERROR : Exception on GSM : Attempting to use a port that is not open
0066|[2023-03-12 14:02:32]ERROR : Exit 1 because this exeption is fatal

je verrai pour faire un sujet dédié … :slight_smile:

Je m’amuse beaucoup avec les interactions via sms :slight_smile:

Juste un retour, fonctionne parfaitement avec
dsrdtr=True, rtscts=False

Pas sur que le dsrdtr soit prise en compte une fois le rtscts désactivé, mais tant qu’ à faire autant le conserver.

Donc je corrige mon post solution :slight_smile:

1 « J'aime »