Page 2 sur 2

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 18:56
par vil1driver
je suis surpris que ce soit une virgule entre les arguments.. tu as essayé avec un & ?

D'ailleurs le texte devrait être entre simple quote

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:05
par dokho
vil1driver a écrit :je suis surpris que ce soit une virgule entre les arguments.. tu as essayé avec un & ?

D'ailleurs le texte devrait être entre simple quote
Ca ne fonctionne pas avec un &, ni dans un navigateur, ni dans un script.

Idem pour le simple quote.

Je pense que le problème ne vient pas de la virgule, pour preuve: l'url pour l'éclairage contient aussi une virgule entre les arguments et fonctionne nickel

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:12
par vil1driver
Du coups je ne sais pas..

J'utilise ce que je t'ai proposé et n'ai jamais eu de soucis

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:16
par dokho
J'ai trouvé :)

Donc ça passe avec la fonction que tu m'as donné mais il faut déclarer la variable comme ceci:

Code : Tout sélectionner

local txt = '"hello"'

Merci

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:19
par dokho
Maintenant il va falloir que je trouve comment passer des températures (issues de variables) en tant qu'argument ...

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:30
par vil1driver

Code : Tout sélectionner

local txt = '"' .. uservariables['ma variable'].. '"' 

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:32
par mike913
Bonjour,

Essaye comme ceci:

Code : Tout sélectionner

curl 'http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt=\"test\"'

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:55
par dokho
mike913 a écrit :Bonjour,

Essaye comme ceci:

Code : Tout sélectionner

curl 'http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt=\"test\"'
Salut,
Ça ne fonctionne pas: dans un os.execute curl + url doivent être entre simple quote et l'url doit être entre double quote:

Code : Tout sélectionner

os.execute('curl "url"')

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 19:56
par dokho
J'ai fini par réussir (une fois de plus) avec l'aide de vil1driver.

Je poste le bout de script ici, si ça peut servir à quelqu'un:

Code : Tout sélectionner

-- Fonction Arrondir
function arrondir(num, dec)
   if num == 0 then
      return 0
   else
      local mult = 10^(dec or 0)
      return math.floor(num * mult + 0.5) / mult
   end
end

local tempmoymaison = arrondir((otherdevices_svalues['Moyenne_Maison']:match("([^;]+)")),1)

-- encode du texte pour le passer dans une url
function url_encode(str)
  if (str) then
    str = string.gsub (str, "\n", "\r\n")
    str = string.gsub (str, "([^%w %-%_%.%~])",
        function (c) return string.format ("%%%02X", string.byte(c)) end)
    str = string.gsub (str, " ", "+")
  end
  return str
end

local txt = '"' ..tempmoymaison.. '"'

commandArray = {}
if (devicechanged['test'] == 'On') then
os.execute('curl http://192.168.0.239/control?cmd=NEXTION,dim=100')
os.execute('/usr/bin/curl -m 15 "http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt=' .. url_encode(txt) .. '" &')
elseif (devicechanged['test'] == 'Off') then
os.execute('curl http://192.168.0.239/control?cmd=NEXTION,dim=0')

end
return commandArray