Aller au contenu

jpr105

Membres confirmés
  • Compteur de contenus

    67
  • Inscription

  • Dernière visite

Réputation sur la communauté

8 Neutral

À propos de jpr105

  • Rang
    Membre interessé
  • Date de naissance 29/11/1949

Profile Information

  • Sexe :
    Homme
  • Ville :
    Metz
  • Box
    Home Center 2
  • Version
    4.180

Visiteurs récents du profil

196 visualisations du profil
  1. APIs BULKSMS et PRESENCE NETATMO

    Bonjour, Je me réponds à moi-même pour vous faire un retour d’expérience … si cela peut servir à quelqu’un ;-) Ceci concerne l’envoi de SMS à des personnes de confiance dans le cadre d’une procédure d’alarme (donc conso SMS réputée faible) Plusieurs approches pour cela : le téléphone dédié sous Android avec service tournant sur le téléphone relié à un Raspberry, lui-même pilotable par la HC2 (trop geek pour moi) l’utilisation du service « Notifications par SMS » de chez Free qui est bien mais qui sous-entend que vos personnes de confiance soient toutes chez Free passage par un opérateur d’envoi de SMS payant Pour ma part j’ai fait un mixte de SMS envoyés via Free et de SMS envoyés par BulkSMS (https://www.bulksms.com/) BulkSMS, avantages/inconvénients : Avantages mode API disponible et bien documenté possibilité d’envoyer des e-mail qui se transforment en SMS chez eux et donc possibilité d’utiliser le panneau de notifications de Fibaro (ça j’ai pas testé) support technique réactif par courriel et même joignable au téléphone … in English of course espace utilisateur clair possibilité d’envoi de SMS à des « groupes » avec substitution de variables « Nom », « Prénom » possibilité de personnaliser le « Sender ID » du message (Ex : BoxFibaroTartenpion) possibilité de laisser les destinataires répondre aux SMS avec : consultation des réponses dans l’espace client possibilité de faire suivre les réponse par courriel possibilité d’envoyer une réponse automatique (payante bien sûr) achat de pack de crédits non limités dans le temps possibilité de se faire allouer des crédits pour la période de test Inconvénients politique tarifaire un peu glauque : on achète un pack de crédits et non un pack de SMS, ainsi un SMS pour la France peut couter de 1,75 à 2 crédits il y a possibilité d’obtenir une réduction du SMS de 15% en terminant le texte par le tag « : via BulkSMS.com » … mais cela ne fonctionne pas en mode API, c’est juste dans l’espace client, dommage nombre de crédits alloués pour la période de tests vraiment insuffisant (20) … mais après négociations ils me les ont recrédité ;-) Donc du point de vue Fibaro J’utilise 3 variables « BulkSMS », « BulkSMS_ID », « BulkSMS_RC » « BulkSMS_ID » contient tout ce qui est nécessaire à l’exécution de l’API (URL, Token d’identification). Cette variable est remplie une bonne fois pour toute dans une scène au démarrage de la HC2 ou via déclenchement manuel local IDBulk = {} -- Sauvegarde des ID BulkSMS dans la variable globale BulkSMS_ID -- Le Token ID est 8Fxxxxxxxxxxxxxxxxxxxxxxx-7 -- Le Token secret est QQxxxxxxxxxxxxxxxxxxxxN -- La chaîne "TokenID:TokenSecret" sera passée en Base64 on line via le site https://www.base64encode.org/ -- Résultat : OExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxp4Tg== IDBulk[1] = "https://api.bulksms.com/v1/messages" IDBulk[2] = "OExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxp4Tg==" fibaro:setGlobal('BulkSMS_ID',json.encode(IDBulk)) « BulkSMS » est la partie « opérationnelle » de l’API. Le changement d’état de cette variable déclenche la scène « Send SMS via BulkSMS ». Je l’ai programmée pour gérer 2 types d’envoi : vers un individu ou vers un groupe car la syntaxe n’est pas la même selon le cas. --[[ %% properties %% events %% globals BulkSMS --]] -- Activation du Debug local log = true -- Récupération de l’identification BulkSMS local IDBulk = json.decode((fibaro:getGlobal('BulkSMS_ID'))) local URLBulk = IDBulk[1] local TokenBulk = IDBulk[2] -- Récupération de l’action à entreprendre local BulkSMS = json.decode((fibaro:getGlobal('BulkSMS'))) local ModeBulk = BulkSMS[1] local DestiBulk = BulkSMS[2] local MessageBulk = BulkSMS[3] -- Codes retours BulkSMS local ReturnCodeTexte = { [201]=" - Created", [400]=" - Bad Request", [403]=" - Forbidden", [999]=" - Error" } local ReturnCodeValue = "" -- Affichage des premières variables if log then fibaro:debug("URL Bulk = " .. URLBulk) fibaro:debug("Token Bulk = " .. TokenBulk) fibaro:debug("Mode d’envoi = " .. ModeBulk) fibaro:debug("Destinataire = " .. DestiBulk) fibaro:debug("Message = " .. MessageBulk) end -- Construction du Body local Body = "" if ModeBulk == "S" then Body = '{"to": "' .. DestiBulk .. '", "body": "' .. MessageBulk .. '"}' else if ModeBulk == "G" then Body = '{"to": { "type": "GROUP", "name": "' .. DestiBulk .. '" }, "body": "' .. MessageBulk .. '"}' else print('Mode d’envoi inconnu : ' .. ModeBulk) fibaro:abort() end end -- Construction de l’authentification local Autorisation = "Basic " .. TokenBulk if log then fibaro:debug("Authentification = " .. Autorisation) fibaro:debug("Body = " .. Body) end -- Et maintenant la requête local http = net.HTTPClient({timeout = 1000}); http:request(URLBulk, { options = { method = 'POST', headers = { ["Authorization"] = Autorisation, ["Content-Type"] = "application/json" }, data = Body }, success = function(data) fibaro:setGlobal('BulkSMS_RC', data.status) end, error = function(err) fibaro:setGlobal('BulkSMS_RC', 999) end }) -- Récupération du code retour depuis la variable globale ReturnCodeValue = tonumber(fibaro:getGlobalValue('BulkSMS_RC')) if log then fibaro:debug("Code retour = " .. ReturnCodeValue .. ReturnCodeTexte[tonumber(ReturnCodeValue)]) end if log then fibaro:debug("C'est fini") end « BulkSMS_RC » contient le code retour de l’envoi du SMS. Pour l’instant je n’ai rien fait mais pourquoi pas une scène déclenchée par cette variable et dédiée à la gestion d’erreur ? Et pour finir, la partie la plus simple … Cas d’un envoi à une seule personne -- Initialisation des variables local Jour = os.date("%d-%m-%Y") local Heure = os.date("%X") local Horo = " le " .. Jour .. " à " .. Heure local Texte = "" local BulkSMS = {} -- Envoi sur portable JPR Texte = "Test Push iBidules - SMS envoyé via BulkSMS sur portable JPR" .. Horo -- On initialise la variable BulkSMS BulkSMS[1] = "S" BulkSMS[2] = "+336xxxxxx87" BulkSMS[3] = Texte fibaro:setGlobal('BulkSMS',json.encode(BulkSMS)) Cas d’un envoi à un groupe -- On envoie au groupe BulkSMS Texte = "Bonjour {fn######}, alarme déclenchée" .. Horo .. "\nNe prenez aucun risque, appelez le 17 !\nMme BIDULE a les clefs - Merci" -- On initialise la variable BulkSMS BulkSMS[1] = "G" BulkSMS[2] = "Liste alarme 01" BulkSMS[3] = Texte fibaro:setGlobal('BulkSMS',json.encode(BulkSMS)) Et voilà c’est fini. Si cela peut servir, tant mieux et merci au post Plugin Free Mobile SMS initié par @Krikroff qui m’a bien inspiré Have a good day - Jean-Paul
  2. Plugin - Free Mobile Sms

    Nada ...
  3. Plugin - Free Mobile Sms

    Merci @pepite, J'avais bien le même code que toi mais j'étais resté en Percent-Encoding pour mes tests ... bouhhhh J'ai donc envoyé le message tel quel, sans transformations et avec mes accents et tout il est bon Patron
  4. Plugin - Free Mobile Sms

    Bon finalement je lâche l'approche en « method = 'POST', headers = {['Content-Type'] = 'application/json'} » qui avait l'avantage ... selon Free ... de pouvoir envoyer son texte directement sans l'encoder en « Percent-encoding » ... ky disaient Dixit « Vous pouvez également, si vous le préférez, envoyer les paramètres en POST. Dans ce cas, le contenu du message n'a pas besoin d'être encodé. » ... OK pour les espaces mais pour les chers accents de notre belle langue ... tu repasseras Je suis donc revenu à @Krikroff et j'ai utilisé son code comme @gorn ici Quant à mes précieux accents je vais faire une routine pour les gérer. En tout cas, en envoyant ça : J'obtiens ça : C'est plutôt bien, les SMS passent, mais je suis comme tout le monde concernant la gestion du code retour et le [ fatal] I/O error: End of file Est-ce que notre grand gourou @Krikroff a une idée lumineuse ? Est-ce que je peux partir sur cette base « pseudo-instable » sachant que je voudrais intégrer cet envoi de SMS dans mon futur scénario d'alarme ? Merci d'avance et bonne fin de pont ... voire viaduc Cordialement - Jean-Paul
  5. Plugin - Free Mobile Sms

    Ça devient chaud pour le a accent grave. C'est un à suivi d'un espace insécable ( ) . Avec les transformations json est compagnie ça doit se perdre dans les tuyaux ...
  6. Plugin - Free Mobile Sms

    @schwinny on progresse, on progresse ... si j'envoie ce texte : je récupère ce magnifique texte sur mon smartphone Par contre le à (a accent grave) est passé à la trappe Merci pour tes conseils
  7. Plugin - Free Mobile Sms

    Bon et bien je jette l'éponge pour ce soir. Pour les accents ... pas trouvé Pour le code retour ... j'ai bien mon code 200 avec l'extension RESTClient de Firefox ... donc Free y zont tout compris et ça doit donc coincer au niveau de mon code Fibaro ... mais là j'vois pas
  8. Plugin - Free Mobile Sms

    C'était une bonne idée, la chaine JSON est toute belle Mais le résultat un peu moins ... En tout cas merci
  9. Plugin - Free Mobile Sms

    Décidément il est coriace ... je vire le https du début
  10. Plugin - Free Mobile Sms

    Oups, Je voulais montrer cette forme d'URL
  11. Plugin - Free Mobile Sms

    Bonjour, Je ne voudrais pas réinventer le fil à couper le beurre mais j'ai besoin des SMS Free Mobile (Mon Amoureuse et moi-même avons tout compris ) Je suis parti des recos de Free disant que l'on pouvait utiliser la méthode POST pour ne pas avoir à réencoder le texte en « Percent-encoding » Après avoir fouillé à droite à gauche je suis arrivé à cela : --[[ %% properties %% events %% globals --]] local url = 'https://smsapi.free-mobile.fr/sendmsg' local user = "16xxxx29" local pass = "frxxxxxxxxxGO" local msg = "Test POST envoyé avec accents" local contenu = {} contenu.user = user contenu.pass = pass contenu.msg = msg jcontent = json.encode(contenu) fibaro:debug(jcontent) local http = net.HTTPClient() http:request(url, { options = { method = 'POST', headers = {['Content-Type'] = 'application/json'}, data = jcontent } }) Ce que ça donne : je reçois le SMS ... sans les caractères accentués la fenêtre débug m'affiche « [DEBUG] 16:04:27: [1;31m2018-04-30 16:04:27.952009 [ fatal] I/O error: End of file » Je précise que si j'envoie le SMS via un navigateur sous cette forme « https://smsapi.free-mobile.fr/sendmsg?user=16xxxxx29&pass=frxxxxxxxxxGO&msg=Test Push iBidules - SMS envoyé via Free Mobile sur portable JPR le 27-04-2018 à 08:36:14 » cela fonctionne parfaitement accents compris !! Ce sur quoi vous pourriez m'aider : pensez-vous que l'on puisse gérer les accents avec cette méthode ? comment récupérer le code retour Free Mobile ? pourquoi j'ai « [ fatal] I/O error: End of file » et est-ce grave Docteur ? Merci d'avance pour vos retours Cordialement - Jean-Paul
  12. APIs BULKSMS et PRESENCE NETATMO

    Vieux motard que jamais ... surtout après l'opération "Une rose un espoir" d'hier
  13. APIs BULKSMS et PRESENCE NETATMO

    TU VIRES "http://192.168.1.xx" DES CHAMPS "URL JPG" & "URL du flux MPEG", TU LAISSES LE "/" ET TOUT CE QUI SUIT ... THAT'S ALL
  14. APIs BULKSMS et PRESENCE NETATMO

    @tchulio Il faudrait que tu lises les réponses jusqu'au bout ... relis mon précédent post que tu as d'ailleurs cité
  15. APIs BULKSMS et PRESENCE NETATMO

    @tchulio je pense que tu ne dois pas être loin au regard des copies d'écran que tu as envoyé. Dans le champ "Adresse IP" ... juste l'adresse IP ... ex : 192.168.10.25 Dans les champs URL JPG & URL du flux MPEG ... ce qui se trouve après le slash le l'adresse locale, slash compris ... ex : http://192.168.10.25/eefçac'estmoncodeàmoi561/live/snapshot_720.jpg ==> juste la partie en gras Help your self
×