{"id":1019,"date":"2020-04-02T11:27:25","date_gmt":"2020-04-02T09:27:25","guid":{"rendered":"http:\/\/miniprojets.net\/?p=1019"},"modified":"2022-12-17T17:25:17","modified_gmt":"2022-12-17T16:25:17","slug":"raspisms-ou-comment-faire-un-serveur-sms-pour-son-installation-domotique","status":"publish","type":"post","link":"https:\/\/miniprojets.net\/index.php\/2020\/04\/02\/raspisms-ou-comment-faire-un-serveur-sms-pour-son-installation-domotique\/","title":{"rendered":"RaspiSMS ou comment faire un serveur SMS pour son installation domotique"},"content":{"rendered":"\n<p>Salutations \u00e0 tous!<\/p>\n\n\n\n<p>Aujourd&#8217;hui je vous propose de faire un serveur SMS sur une raspberry pi afin de permettre \u00e0 votre installation domotique de vous pr\u00e9venir lorsque des choses anormales arrivent dans votre maison. <\/p>\n\n\n\n<p>Pour information, je me suis aid\u00e9 des sites suivants pour \u00e9crire cet article: <\/p>\n\n\n\n<p><a href=\"https:\/\/raspberry-pi.fr\/raspisms-raspberry-pi-sms-internet\/\">https:\/\/raspberry-pi.fr\/raspisms-raspberry-pi-sms-internet\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/community.jeedom.com\/t\/sms-huawei-e3531-sim-free-retour-dexperience\/20271\">https:\/\/community.jeedom.com\/t\/sms-huawei-e3531-sim-free-retour-dexperience\/20271<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/gammu\/gammu\/issues\/490#issuecomment-598063743\">https:\/\/github.com\/gammu\/gammu\/issues\/490#issuecomment-598063743<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/wammu.eu\/docs\/manual\/project\/install.html\">https:\/\/wammu.eu\/docs\/manual\/project\/install.html<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.instructables.com\/id\/Giving-the-Raspberry-Pi-a-Serial-Modem-Using-the-H\/\">https:\/\/www.instructables.com\/id\/Giving-the-Raspberry-Pi-a-Serial-Modem-Using-the-H\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/raspisms.raspberry-pi.fr\/documentation\/\">https:\/\/raspisms.raspberry-pi.fr\/documentation\/<\/a><\/p>\n\n\n\n<p class=\"has-large-font-size\">Partie 0) Le mat\u00e9riel  <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Une raspiberry pi<\/li><li>Une cl\u00e9 Huawei E3531<\/li><li>Une carte Sim (pour ma part j&#8217;ai pris le forfait 2\u20ac de cher free)<\/li><\/ul>\n\n\n\n<p class=\"has-large-font-size\">Partie 1) Mise en place de la Raspberry Pi<\/p>\n\n\n\n<p>Si c&#8217;est la premi\u00e8re fois que vous utiliser une raspberry pi,  je vous propose de faire exactement comme pour la partie 1 de l&#8217;article pour la pr\u00e9parer.<\/p>\n\n\n\n<p><a href=\"https:\/\/miniprojets.net\/index.php\/2019\/05\/13\/jeedom-ou-comment-domotiser-sa-maison-en-quelques-clics\/\"> https:\/\/miniprojets.net\/index.php\/2019\/05\/13\/jeedom-ou-comment-domotiser-sa-maison-en-quelques-clics\/<\/a><\/p>\n\n\n\n<p class=\"has-large-font-size\">Partie 2) Installation de RaspiSMS<\/p>\n\n\n\n<p>Apr\u00e8s avoir installer la carte SIM dans la cl\u00e9 et l&#8217;avoir brancher sur un port USB du raspberry pi, nous pouvons d\u00e9marrer la rapsberry et se connecter \u00e0 elle.<\/p>\n\n\n\n<p>La premi\u00e8re \u00e9tape, il faut que l&#8217;on permette \u00e0 la raspberry de reconnaitre la cl\u00e9 Huawei comme un modem. Pour cela, il faut configurer l&#8217;utilitaire usb_modeswitch qui est normalement pr\u00e9install\u00e9 sur les distributions raspbian.<\/p>\n\n\n\n<p>il faut pour cela, connaitre les identifiants de la cl\u00e9 en faisant la commande<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsusb<\/code><\/pre>\n\n\n\n<p>Nous retrouvons dans les r\u00e9sultats la ligne suivante: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bus 001 Device 007: ID 12d1:15e7 Huawei Technologies Co., Ltd.<\/code><\/pre>\n\n\n\n<p>Donc maintenant nous allons cr\u00e9er le fichier de configuration pour notre cl\u00e9 en tapant la ligne de commande<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/usb_modeswitch.d\/12d1:157d<\/code><\/pre>\n\n\n\n<p>il faudra copier\/coller dans ce fichier les lignes suivantes (au choix, pour info la premi\u00e8re a \u00e9t\u00e9 test\u00e9e):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>TargetVendor=0x12d1\nTargetProduct=0x1f01\nMessageContent=\"55534243123456780000000000000011062000000100000000000000000000\"<\/code><\/pre>\n\n\n\n<p>ou<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Huawei E3531\nDisableSwitching=1\nTargetVendor=0x12d1\nTargetProduct=0x1001\nMessageContent=\"55534243123456780000000000000011062000000100000000000000000000\"\nNoDriverLoading=1<\/code><\/pre>\n\n\n\n<p>Maintenant faites un ctrl+x pour sauver le fichier puis rebooter la raspberry avec la commande suivante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo reboot<\/code><\/pre>\n\n\n\n<p>Une fois la raspberry red\u00e9marr\u00e9e, vous pouvez vous reconnecter dessus et taper la commande:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls \/dev<\/code><\/pre>\n\n\n\n<p>Normalement si tout est ok, vous verrez apparaitre <code>ttyUSB0<\/code>, <code>ttyUSB1<\/code> et <code>ttyUSB2<\/code> dans la liste de r\u00e9sultat.<\/p>\n\n\n\n<p>Maintenant que la cl\u00e9 est pr\u00eate, nous pouvons attaquer l&#8217;installation de RaspiSMS \u00e0 proprement parl\u00e9. Pour cela, il faut faire les lignes de commandes suivantes: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget http:\/\/raspisms.raspberry-pi.fr\/download\/raspisms-2.0.2.deb<\/code><\/pre>\n\n\n\n<p>Cette premi\u00e8re ligne est \u00e0 adapter en fonction de la version voulue.<\/p>\n\n\n\n<p>Actuellement  RaspiSMS change de version et de fonctionnement; j&#8217;ai forker pour garder un version &#8220;Stable&#8221; et que je maitrise donc vous pouvez utiliser cette commande ci-dessous en attendant:<\/p>\n\n\n\n<pre id=\"block-5ae97a32-9819-4fd0-bfa9-563701e91542\" class=\"wp-block-code\"><code>wget http:\/\/expe-smarthouse.duckdns.org\/raspisms-2.0.2.deb<\/code><\/pre>\n\n\n\n<p>Maintenant nous pouvons proc\u00e9der \u00e0 l&#8217;installation de la fa\u00e7on suivante: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo dpkg -i .\/raspisms-2.0.2.deb\nsudo apt-get -f install<\/code><\/pre>\n\n\n\n<p>Vous aurez plusieurs questions: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Il est possible de configurer automatiquement gammu. Pour cela, le module GSM g\u00e9rant la carte SIM doit-\u00eatre connect\u00e9 \u00e0 la Raspberry Pi. Voulez-vous le faire ? &#91;y\/n]<\/code><\/pre>\n\n\n\n<p>Tapez Y<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Rentrez le code PIN de votre carte SIM. (Laissez vide si elle n'a pas de code PIN)<\/code><\/pre>\n\n\n\n<p>Mettez le code PIN de votre carte SIM \u00e0 la deuxi\u00e8me (logique tout cela!!!)<\/p>\n\n\n\n<p>Vous aurez aussi les lignes suivantes<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Le fichier de configuration \/etc\/gammu-smsdrcrc a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 correctement.\nLa base de donn\u00e9es de RaspiSMS va \u00eatre d\u00e9ploy\u00e9e.\nCr\u00e9ation de l'utilisateur MySQL ''raspisms''\nraspisms password = SXXXXXXXXXXXXXXXXXXXXD\nL'utilisateur MySQL 'raspisms' a bien \u00e9t\u00e9 cr\u00e9\u00e9. Vous pouvez retrouver son mot de passe dans le fichier '\/var\/www\/html\/RaspiSMS\/mvc\/constants.php'.\nLa base de donn\u00e9es a \u00e9t\u00e9 correctement d\u00e9ploy\u00e9e.\nLa connexion a la base de donn\u00e9es pour RaspiSMS va \u00eatre configur\u00e9e avec le compte root<\/code><\/pre>\n\n\n\n<p>Copier la bien en cas de probl\u00e8me, cela peut-\u00eatre utile. Vous aurez ensuite la question suivante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Le compte administrateur pour RaspiSMS va \u00eatre cr\u00e9\u00e9. Choisissez une adresse e-mail et un mot de passe pour ce compte<\/code><\/pre>\n\n\n\n<p>Remplissez correctement les champs demand\u00e9s en retenant bien (sinon vous serez coinc\u00e9&#8230;.)<\/p>\n\n\n\n<p class=\"has-large-font-size\">Partie 3: Adaptation pour r\u00e9soudre certains probl\u00e8mes<\/p>\n\n\n\n<p>Une fois l&#8217;installation faite, nous devons faire d&#8217;autres manipulations avant de pouvoir utiliser RaspiSMS correctement car en l&#8217;\u00e9tat, nous aurons des erreurs sur la r\u00e9ception des SMS. Ils seront la plupart du temps comme retour dans le debuggage de Gammu sous la forme:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ignoring incoming SMS info as not a Status Report in SR memory.<\/code><\/pre>\n\n\n\n<p>donc nous allons devoir faire les lignes de commandes suivantes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># stop deamon gammu\nsudo systemctl stop gammu-smsd\n# Suppression de la version install\u00e9 par le plugin gammu\nsudo apt-get remove gammu gammu-smsd python-gammu\n# clone de repo officiel\ngit clone https:\/\/github.com\/gammu\/gammu.git\n# installation des dependances\nSudo apt-get install cmake python-dev pkg-config libpq-dev  libcurl4-gnutls-dev libusb-1.0-0-dev libdbi0-dev libbluetooth-dev  libgudev-1.0-dev libglib2.0-dev unixodbc-dev  libmariadb-dev-compat libmariadb-dev\n# Compilation\ncd gammu-master\n.\/configure\nmake\nsudo make install\nsudo ldconfig<\/code><\/pre>\n\n\n\n<p>Une fois l&#8217;installation faite, il faudra juste remettre la bonne variable dans le fichier de service de Gammu. Pour cela, on fait la commande suivante: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/lib\/systemd\/system\/gammu-smsd.service<\/code><\/pre>\n\n\n\n<p>et on change l&#8217;emplacement du fichier de conf en rempla\u00e7ant: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EnvironmentFile=-\/etc\/sysconfig\/gammu-smsd<\/code><\/pre>\n\n\n\n<p>par <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EnvironmentFile=-\/etc\/gammu-smsdrc<\/code><\/pre>\n\n\n\n<p>Faites ctrl+x pour sauvegarder<\/p>\n\n\n\n<p>il faut maintenant modifier le fichier de configuration de Gammu. Pour cela, il faut \u00e9diter le fichier \/etc\/gammu-smsdrc<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/gammu-smsdrc<\/code><\/pre>\n\n\n\n<p>rajouter atgen_setCNMI=1,2,0,0,0 \u00e0 la configuration des [gammu]. Cela doit donner un fichier qui ressemble \u00e0 la configuration ci-dessous:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">; Configuration file generated by gammu-detect.\n; Please check The Gammu Manual for more information.\n\n[gammu]\nGammuCoding = utf8\nGammuLoc = fr_FR.UTF8\ndevice = \/dev\/ttyUSB0\nname = Phone on USB serial port HUAWEI HUAWEI_Mobile\nconnection = at\natgen_setCNMI=1,2,0,0,0\n\n[gammu1]\nGammuCoding = utf8\nGammuLoc = fr_FR.UTF8\ndevice = \/dev\/ttyUSB1\nname = Phone on USB serial port HUAWEI HUAWEI_Mobile\nconnection = at\natgen_setCNMI=1,2,0,0,0\n\n[gammu2]\nGammuCoding = utf8\nGammuLoc = fr_FR.UTF8\ndevice = \/dev\/ttyUSB2\nname = Phone on USB serial port HUAWEI HUAWEI_Mobile\nconnection = at\natgen_setCNMI=1,2,0,0,0\n\n# SMSD configuration, see gammu-smsdrc(5)\n[smsd]\nservice = files\nlogfile = syslog\n# Increase for debugging information\ndebuglevel = 0\nRunOnReceive = \/var\/www\/html\/RaspiSMS\/parseSMS.sh\n# Paths where messages are stored\ninboxpath = \/var\/spool\/gammu\/inbox\/\noutboxpath = \/var\/spool\/gammu\/outbox\/\nsentsmspath = \/var\/spool\/gammu\/sent\/\nerrorsmspath = \/var\/spool\/gammu\/error\/<\/pre>\n\n\n\n<p>Sauvegardez en faisant ctrl+X.<\/p>\n\n\n\n<p>Maintenant, on redemarre le daemon<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload\nsudo systemctl start gammu-smsd<\/code><\/pre>\n\n\n\n<p>Normalement tout doit fonctionner, cependant j&#8217;ai du faire une modification de droit sur le fichier parseSMS.sh (!!!cette op\u00e9ration est risqu\u00e9e!!!! car je donne full acc\u00e8s sur ce fichier!!!!!)<\/p>\n\n\n\n<p>On commence par faire:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i<\/code><\/pre>\n\n\n\n<p>pour \u00eatre en root puis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 666 \/var\/www\/html\/RaspiSMS\/parseSMS.sh\nchmod +x \/var\/www\/html\/RaspiSMS\/parseSMS.sh\nexit<\/code><\/pre>\n\n\n\n<p>Je sais cela n&#8217;est pas propre mais je n&#8217;ai pas trouv\u00e9 l&#8217;origine du probl\u00e8me initial.<\/p>\n\n\n\n<p>L\u00e0 maintenant tout est OK!!!!<\/p>\n\n\n\n<p class=\"has-large-font-size\">Partie 4) Utilisation de RaspiSMS<\/p>\n\n\n\n<p>Pour utiliser RaspiSMS, il y a 2 moyens: <\/p>\n\n\n\n<p>Le premier est de se connecter directement sur l&#8217;interface web de RaspiSMS avec l&#8217;adresse suivante:  <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">http:\/\/IP:DE:VOTRE:RASPBERRY\/RaspiSMS <\/pre>\n\n\n\n<p>(exemple 192.168.1.13\/RaspiSMS)<\/p>\n\n\n\n<p>et la seconde est lui envoyer des requ\u00eates sur l&#8217;API comme par exemple:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/IPDEVOTRERASPBERRY\/RaspiSMS\/smsAPI\/?email=EMAILDUCOMPTE\\&amp;password=PASSWORDDUCOMPTE\\&amp;contacts=Jerome\\&amp;date=2020-03-29%2020:38\\&amp;text=Texte%20du%20SMS%20\u00e0%20envoyer<\/code><\/pre>\n\n\n\n<p>Pour ma part j&#8217;utilise la premi\u00e8re m\u00e9thode pour faire du monitoring des SMS envoy\u00e9 o\u00f9 re\u00e7u (mais il y a plein d&#8217;autres possibilit\u00e9s) et la deuxi\u00e8me m\u00e9thode pour l&#8217;inclure directement dans Jeedom pour faire de la notification. <\/p>\n\n\n\n<p>Par contre, je vous conseille de ne l&#8217;utiliser que dans votre r\u00e9seau informatique directement et de ne pas l&#8217;ouvrir vers l&#8217;ext\u00e9rieur car l&#8217;application est encore en d\u00e9veloppement.<\/p>\n\n\n\n<p>Voil\u00e0!!!! Vous avez tout ce qu&#8217;il faut pour faire un serveur SMS pour que Jeedom ou autres puissent vous envoyer des SMS sur des \u00e9v\u00e9nements!<\/p>\n\n\n\n<p>Bonne continuation et amusez vous bien!<\/p>\n\n\n\n<p>J\u00e9r\u00f4me Ferrari<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salutations \u00e0 tous! Aujourd&#8217;hui je vous propose de faire un serveur SMS sur une raspberry pi afin de permettre \u00e0&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1032,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[18],"class_list":["post-1019","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mini-projet","tag-domotique"],"_links":{"self":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/1019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/comments?post=1019"}],"version-history":[{"count":0,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/1019\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media\/1032"}],"wp:attachment":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media?parent=1019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/categories?post=1019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/tags?post=1019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}