Utilisation d’une API Web d’envoi de SMS depuis Jeedom

J’ai cherché une solution simple pour envoyer des SMS d’alerte ou d’info depuis Jeedom. Il y a déjà pas mal de solutions proposées soit via un compte Free soit via GSM ( clé 3G, Modem, Téléphone ). Comme je n’ai rien de tout cela j’ai cherché un service web d’envoi de SMS simple à coupler avec Jeedom et avec un tarif acceptable.

J’ai essayé une 5 ou 6 services de ce type. Puis j’ai réduit ma liste à trois (messageBird, nexmo, OVHTelecom) que j’ai vraiment utilisé avec Jeedom. En final j’ai gardé OVHTelecom SMS.

OVH avait pour moi le bon compromis, prix / API.

Coté tarif : OVH n’est pas le mois cher mais ils ont un pack de 100 SMS pour 8€40. Mon objectif est d’envoyer des alarmes qui je l’espère ne se déclencheront jamais. J’ai prévu d’envoyer un SMS de test par semaine pour être certain que la fonction est toujours active donc avec 100 SMS le tiens 18 mois. C’est donc moins qu’un abonnement à 2€. Les autres service sont un peu moins chers mais les pack sont beaucoup plus gros donc il faut investir plus des années.

Autre avantage pour moi d’OVH c’est que c’est en France et que je l’utilise déjà pour d’autres services.

L’ API d’OVH est simple à utiliser mais la configuration du compte un peu longue … je l’ai détaillé ici.

 

Configuration d’un compte OVH pour SMS

D’abord ouvrir un compte sur https://www.ovhtelecom.fr/sms

Pour envoyer des SMS avec API vous avez besoin de :

  • N° de compte OVH SMS
  • Nom d’utilisateur  API
  • mot de passe de l’utilisateur API
  • nom expediteur

« N° de compte OVH SMS »  c’est ici sur la page d’accueil en haut et sur la gauche dans le menu:

Nom d’utilisateur API et son mot de passe, il faut le créer via le menu utilisateurs API (cercle vert) puis sur Action / Ajouter  vous donner un nom et un mot de passe:

Ensuite Expéditeur, il y a un par défaut créé avec le compte mais vous pouvez en créer plusieurs autres. Par contre il faut plusieurs heures/jours pour qu’ils soient validés donc utilisable (  status = ‘Activé’ ):

Voila vous avez tout ce qu’il faut pour envoyer un SMS depuis Jeedom.

Example : Alert lorsque la température de mon congélateur remonte au dessus de -10

  • N° de compte OVH SMS                       = sms-JB007-7
  • Nom d’utilisateur  API                          =  jeedomAPI
  • mot de passe de l’utilisateur API        = PASSXXXXXX
  • nom expéditeur                                      = jeedom
  • téléphone du destinataire                    = 0607007007 donc format international = 0033607007007
  • Titre SMS                                                = Alert-Jeedom
  • Message                                                   = Temp. congel = -9.8

L’URL aura cette forme :


https://www.ovh.com/cgi-bin/sms/http2sms.cgi?&account=sms-JB007-7&login=jeedomAPI&password=PASSXXXXXX&from=jeedom&to=0033607007007&contentType=text/xml&message=%22Alert-Jeedom%0dTemp. congel = -9.8%22&noStop=1


%22 : correspondent aux caractère  »

%0d : correspond à un saut de ligne

noStop=1   très important force l’envoi immédiat, quelque soir heure. Ces API sont souvent utilisées pour envoyer des messages marketing qui ne peuvent pas être envoyés le soir et la nuit.

Utilisation de l’API SMS OVH dans Jeedom

J’ai utilisé le plugins Script de Jeedom pour appeler API d’OVH. ce plugins officiel permet d’appeler des scripts Python/Shell/PHP/.. mais aussi des appels HTTP. Si ce n’est pas fait il vous faudra donc installer le plugins Script depuis le Market puis l’activé. Depuis le plugins qui est disponible dans le groupe programmation il faut « Créer un commande script » comme ceci :

 

type Script  HTTP  type : Action avec Message. Très important le timeout doit être à 5 secondes mini et la répétition à 2. Par défaut le timeout est de deux secondes ce qui est trop court dans certain cas pour l’API d’OVH. Si le timeout est atteint sans que l’API est répondue Jeedom va réessayer l’envoi, résultat vous aller recevoir plusieurs SMS pour rien. Avec 5s je n’ai jamais plus eu de problème.

Les scripts action avec message reçoivent deux valeurs le #title# et le #message#.

Donc l’URL devient :


https://www.ovh.com/cgi-bin/sms/http2sms.cgi?&account=sms-JB007-7&login=jeedomAPI&password=PASSXXXXXX&from=jeedom&to=0033607007007&contentType=text/xml&message=#title#%0d#message#&noStop=1


Dans un écran Jeedom cela donne ceci :

Vous pouvez faire le test saisir un titre et un message et faire vous devez recevoir le SMS dans les secondes qui suivent. Vous pouvez voir sur le tableau de suivie d’OVH si le message est bien partie, Menu SMS puis Historique des envoi. Si vous n’avez pas mis le noStop=1 votre SMS va apparaitre dans les SMS planifiés.

 

Envoi d’un SMS depuis un scénario JEEDOM

Rien de spécial il suffit d’appeler votre commande depuis une action du scénario :

Voila une première utilisateur de l’API SMS OVH dans Jeedom. Comme je l’ai expliqué au début de l’article j’ai fait les mêmes tests ave nexmo et messageBird j’ai encore les URL compatibles Jeedom pour ceux qui seraient intéressé.

 

chevalir

One Comment

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *