Recherche
Renseignez vos critères :

Revue de Presse
Publicité

pawPAW : envoi de notifications ou d’actions par SMS

par Hervé
Publiés le: 10 janvier 2013
Commentaires: 21 Commentaires
Catégories: Android, Développement

Le troisième exercice lié à PAW consiste a programmer la fonctionnalité d’envoi de SMS.  Le principe est simple.  Le serveur domotique devant m’alerter par SMS d’un incident survenu se connecte en HTTP au serveur PAW.  En le contactant sur la page dédiée, il lui communique le numéro de téléphone du destinataire ainsi que le message à transmettre.  PAW prend alors relai et effectue l’envoi du SMS au numéro de téléphone. Voyons comment faire.

Le script du jour apporte les spécificités suivantes:

  • Pouvoir être appelé par une simple requête HTTP
  • Pouvoir passer en paramètre le numéro de téléphone à appeler
  • Pouvoir passer en paramètre le message à transmettre

Pour obtenir le service attendu encore une fois il suffit de placer le script sur le serveur et le tour est joué.

Voici le script que je vous propose:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Envoi de SMS</title>

</head>
<body>
<h1>Envoi de SMS</h1>
<bsh>
//déclarations
import de.fun2code.android.pawserver.util.*;

//récupération des paramètre d'entrée
numero = parameters.get("numero");
message = parameters.get("message");

//tests rudimentaires des paramètres
if(numero != null && message != null) {

	sendRes = SmsUtil.sendSms(numero, message);

	if(sendRes) {
		print("<p><b><font color='green'>Message envoyé à " + numero + "</font></b></p>");
	}
	else {
		print("<p><<b><font color='red'>Message en erreur pour " + numero + "</font></b></p>");
	}

}

</bsh>
<h3>Paramètres</h3>
<p>
La page prend en paramètre d'entrée les éléments suivants:<br>
<ul>
<li>numero : Le numéro de téléphone cible</li>
<li>message  : Le texte du SMS</li>
</ul>
</p>
<p>
<h3>Texte du message envoyé:</h3>
<bsh>$$.print(message); </bsh>
</p>
</body>
</hmtl>

L’installation se fait de la même manière que pour le script concernant la reconnaissance vocale.  Le prérequis est bien entendu d’avoir installé au préalable le serveur PAW sur votre téléphone Android comme présenté dans le précédent article:

  • Télécharger le code précédent et le sauvegarder le sur votre disque dur dans un fichier appelé : « sms.xhtml »
  • Se connecter au serveur PAW.
  • Accéder au gestionnaire de fichiers : Menu Media->File manager
  • Dans le répertoire /sdcard/paw/html de votre téléphone créer le répertoire « actions » s’il n’existe pas encore

  • Indiquer l’endroit de votre disque dur où se trouve le script à uploader sur le serveur PAW en cliquant sur « Parcourir ».
  • Sélectionner le fichier « sms.xhtml » et cliquer sur « Open ».
  • Effectuer l’upload en cliquant sur « Upload ».
  • Le message suivant vous confirme le chargement du script sur le serveur.

Il ne vous reste plus qu’à renseigner l’URL adéquate dans un scénario pour une Zibase ou bien dans un périphérique HTTP sur un serveur eedomus.

L’URL à renseigner sera de la forme:

http://192.168.0.10:8080/actions/sms.xhtml?numero=0602030405&message=ceci%20est%20mon%20message

Pensez à modifier « 192.168.0.10″ par l’adresse IP de votre serveur PAW et « 0602030405″ par le numéro de téléphone du destinataire du SMS.  Le contenu du message sera à préciser dans le paramètre « message ».

Pratique et simple, ce script est une alternative à SMS Gateway dont nous avons déjà parlé il y a quelques mois. Il permet à tout système pouvant communiquer en HTTP d’envoyer des SMS.

Ce script permet également faire rentrer votre prise Orange MyPlug dans votre système domotique en lui envoyant un « ON » ou bien un « OFF » par SM.  Pour cela il faut d’abord créer un actionneur HTTP dans votre environnement eedomus et lui affecter 2 valeurs, l’une pour ON et l’autre pour OFF.

