J3R3M Posté(e) le 23 septembre 2018 Signaler Posté(e) le 23 septembre 2018 (modifié) Bonjour, J'utilise la fonction ci-dessous depuis pas mal de temps pour envoyer des SMS via les scènes de la HC2. Cette fonction a été créée par moi-même, en utilisant des codes trouvés par-ci, par-là en fonction de mes besoins. La fonction est autonome pour URLencoder les caractères spéciaux. Cependant, désireux de l'améliorer un peu, j'aimerais pouvoir effectuer des retours chariots dans certains SMS. Ainsi, il faudrait qu'un certain texte (<retour> par exemple) puisse être remplacé par %0A dans le SMS, afin que le retour chariot s'opère. Malheureusement, je n'y arrive pas, je m'en remets donc à votre grand savoir! local function envoi_sms(sms) local char_to_hex = function(c) return string.format("%%%02X", string.byte(c)) end local function urlencode(url) if url == nil then return end url = url:gsub("\n", "\r\n") url = url:gsub("([^%w ])", char_to_hex) url = url:gsub(" ", "+") url = url:gsub(">", "%0A") return url end local delai = minuteries.sms; -- Minutes local diff = os.time() - tonumber(fibaro:getGlobalValue("DERNIER_SMS")); if diff > delai*60 and sms ~= nil then local http = net.HTTPClient(); local url = "http://****&sms="..urlencode(sms); http:request(url, { options = { method = 'GET', data = json.encode(newVar)}}); fibaro:setGlobal("DERNIER_SMS", os.time()); end end Merci de vos lumières et à bientôt! Modifié le 26 septembre 2018 par J3R3M
pepite Posté(e) le 23 septembre 2018 Signaler Posté(e) le 23 septembre 2018 Bonsoir @J3R3M Ceci fonctionne local texte = "toto, \ntiti, \ntata." print(texte) Resultat toto, titi, tata. Testé ici https://www.lua.org/cgi-bin/demo 1
J3R3M Posté(e) le 26 septembre 2018 Auteur Signaler Posté(e) le 26 septembre 2018 Salut @pepite! Merci de ta réponse, ça fonctionne parfaitement. Inutile donc de modifier ma fonction, j'utilise donc simplement \n pour effectuer le retour chariot lors de l'appel de celle-ci! 1
Messages recommandés