Suite à mon article sur le modem GSM pour envoyer/recevoir des SMS et contrôler sa maison secondaire, j’ai décidé de concevoir le modem GSM-DIN que vous pouvez retrouver sur la boutique.
Voici la procédure à suivre pour le mettre en activité sous Jeedom.
Installation du matériel.
Voici les éléments fournis.
Branchez le câble USB au modem et installez le sur son rail DIN.
Branchez la prise USB sur votre Jeedom et insérez la carte SIM en suivant les instructions sur l’étiquette.
Maintenant que le matériel est installé, passons à la partie logiciel.
Installation du plugin SMS
Il est nécessaire d’aller sur le Market Jeedom à la recherche du plug-in officiel SMS.
Dans la plus grande tradition Jeedom, il suffit d’installer le plug-in en suivant les photos suivantes :
Je vous propose de sélectionner la version stable qui fonctionne très bien.
Il vous suffit de répondre par OK.
Dans un premier temps, il va être nécessaire d’activer le plugin et d’installer les dépendances. Il est important que le statut passe au vert avant d’essayer de démarrer et de configurer le plug-in plus avant.
Une fois les dépendances installées.
Il faut choisir le port sur lequel le MoDem USB est connecté.
Il devrait apparaître sous le nom de LiXee-GSM. (Pour la démonstration, c’est ZiGate)
Ensuite, vous pouvez choisir la vitesse de communication et je vous préconise d’être à 9600 bauds si vous laisser tourner votre système 24 heures sur 24.
Vous avez aussi la possibilité de renseigner le code PIN associé à votre carte Sim.
Il y a aussi la valeur cycle qui est intéressante, positionnée à 30s par défaut. Vous pouvez la changer mais ne descendez pas trop bas car en fait c’est la fréquence d’interrogation du MoDem. Si vous descendez trop bas vous risquez d’avoir des petits soucis.
Dans mon cas, j’utilise une valeur de trois secondes ce qui est extrêmement bas mais le système semble se comporter correctement.
Maintenant que le plug-in est configuré vous pouvez démarrer le démon et son statut doit passer au vert.
Si ce n’est pas le cas choisissez le niveau de Log à « debug », sauvegardez, puis relancez le démon pour regarder ce qui se passe dans le fichier log SMS.
Ensuite il va falloir créer un équipement qui va représenter votre modem GSM.
Donc pour cela, il vous suffira d’appuyer sur le +.
De lui donner un nom.
L’activer et de le rendre visible.
Ainsi que de l’attacher à un objet parent pour qu’il soit visible dans le Dashboard.
Une fois fait, il va falloir ajouter le numéro de téléphone des correspondants qui vont recevoir les SMS envoyés par Jeedom.
Sauvegardez et allez dans le Dashboard pour trouver l’objet permettant d’envoyer les messages.
Remarque :
Le démon qui tourne derrière le plug-in est assez sensible à des plantages venant de la communication avec le MoDem surtout si celui-ci tourne 24 heures sur 24, 30 jours par mois etc.
Afin de détecter deux cas de plantage et permettre de redémarrer le démon, je vous propose un scénario qui va monitorer les logs et détecter les anomalies.
Scénario de secours
Il est nécessaire d’avoir le démon qui tourne en mode « debug ».
Voici le script avec le code que vous pouvez mettre dans votre scénario.
Vous pouvez le faire tourner toutes les minutes ou modifier le cron en fonction de vos besoins.
Avec mon système de clé GSM par le passé, j’avais plusieurs plantages par jour.
Avec ce nouveau MoDem je n’ai plus que deux plantages par mois qui sont gérés par le scénario. La solution est donc devenue extrêmement robuste et je ne m’en occupe plus.
Avant, c’était un réel souci de savoir si le système de SMS fonctionnait et la plupart du temps demandait une intervention manuelle.
Conclusion
Voici donc un petit tutoriel rapide vous permettant d’utiliser le modem GSM SIM800L avec Jeedom et son plugin SMS.
Je remercie @KiWiHC16 pour ce tutoriel et son retour d’expérience. Je trouve cela très intéressant et enrichissant.
D’ailleurs si cela vous plait et que vous souhaitez vous aussi partager votre expérience, n’hésitez pas à me contacter et si ce genre de format vous plait (ou pas :)), n’hésitez pas à le mettre en commentaire.
A bientôt !
hello, super tuto, serait t’il possible d’avoir le bloc code en mode texte, flemme de tout recopier lol,
merci d’avance
Thank you!!1
Bonjour,
Merci pour le tuto que j’ai suivi avec attention.
Le démon au démarrage passe en OK puis en NOK
J’ai une carte sim SFR.
[2021-01-26 16:58:24][INFO] : Lancement démon sms : /usr/bin/python /var/www/html/plugins/sms/resources/smsd/smsd.py –device /dev/ttyUSB0 –loglevel debug –socketport 55002 –serialrate 9600 –pin 1527 –textmode no –smsc +33609001390 –cycle 30 –callback http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php –apikey XXXXXXXXXXXXXXXXXXXXXXXXX –pid /tmp/jeedom/sms/deamon.pid
[2021-01-26 15:58:25][INFO] : Start smsd
[2021-01-26 15:58:25][INFO] : Log level : debug
[2021-01-26 15:58:25][INFO] : Socket port : 55002
[2021-01-26 15:58:25][INFO] : Socket host : 127.0.0.1
[2021-01-26 15:58:25][INFO] : PID file : /tmp/jeedom/sms/deamon.pid
[2021-01-26 15:58:25][INFO] : Device : /dev/ttyUSB0
[2021-01-26 15:58:25][INFO] : Apikey : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[2021-01-26 15:58:25][INFO] : Callback : http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php
[2021-01-26 15:58:25][INFO] : Cycle : 30.0
[2021-01-26 15:58:25][INFO] : Serial rate : 9600
[2021-01-26 15:58:25][INFO] : Pin : 1527
[2021-01-26 15:58:25][INFO] : Text mode : no
[2021-01-26 15:58:25][INFO] : SMSC : +33609001390
[2021-01-26 15:58:25][DEBUG] : Writing PID 10201 to /tmp/jeedom/sms/deamon.pid
[2021-01-26 15:58:25][DEBUG] : Init request module v2.12.4
[2021-01-26 15:58:25][DEBUG] : Starting new HTTP connection (1): 127.0.0.1
[2021-01-26 15:58:25][DEBUG] : http://127.0.0.1:80 « GET /plugins/sms/core/php/jeeSMS.php?apikey=XXXXXXXXXXXXXXXXXXXXXXXXXX HTTP/1.1″ 200 0
[2021-01-26 15:58:25][DEBUG] : Socket interface started
[2021-01-26 15:58:25][DEBUG] : LoopNetServer Thread started
[2021-01-26 15:58:25][DEBUG] : Start listening…
[2021-01-26 15:58:25][DEBUG] : Listening on: [127.0.0.1:55002]
[2021-01-26 15:58:25][DEBUG] : Connecting to GSM Modem…
[2021-01-26 15:58:25][DEBUG] : Text mode false
[2021-01-26 15:58:25][DEBUG] : Enter pin code : 1527
[2021-01-26 15:58:25][INFO] : Connecting to modem on port /dev/ttyUSB0 at 9600bps
[2021-01-26 15:58:25][DEBUG] : write: ATZ
[2021-01-26 15:58:25][DEBUG] : response: [‘ATZ
‘, ‘OK’]
[2021-01-26 15:58:25][DEBUG] : write: ATE0
[2021-01-26 15:58:25][DEBUG] : response: [‘ATE0
‘, ‘OK’]
[2021-01-26 15:58:25][DEBUG] : write: AT+CFUN?
[2021-01-26 15:58:25][DEBUG] : response: [‘+CFUN: 1’, ‘OK’]
[2021-01-26 15:58:25][DEBUG] : write: AT+CMEE=1
[2021-01-26 15:58:26][DEBUG] : response: [‘OK’]
[2021-01-26 15:58:26][DEBUG] : write: AT+CPIN?
[2021-01-26 15:58:26][DEBUG] : response: [‘+CPIN: SIM PIN’, ‘OK’]
[2021-01-26 15:58:26][DEBUG] : write: AT+CPIN= »1527 »
[2021-01-26 15:58:26][DEBUG] : response: [‘OK’]
[2021-01-26 15:58:26][DEBUG] : write: AT+CLAC
[2021-01-26 15:58:26][DEBUG] : response: [‘+CME ERROR: 100’]
[2021-01-26 15:58:26][DEBUG] : write: AT+WIND?
[2021-01-26 15:58:26][DEBUG] : response: [‘+CME ERROR: 100’]
[2021-01-26 15:58:26][DEBUG] : write: AT+CGMI
[2021-01-26 15:58:26][DEBUG] : response: [‘SIMCOM_Ltd’, ‘OK’]
[2021-01-26 15:58:26][DEBUG] : write: AT+ZPAS?
[2021-01-26 15:58:26][DEBUG] : response: [‘+CME ERROR: 100’]
[2021-01-26 15:58:26][INFO] : Unknown/generic modem type – will use polling for call state updates
[2021-01-26 15:58:26][DEBUG] : write: AT+COPS=3,0
[2021-01-26 15:58:26][DEBUG] : response: [‘OK’]
[2021-01-26 15:58:26][DEBUG] : write: AT+CMGF=0
[2021-01-26 15:58:26][DEBUG] : response: [‘+CME ERROR: 14’]
[2021-01-26 15:58:26][DEBUG] : Device/SIM busy error detected; self._writeWait adjusted to 0.200000s
[2021-01-26 15:58:26][DEBUG] : notification: [‘+CPIN: READY’]
[2021-01-26 15:58:26][DEBUG] : Unhandled unsolicited modem notification: [‘+CPIN: READY’]
[2021-01-26 15:58:26][DEBUG] : write: AT+CMGF=0
[2021-01-26 15:58:26][DEBUG] : response: [‘OK’]
[2021-01-26 15:58:27][DEBUG] : self_writeWait set to 0.1 because of recovering from device busy (515) error
[2021-01-26 15:58:27][DEBUG] : write: AT+CSCA?
[2021-01-26 15:58:27][DEBUG] : response: [‘+CMS ERROR: 302’]
[2021-01-26 15:58:27][ERROR] : Exception: CMS 302
[2021-01-26 15:58:27][ERROR] : Exit 1 because this exeption is fatal
[2021-01-26 15:58:27][DEBUG] : Send to jeedom : {‘message’: ‘CMS 302’, ‘number’: ‘none’}
[2021-01-26 15:58:27][DEBUG] : Shutdown
[2021-01-26 15:58:27][DEBUG] : Removing PID file /tmp/jeedom/sms/deamon.pid
[2021-01-26 15:58:27][DEBUG] : Starting new HTTP connection (1): 127.0.0.1
[2021-01-26 15:58:27][DEBUG] : LoopNetServer Thread stopped
[2021-01-26 15:58:27][DEBUG] : Exit 0
Bonjour,
certains opérateurs nécessitent de rentrer le « SMSC Number »
il faut aussi peut-être cocher le Textmode pour l’envoi de SMS (AT+CMGF = 1)
Fred
salut, as-tu trouvé une solution à l’erreur :
»
[2021-01-26 15:58:27][DEBUG] : response: [‘+CMS ERROR: 302’]
[2021-01-26 15:58:27][ERROR] : Exception: CMS 302
«
Bonjour,
J’ai rencontré ce problème également. Dans mon cas comme dans celui de @Jio, l’erreur CMS 302 arrivait à la suite de la demande du numéro du centre de messages « SMS center service address » (la commande « AT+CSCA? »).
« Le SMS center service address » est pour le fonctionnement des SMS, ce qu’est le serveur SMTP pour les mails. C’est l’adresse du fournisseur du service.
[2021-01-26 15:58:27][DEBUG] : write: AT+CSCA?
[2021-01-26 15:58:27][DEBUG] : response: [‘+CMS ERROR: 302’]
Si comme moi tu es dans ce cas : j’ai observé que lorsque le modem est mis sous tension, et qu’on lui demande cette information assez rapidement, il ne sait pas y répondre. Je suppose donc qu’il obtient cette information depuis le réseau, et qu’elle n’est pas stockée en dure dans la carte SIM. Pour résoudre, il suffit de lui redemander + tard (attendre 1 ou 2 minutes par exemple le temps qu’il s’enregistre sur le réseau).
Dans mon cas, j’avais positionné le modem dans une zone avec peu de réseau (aucune barre sur mon téléphone). Le comportement restait en erreur même plusieurs heures après la mise sous tension du modem.
J’ai résolu mon problème en déplaçant le modem à un endroit avec + de réseau. Pour ma part, je trouve quand même que le modem capte plutôt bien car dans la nouvelle zone choisie, j’a une barre seulement sur mon téléphone, hors le modem annonce un signal assez élevé (entre 6 et 9 sur 15) (commande « AT+CSQ »).
Si tu utilises Jeedom : tu peux activer la gestion automatique du daemon SMS. Ainsi, s’il n’arrive pas à démarrer du 1er coup, Jeedom réessaiera de le démarrer régulièrement (~5minutes de mémoire).
En espérant que cela t’aide à avancer, bonne journée 🙂
Bonjour,
Je n’arrive pas à lancer le démon,
il plante toujours sur une erreur CME 10 (mauvais contact avec la sim ?)
[2021-05-28 12:04:28][DEBUG] : write: ATZ
[2021-05-28 12:04:28][DEBUG] : response: [‘ATZ
‘, ‘OK’]
[2021-05-28 12:04:28][DEBUG] : write: ATE0
[2021-05-28 12:04:28][DEBUG] : response: [‘ATE0
‘, ‘OK’]
[2021-05-28 12:04:28][DEBUG] : write: AT+CFUN?
[2021-05-28 12:04:28][DEBUG] : response: [‘+CFUN: 1’, ‘OK’]
[2021-05-28 12:04:28][DEBUG] : write: AT+CMEE=1
[2021-05-28 12:04:28][DEBUG] : response: [‘OK’]
[2021-05-28 12:04:28][DEBUG] : write: AT+CPIN?
[2021-05-28 12:04:28][DEBUG] : response: [‘+CME ERROR: 10’]
[2021-05-28 12:04:28][ERROR] : Exception: CME 10
La sim Free neuve est active et fonctionne sur un tel de test,
je ne sais pas trop quoi tester maintenant ?
Bonjour,
Vérifiez que la SIM est bien inséré et dans le bon sens. Cette erreur signifie que la carte SIM est mal insérée
Après X tentatives cela fonctionne,
PS : Il faut bien enclencher la carte SIM profondément dans le boitier jusqu’au double clic
(j’ai du utiliser un tournevis plat n’ayant pas d’ongles long)
$tab = file(‘/var/www/html/log/sms’);
$avant_der_ligne = $tab[count($tab)-2];
$der_ligne = $tab[count($tab)-1];
$error = 0;
if( (!strpos($avant_der_ligne, « [ERROR] : Exception on GSM : None ») === false) || (!strpos($der_ligne, « [ERROR] : Exception on GSM : None ») === false) )
{
message::add(‘Check SMS’,’SMS Ko! Reboot du plugin! (Cas 1)’);
$error = 1;
$DaemonStop = sms::deamon_stop();
sleep(10);
$DaemonStart = sms::deamon_start();
}
if( (!strpos($avant_der_ligne, « Exit ») === false) || (!strpos($der_ligne, « Exit ») === false) )
{
message::add(‘Check SMS’,’SMS Ko! Reboot du plugin! (Cas 2)’);
$error = 1;
$DaemonStop = sms::deamon_stop();
sleep(10);
$DaemonStart = sms::deamon_start();
}
if ( $error == 0 )
{
//message::add(‘Check SMS’,’Everything looks Ok.’);
}
Bonjour,
Est-il possible de faire fonctionner le module sous Windows 10 ? Lorsque je le branche sur le PC, un périphérique « LiXee-GSM » apparait avec un point d’exclamation jaune dans la catégorie « Autre périphérique.
Ayant lu ton article : https://faire-ca-soi-meme.fr/domotique/2020/03/04/modem-gsm-diy-envoyer-des-sms/
J’ai vu que tu utilisais un module CP2102 pour communiquer avec le SIM800L. Windows n’arrivant pas à installer de pilote, j’ai essayer d’installer le pilote manuellement du CP2102 trouvés ici https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
Je vais donc le sélectionner manuellement dans la liste. Là, le périphérique apparait dans la catégorie des ports COM, toujours avec un point d’exclamation jaune : « Ce périphérique ne peut pas démarrer. (Code 10) » . Cette erreur est typique lorsque ce n’est pas le bon pilote utililsé.
J’ai aussi essayé des pilotes du SIM800L : https://simcom.ee/documents/?dir=
C’est peut-être tout bête…mais je ne vois pas comment m’en sortir. Merci pour votre aide et bonne journée à tous,
Bonjour,
Non, pour tous les produits DIN, le driver utilisé est le ftdi. C’est le FT232R.
Fred
Merci pour ta réponse rapide !
J’ai téléchargé les pilotes FTDI que tu conseilles ici : https://zigate.fr/documentation/tester-la-zigate-usb/?seq_no=2
Sous putty :
at
OK
at+cpin=0000
OK
+CPIN: READY
Call Ready
SMS Ready
at+cmgf=1
OK
at+cmgs= »+33611223344″
>test {CTRL+Z}
ERROR
Une idée de ce que je fais mal ?
Bonjour,
Pour avoir plus d’informations sur l’erreur, il faut lancer la commande at+cmee=2
Bonjour,
Tuto suivi a la lettre mais le demon ne se lance pas. au départ erreur CME 10 mais grace au commentaire j’ai pu voir qu’il fallait bien encliqueter la carte sim au fond du modem.
premier problème réglé mais maintenant J’ai l’erreur CME 15 alors que c’est bien une carte sim de free a 2€
Une idée de ce qui ne va pas ?
Pour info j’ai testé la carte sim sur un téléphone et elle fonctionne.
T.
Bonjour,
En complément voici les logs :
[2021-07-13 17:18:53][INFO] : Start smsd
[2021-07-13 17:18:53][INFO] : Log level : debug
[2021-07-13 17:18:53][INFO] : Socket port : 55002
[2021-07-13 17:18:53][INFO] : Socket host : 127.0.0.1
[2021-07-13 17:18:53][INFO] : PID file : /tmp/jeedom/sms/deamon.pid
[2021-07-13 17:18:53][INFO] : Device : /dev/ttyUSB0
[2021-07-13 17:18:53][INFO] : Apikey : UQJHYUhnhMejW9MhgfpcAFq5Dq58A1AI
[2021-07-13 17:18:53][INFO] : Callback : http://127.0.0.1:80/plugins/sms/core/php/jeeSMS.php
[2021-07-13 17:18:53][INFO] : Cycle : 10.0
[2021-07-13 17:18:53][INFO] : Serial rate : 9600
[2021-07-13 17:18:53][INFO] : Pin : 1234
[2021-07-13 17:18:53][INFO] : Text mode : no
[2021-07-13 17:18:53][INFO] : SMSC : None
[2021-07-13 17:18:53][DEBUG] : Writing PID 26811 to /tmp/jeedom/sms/deamon.pid
[2021-07-13 17:18:53][DEBUG] : Init request module v2.21.0
[2021-07-13 17:18:53][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2021-07-13 17:18:53][DEBUG] : http://127.0.0.1:80 « GET /plugins/sms/core/php/jeeSMS.php?apikey=UQJHYUhnhMejW9MhgfpcAFq5Dq58A1AI HTTP/1.1 » 200 0
[2021-07-13 17:18:53][DEBUG] : Socket interface started
[2021-07-13 17:18:53][DEBUG] : LoopNetServer Thread started
[2021-07-13 17:18:53][DEBUG] : Start listening…
[2021-07-13 17:18:53][DEBUG] : Listening on: [127.0.0.1:55002]
[2021-07-13 17:18:53][DEBUG] : Connecting to GSM Modem…
[2021-07-13 17:18:53][DEBUG] : Text mode false
[2021-07-13 17:18:53][DEBUG] : Enter pin code : xxxx
[2021-07-13 17:18:53][INFO] : Connecting to modem on port /dev/ttyUSB0 at 9600bps
[2021-07-13 17:18:53][DEBUG] : write: ATZ
[2021-07-13 17:18:53][DEBUG] : response: [‘OK’]
[2021-07-13 17:18:53][DEBUG] : write: ATE0
[2021-07-13 17:18:53][DEBUG] : response: [‘ATE0
‘, ‘OK’]
[2021-07-13 17:18:53][DEBUG] : write: AT+CFUN?
[2021-07-13 17:18:54][DEBUG] : response: [‘+CFUN: 1’, ‘OK’]
[2021-07-13 17:18:54][DEBUG] : write: AT+CMEE=1
[2021-07-13 17:18:54][DEBUG] : response: [‘OK’]
[2021-07-13 17:18:54][DEBUG] : write: AT+CPIN?
[2021-07-13 17:18:54][DEBUG] : response: [‘+CME ERROR: 15’]
[2021-07-13 17:18:54][ERROR] : Exception: CME 15
[2021-07-13 17:18:54][ERROR] : Exit 1 because this exeption is fatal
[2021-07-13 17:18:54][DEBUG] : Shutdown
[2021-07-13 17:18:54][DEBUG] : Removing PID file /tmp/jeedom/sms/deamon.pid
[2021-07-13 17:18:54][DEBUG] : Send to jeedom : {‘message’: ‘CME 15’, ‘number’: ‘none’}
T.
Bonjour,
(suite pour ceux qui lisent), Sans réponse pour faire avancé le problème j’ai renvoyé le modem chez Domadoo qui me l’ont remplacé. Le nouveau fonctionne mieux (le modem était donc défectueux…. , ça peux arriver)
Donc installation du modem en suivant le tuto et très bon fonctionnement pendant quelques jours (je reçois bien les SMS) puis plantage de celui-ci (malgré la mise en place du scénario). l’erreur est la suivante :
[2021-08-24 14:25:07][DEBUG] : Waiting for network…
[2021-08-24 14:25:07][DEBUG] : write: AT+CREG?
[2021-08-24 14:25:07][DEBUG] : response: [‘+CREG: 0,0’, ‘OK’]
[2021-08-24 14:25:07][ERROR] : Exception: Device not searching for network operator
[2021-08-24 14:25:07][ERROR] : Exit 1 because this exeption is fatal
Le démon ne veux pas redémarrer même après une réinstallation des dépendances.
Le modem n’ayant pas changé de place je ne voie pas pourquoi il y aurait soudainement une perte de réseau… et qui dure (demon arrêté depuis hier soir)
Si une bonne âme a une idée ? (en tous cas, pour l’instant (et ca n’engage que moi) je ne suis pas emballé par ce système encore trop sensible)
T.
Bonjour,
Je partage mon expérience, ça pourra peut être faire gagner du temps à quelqu’un !
Au départ, je pensais à un problème du module Lixee mais en testant avec une carte SIM chez Orange, l’envoi des SMS via Jeedom fonctionnait correctement !
J’ai donc remis la carte SIM de chez Syma qui utilise le réseau de SFR.
Et là je me rend compte que le SMSC de Syma est un numéro espagnol : +34607000871
La solution était donc toute simple, configurer dans le module SMS mon numéro au format international +33
a+
Retour d’expérience aussi,
un nombre énorme d’erreur, tellement que même avec le script qui tourne, je rate des SMS (qui pourtant sont franchement pas nombreux moins de 5 par semaines), dommage, manque pas grand chose pourtant.
Erreur CMS 321
Exception on GSM : Attempting to use a port that is not open
je me demande si le port usb alimente suffisamment le modem (je n’ai qu’une clé en plus sur les autres ports)
Merci pour ce super tuto, exactement ce dont j’avais besoin !
Je m’en vais de ce pas acheter le gsm, m’abonner à free (2€) et installer ça sur ma box jeedom Atlas.
Utilisation : notification d’alertes critiques : incendie, intrusion…
Je vous tiens informé des éventuels problèmes… ou du succès total 🙂