Comme le montre la vidéo ci dessous voici le résultat de l’association d’une prise MyPlug et d’une box domotique eedomus.  Le tout est piloté par l’application dédiée de l’eedomus.

Image de prévisualisation YouTube
Si vous avez apprécié, n'hésitez pas à laisser votre commentaire ou à souscrire au flus RSS .

Ceci pourrait vous intéresser:


Publicité

21 Commentaires - Laisser un commentaire
  1. antislash dit :

    Bonjour,

    Très intéressant, je viens de tester avec succès cette solution. Existe t’il a votre avis la possibilité d’intercepter les sms entrants pour qu’ils soient passés à un script ?

  2. Daniel dit :

    Bonjour Hervé,
    J ai testé tous vos articles sur PAW et du coup j ai acheté un mobile Anroid dédié à ces taches en complément de la box eedomus tout cela fonctionne vraiment trés bien et c est relativement facile à metre en oeuvre.Du coup il ne manque plus que de faire décoder les SMS par paw et les transformer en requete http pour activer un périphérique via l api eedomus.

  3. Daniel dit :

    Bonjour Hervé,
    merci pour votre réponse je suis impatient.
    Superbe travail tout au long des articles sur Abavala.
    c est un site de référence !

  4. pikat dit :

    Je n’avais pas encore testé….. tout simplement génial !!!!!
    MERCI et bonne continuation.

  5. Philippe dit :

    Super application en complément de mon Eedomus…
    Et les tutos, extras! merci

    J’ai vu qu’il était possible de lancer une application android depuis le serveur paw.
    Est il possible de la lancer via une requette http?

    Merci d’avance

    • Hervé dit :

      Si c’est possible de lancer une application android depuis PAW, ça ne doit pas être trop compliqué de l’enrober d’une script permettant de l’appeler via une requête http. Je n’ai pas trop regardé ce côté. Ce serait pour quel besoin?

      • Philippe dit :

        Bonsoir Hervé

        J’ai cherché,mais j’ai rien vu là dessus !
        A savoir que je ne suis pas un dieu de l’informatique et des codes! :-)
        Si tu as un moment, je veux bien un peu d’aide…je souhaite lancer ponctuellement une appli android qui se connecte à mon onduleur PV et envoie les données automatiquement vers PVoutput.(des fois cette application se coupe toute seule, j’aimerais donc pouvoir la relancer à distance quand je ne suis pas là ! )

        En te remerciant, d’avance…

  6. Jean-Jacques dit :

    Bonsoir et merci pour cette documentation sur l’utilisation de Paw.
    Je l’utilise avec une box HC2 de Fibaro et cela fonctionne avec un module virtuel dans la mesure où l’on envoie la ligne de commande http au format string… mais gros inconvénient on ne peut inclure une variable.
    J’ai donc essayé en LUA, mais cela ne fonctionne pas. J’ai posté sur un forum français, mais pas de réponse (et je ne maîtrise pas l’anglais pour participer au forum de fibaro)
    Voici le code LUA (sans utilisation de variable pour l’instant)… et merci par avance !
    –[[
    %% properties
    %% globals
    --]]
    HC2 = Net.FHttp(« 192.168.1.32″,8080)
    response = HC2:GET(« /actions/sms.xhtml?numero=0699999999&message=FIBARO%20MESSAGE%20DE%20TEST »)

  7. Jean-Jacques dit :

    J’ai la réponse à ma question précédente : apparemment un bug du code Lua de Fibaro, qui devrait être corrigé.
    Sur le forum de Fibaro, on trouve une solution de @Krikroff avec un addon
    Cordialement

  8. K dit :

    Bonsoir,

    Petit déterrage car je suis en train de tester PAW qui semble correspondre à mon besoin.

    Pensez-vous qu’il soit possible d’envoyer cette requette HTTP depuis une machine située hors du LAN ? (je souhaiterais avoir des notifications pour une machine située hors de chez moi)

    Cordialement

  9. LACOSTE dit :

    Bonjour,
    J’ai installé un Samsung Galaxy SII sur un serveur TSE et j’ai installé Paw Server. Tout est configuré comme vous l’indiquez.
    J’ai créé et importé le fichier sms.xhtml dans le répertoire que j’ai créé sous /sdcard/paw/html/actions/.
    J’ai développé des logiciels sous Access 2007 en VBA avec des tables SQL Server. Je veux pouvoir envoyer des SMS via l’URL mais cela ne fonctionne pas.
    Actuellement l’hébergeur de mon site internet ma communiqué une URL que j’utilise pour envoyer des SMS et cela fonctionne sauf que cela me coûte cher.
    Mon script est le suivant :

    Public Function Test_SendSMS(ByVal SMS_Numero As String, ByVal SMS_Message As String, Optional ByVal SMS_CoupeA160Characteres As Boolean = False)

    On Error Resume Next

    Dim SMS_URL As String, SMS_MessageEncode As String
    Dim http As MSXML2.ServerXMLHTTP

    If SMS_CoupeA160Characteres = True Then
    SMS_MessageEncode = URLEncode(OteAccents(Left$(Replace(Replace(SMS_Message, vbCrLf, « . « ), « / », « - »), 160)))
    Else
    SMS_MessageEncode = URLEncode(OteAccents(Replace(Replace(SMS_Message, vbCrLf, « . « ), « / », « - »)))
    End If

    If AJC_Nz(Len(OteAccents(Replace(Replace(SMS_Message, vbCrLf, « . « ), « / », « - »))), 0 > 0) Then

    SMS_URL = « http://PawAdresseIP:8080/actions/sms.xhtml?numero= » & SMS_Numero & « &message= » & SMS_MessageEncode

    Set http = New MSXML2.ServerXMLHTTP
    http.Open « POST », SMS_URL, False
    http.send

    ‘ En cas de réussite, le code renvoyé est 200
    If (http.Status = 200) Then
    ‘ Afficher la réponse du serveur dans la fenêtre Exécution
    SendSMS_AJC_ReponseLong = http.responseText

    If (http.responseText = 1) Then
    SendSMS_AJC_ReponseTexte = « Réponse HTTP :  » & http.StatusText &  » le SMS a été envoyé. »
    ElseIf (http.responseText = 0) Then
    SendSMS_AJC_ReponseTexte = « Réponse HTTP :  » & http.StatusText &  » – erreur lors de l’envoi du SMS. »
    ElseIf (http.responseText = -1) Then
    SendSMS_AJC_ReponseTexte = « Réponse HTTP :  » & http.StatusText &  » – problème d’identification au WebService. »
    Else
    SendSMS_AJC_ReponseTexte = « Réponse HTTP :  » & http.StatusText &  » – aucune information communiquée. »
    End If
    Else
    SendSMS_AJC_ReponseTexte = « Réponse HTTP sur l’Erreur :  » & http.Status &  » –  » & http.StatusText
    End If

    Set http = Nothing
    End If

    End Function

    Le problème est que cela ne fonctionne pas.
    Peux-tu me donner un coup de main ?

    Je t’en remercie à l’avance.

    JCL

  10. jCL dit :

    Le principe est assez simple. Cela ressemble à du VB.
    Je pense que le script sms.HTML ne fonctionne pas!

  11. jCL dit :

    Quelqu’un a t’il testé le script SMS.xhtml ? Il me semble qu’il ne fonctionne pas lorsque l’on veut exécuter l’irlandais sous un script vba.
    J’arrive à faire fonctionner un lin URL SMS que m’a communiqué mon hébergeur mais le script sms.xhtml ne répond pas.
    Quelqu’un a t’il essaye ?
    Merci.

Laisser un commentaire

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


+ 3 = 9

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



International
    Translate to:

Plugin created thanks to micro sd card , r4i uk , sd card and r4i gold
Publicité
Prochains évènements
  • 5 septembre 2014IFA - Berlin
  • 10 septembre 2014CEDIA - Denver
  • 23 septembre 2014CES Unveiled - SAO PAULO
  • 24 septembre 2014SmartGrid+SmartCity -Paris La Défense
  • 24 septembre 2014IBS Intelligent Building Systems - Paris La Défense
AEC v1.0.4
Partenaires
Univers Domotique Annuaire de la Domotique en France Domadoo Planète Domotique