jpr105 Posté(e) le 30 avril 2018 Auteur Signaler Posté(e) le 30 avril 2018 Vieux motard que jamais ... surtout après l'opération "Une rose un espoir" d'hier
jpr105 Posté(e) le 11 mai 2018 Auteur Signaler Posté(e) le 11 mai 2018 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
Berale64 Posté(e) le 20 janvier 2019 Signaler Posté(e) le 20 janvier 2019 @jpr105 merci pour le code qui permet de récupérer les infos de la "Presence". J'ai cependant un problème. Si l'image du device est correct, quand j'ouvre celui ci, j'ai une toute petite image. Ai-je oublié quelque chose ?
q.philippe Posté(e) le 21 mars 2019 Signaler Posté(e) le 21 mars 2019 salut a tous comment on obtient le TOKEN ??? j'ai l'api netatmo, code id et code secret , j'ai l'adresse IP mais ou obtient on le code TOKEN?
tchulio Posté(e) le 9 août 2020 Signaler Posté(e) le 9 août 2020 Salut je reviens vers toi après plusieurs années, J'avais bien réussi à effectuer l'installation de ma première caméra Netatmo Présence grâce au code que tu avais partagé à l'époque (encore merci ^^) et je viens d'en acheter une 2ème. J'ai repris le code, avec les ID client, client secret, etc.. mais maintenant ça me met "certificat failed", j'ai effectué un "Reset Keys" sur dev.netatmo.com et ça me mets encore "certificat failed". Est-ce que tu arriverais à me dire ce qui cloche stpp ? En espérant que tu sois encore actif sur le forum je te remercie d'avance
Messages recommandés