i-magin Posté(e) le 27 décembre 2013 Signaler Posté(e) le 27 décembre 2013 La box HC2 nous permet d'adresser des alertes par email et notification Push. L'envoi de message SMS est bien prévu, mais cette option nécessite d'acheter un pack SMS auprès de Fibaro Vous me direz que les notifications Push fonctionnent très bien ? C'est vrai, mais impossible d'envoyer une alerte si l'accès Internet de votre HC2 est HS Et à l'étranger, je n'active jamais le service des données à l'étranger vu le coà»t induit. Par contre, la réception de SMS est gratuit Si vous pouvez récupérer un smartphone android et souscrire un abonnement à 2€, la solution suivante peut vous intéresser.... Il existe plusieurs applications sous Android qui permettent de créer un serveur SMS. Nous retiendrons ici le serveur PAW (http://paw-android.fun2code.de/) qui ouvre plusieurs possibilités, dont l'envoi de SMS Attention ! Tous les portables ne semblent pas compatibles Pour ma part, j'ai récupéré l'ancien smartphone Samsung Galaxy Ace de ma compagne J'avais installé dans un 1er temps le serveur Paw sans message d'erreur. Mais ensuite, impossible de démarrer le serveur, avec un message non explicite Je me suis douté que le problème était lié au fait que j'avais retiré la carte mémoire SD.J'ai installé une nouvelle carte SD, désinstallé et réinstallé l'application et le serveur s'est bien lancé. Notez qu'il est nécessaire d'effectuer quelques paramétrages, comme : - de préférence attribuer une adresse IP fixe à votre smartphone - faire en sorte que la connexion wifi de votre smartphone soit active en permanence (y compris en veille) Pour les détails de configuration, vous trouverez toutes les informations ici : http://www.abavala.com/2013/01/07/paw-serveur-http-php-perl-pour-android-et-ma-domotique/ Vous trouverez d'autres pages sur ce site, dont l'envoi de SMS : http://www.abavala.com/2013/01/10/paw-envoi-de-notifications-par-sms/ Une fois l'installation effectuée et des tests réussis d'envoi de SMS depuis une ligne de commande HTPP et votre explorateur préféré, vous pourrez passer à votre box HC2 Il faudra créer un module virtuel en précisant l'adresse IP de votre smartphone et le port 8080 Vous configurerez la ligne string suivante (en modifiant le numéro de téléphone) : GET /actions/sms.xhtml?numero=0600000000&message=FIBARO%20MESSAGE%20DE%20TEST HTTP/1.10x0D0x0A0x0D0x0A Il est impératif de terminer votre ligne de commande par HTTP/1.10x0D0x0A0x0D0x0A Inconvénient de cette ligne de commande string : impossible d'insérer une variable Donc, autant de boutons que de messages et impossible d'envoyer une valeur prélevée sur la box. Exemple : impossible d'envoyer un message avec des informations sur les lampes restées allumées (voir script lua "checker l'éclairage chez soi") La solution ? un script lua comme celui-ci : --[[ %% properties %% globals --]] HC2 = Net.FHttp("192.xxx.xxx.xxx", 8080); response, status, errorCode = HC2:GET("/actions/sms.xhtml?numero=0600000000&message=test"); Sauf, qu'il y a un bug LUA et que cela ne fonctionne pas... Et, c'est là que toute la sympathique compétence de @Krikroff intervient. @Krikroff a élaboré un toolkit disponible sur le forum officiel Fibaro Il a adapté son addon pour permettre l'envoi de SMS via serveur PAW Je ne le copie pas ici, je laisse @Krikroff et les administrateurs du site s'en charger Et cela fonctionne impeccable. Vous ne trouverez ci-après que les dernières lignes (main process) du code de @Krikroff : ------------------------------------------------------------------------------------------- -- Main process ------------------------------------------------------------------------------------------- function SendSMS(number, message) local uri = "/actions/sms.xhtml"; local params = "?numero=" .. number .. "&message=" .. urlencode(tostring(message or "empty")); Tk.Net.isTraceEnabled = false; local HttpClient = Tk.Net.HttpRequest("192.xxx.xxx.xxx", 8080); HttpClient:setReadTimeout(500); local response, status, errorCode = HttpClient:request("GET", uri..params, { "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9" }); HttpClient:disconnect(); HttpClient:dispose(); HttpClient = nil; end local message = fibaro:getGlobalValue("sms") -- numéro de tel, message... SendSMS("0600000000", message); Il faut bien sà»r modifier l'adresse Ip et le numéro de tél destinataire A noter que j'ai créé une variable globale "sms" Pour mes tests, j'ai créé une scène qui s'exécute tous les jours à 10H00 Voici son contenu : --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); -- on envoie un sms tous les jours à 10H00 if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "10:00") ) ) then tempext = fibaro:getGlobalValue("tempext") -- température extérieure Netatmo tempint = fibaro:getGlobalValue("tempint") -- température intérieure Netatmo message = ("Bonjour, nous sommes le "..currentDate.day.."/"..currentDate.month.."/"..currentDate.year.." - "..tempext.." - "..tempint.." - A demain !") fibaro:setGlobal("sms", message); -- constitution du message fibaro:call(88, "pressButton", "4"); -- envoi du message par module virtuel end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then tempext = fibaro:getGlobalValue("tempext") tempint = fibaro:getGlobalValue("tempint") message = ("Bonjour, nous sommes le "..currentDate.day.."/"..currentDate.month.."/"..currentDate.year.." - "..tempext.." - "..tempint.." - A demain !") fibaro:setGlobal("sms", message); fibaro:debug(message) fibaro:call(88, "pressButton", "4"); end end Je reçois donc un SMS journalier qui me donne la température extérieure et intérieure de ma station Netatmo J'espère que ce mémo vous sera utile.... 4
fselan Posté(e) le 28 décembre 2013 Signaler Posté(e) le 28 décembre 2013 merci du partage, j'ai mis cela en place sans soucis grâce àla qualité de ce tuto...
Messages recommandés