Site icon Abavala !!!

SMS Gateway : une passerelle SMS à la maison

Si vous avez votre serveur domotique en place et qu’une alerte doit vous être remontée il existe plusieurs manières de le faire : SMS, Pushme.to, push via l’application Smartphone de votre serveur domotique… Ces solutions marchent très bien mais ont un point faible: elles nécessitent une connexion internet.  Les SMS par exemple sont générés par votre box domotique puis sont envoyés en HTTP sur internet au serveur central de votre solution domotique.  Là ils sont envoyés au format SMS sur le réseau GSM via une passerelle.  Si votre box Internet qui vous relie au web n’est plus opérationnelle… l’alerte ne pourra jamais vous parvenir.  C’est là qu’une plateforme SMS à la maison peut vous être utile.  Voyons comment en construire une.

Caractéristiques recherchées

Avec l’arrivée des forfaits à tarifs réduits (merci Free! 60 SMS pour 2 € par mois) incluant des SMS il peut maintenant s’avérer intéressant d’utiliser un système domicilié chez soi pour envoyer des SMS.

La passerelle SMS pour être compatible avec le maximum de solutions domotiques (on n’est jamais à l’abri d’en changer ou d’employer plusieurs à la maison) doit pouvoir discuter de manière simple et standardisée.  Le protocole HTTP peut être une bonne solution car largement utilisée et supportée.

La passerelle SMS doit pouvoir avoir une alimentation secourue afin de faire face à des coupures électriques.

La passerelle SMS doit être indépendante de l’opérateur téléphonique afin de pouvoir en changer éventuellement en fonction des offres du marché existantes ou à venir.

La passerelle SMS doit pouvoir être simple d’utilisation et de paramétrage.  Elle ne doit nécessiter aucune intervention de maintenance particulière.

La solution doit être peu coûteuse et pouvoir être remplacée très rapidement en cas de défaillance.  C’est important en cas de panne surtout si ce composant prend une importance dans le système mis en place

La solution que je vous propose semble tenir toutes ces promesses.  Elle nécessite une partie matérielle et une partie logicielle. La partie logicielle est gratuite pour une utilisation non commerciale. Et le matériel peut presque être gratuit… si on a de la chance.

Mise en œuvre de partie matérielle

Pour construire la partie matérielle afin de cette réaliser cette passerelle point besoin de sortir votre fer à souder.  Il vous faut simplement un Smartphone sous Android.   Et encore un modèle d’occasion pourra largement faire l’affaire!  Il n’est pas indispensable de prendre une foudre de guerre d’autant que la partie logicielle ne nécessite qu’une version Android 1.6 ou plus récente.  Pensez que ce Smarphone restera à la maison.

Avec la politique de renouvellement des téléphones, vous pourrez trouver un smartphone Android de seconde main pour pas grand chose.  Parlez-en autour de vous, si vous avez de la chance une âme charitable pourra même vous céder son vieux smartphone devenu inutile.  Vous débarrasserez ainsi votre connaissance d’un objet devenu encombrant et redonnerez ainsi vie à cet objet délaissé. 😉 C’est cette deuxième solution qui m’a permis d’utiliser un Smartphone Sony sous Android 2.3.2. Merci Guillaume!

L’avantage d’utiliser un smartphone c’est qu’il peut facilement être secouru… par sa propre batterie!  Il peut facilement être utilisé via n’importe quel opérateur téléphonique afin de trouver celui qui sera le plus abordable.  La communication en HTTP peut être facilement établie via une connexion wifi.  Sur un smartphone vous pourrez également aller un peu plus loin dans la surveillance en utilisant des solutions comme on{x} par exemple afin de vous avertir lorsque le smartphone fonctionnera sur batterie (panne de courant?) ou lorsque le smartphone ne captera plus de Wifi (panne, coupure internet, brouillage).

Mise en œuvre de la partie logicielle

Pour la partie logicielle il vous suffit d’installer le logiciel SMS Gateway (de l’éditeur APK Soft) disponible sur Google Play.  Il s’agit, comme son nom l’indique, d’une passerelle SMS qui sera hébergée entièrement sur votre Smartphone Android. La passerelle communique avec votre système domotique via HTTP sur votre réseau local en utilisant votre connexion WiFi (sauf si votre smatphone peut se connecter en Ethernet).

Une version identique mais payante de l’application SMS Gateway existe si vous souhaitez soutenir les développeurs.

Très simple d’utilisation il suffit de paramétrer SMS Gateway pour qu’elle crée un serveur HTTP au sein de votre téléphone en lui spécifiant un port (ou laisser celui par défaut).  Votre serveur domotique communiquera avec la passerelle SMS en HTTP via ce serveur web embarqué.  Un mot de passe peut être demandé afin de limiter les accès au serveur web.  Ce mot de passe devra être spécifié dans la requête http (ce n’est pas aussi sécurisé que https mais bon…).

