Aller au contenu

[Résolu] Fonction d'envoi de SMS en LUA


Messages recommandés

Posté(e) (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é par J3R3M
Posté(e)

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! :60:

  • Like 1
×
×
  • Créer...