Pour sécuriser un peu plus le système, vous pourrez empêcher que le téléphone ne sommeille trop profondément et empêcherez ainsi la perte de SMS lors d’un réveil trop prolongé (Prevent CPU sleep mode). Vous pourrez également demander que cette application se lance toute seule au démarrage du téléphone (Start gateway automatically after phone boot).  Cela évitera des oublis.

Le SMS de votre serveur domotique sera envoyé directement par la passerelle dès qu’il s’adressera à elle via une URL de la forme:

http://192.168.0.12:9090/sendsms?phone=xxxxxxxxxx&text=ceci%20est%20unt%20test&password=yyyyy

En admettant que 192.168.0.12 soit l’adresse IP de votre Smartphone dans votre réseau local et 9090 le port spécifié sur l’interface de l’application,  xxxxxxxxxx devra être remplacé par le numéro de téléphone vers lequel vous voulez envoyer le SMS et yyyyy devra être remplacé par le mot de passe que vous avez défini.  Après “text=” vous pourrez librement spécifier le corps du SMS à expédier.

L’application vous indique l’URL à utiliser donc pas besoin de rechercher son adresse IP.  Pour qu’elle ne change pas il peut être pratique de la rendre constante dans votre réseau local Cela se fait en la rendant statique en renseignant son adresse MAC et l’adresse IP souhaitée dans le paramétrage de votre box internet ou serveur DHCP.

Il vous suffit ensuite d’appuyer sur “Start” pour lancer la passerelle.

Côté serveur domotique

Côté serveur domotique, il faudra simplement renseigner l’adresse HTTP à l’endroit prévu à cet effet.  La manière de faire dépend de votre système bien évidemment.

  • Dans un scénario de la Zibase via l’action “Commander par HTTP” par exemple :

 

  • Dans un “actionneur HTTP” sur la box eedomus :

  • Dans l’application Kron de votre Kartoz afin de vous informer que votre enfant est rentrée à la maison :

Pour aller plus loin

Cette application permet également de servir de passerelle entre une adresse mail et les SMS.  La passerelle marche dans les 2 sens.  Un SMS peut être converti en mail et un mail peut être envoyé en SMS.  Là par contre il faudra que Internet fonctionne à la maison pour pouvoir se connecter au serveur de messagerie ou pour envoyer des mails.

Cela permet d’envoyer à un système d’envoyer des informations par mail puis à la passerelle de les réexpédier par SMS.  Cette fonctionnalité est prise en compte gratuitement par ifttt mais à une fréquence de 15 minutes.  Si vous avez besoin d’être informés plus rapidement cela peut être une bonne solution.

Le système mis en place peut être utilisé pour piloter par SMS votre serveur domotique.  Nous avons vu qu’il sert de passerelle HTTP => SMS.  Ce qui est bien c’est qu’il permet également de servir de passerelle SMS => HTTP.  En renseignant une URL à atteindre en cas de réception de SMS, SMS Gateway peut contacter un serveur web via HTTP en lui communicant le numéro de téléphone de l’expéditeur ainsi que le contenu du SMS reçu…

Si vous êtes à l’extérieur de la maison et que Internet est hors service dans votre domicile ou alors tout bêtement très lent sur votre lieu de vacances, vous ne pourrez pas accéder à votre système domotique pour agir ou tout simplement pour le consulter.  En développant votre petite application web vous pourrez faire en sorte que l’envoi d’un SMS “Temp Salon” vous soit répondu par un SMS “Il fait 24.5 degrés dans le Salon”.  En un SMS vous pourrez également commander également l'”ouverture Garage” pour que votre voisin puisse vous emprunter votre tondeuse…

Tout est possible! Il vous faudra juste un site web disponible pour y placer votre développement maison en PHP ou tout autre langage de développement web afin de décoder les SMS et apporter l’interaction souhaitée.  Pour ne pas partir de zéro, l’éditeur propose un exemple en PHP.

Cette solution peut tout à fait être envisagée pour une maison secondaire qui n’aurait pas Internet branché en continu (ou branché du tout).

Pour aller encore plus loin

Si vous avez besoin de faire parler un système avec le monde des SMS de manière plus poussée, vous pouvez jeter un coup d’œil à EnvayaSMS.  Se logiciel est moins simple à intégrer mais permet de recevoir des statuts, de gérer les MMS, de gérer des queues d’attentes de SMS,… Il semble plus puissant mais nécessite des connaissances en développement informatique.

En espérant que votre opérateur de téléphonie mobile ne soit pas en panne le jour où vous en aurez besoin!

Quitter la version mobile