os.execute, curl et double quotes
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: os.execute, curl et double quotes
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
D'ailleurs le texte devrait être entre simple quote
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: os.execute, curl et double quotes
Ca ne fonctionne pas avec un &, ni dans un navigateur, ni dans un script.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
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
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: os.execute, curl et double quotes
Du coups je ne sais pas..
J'utilise ce que je t'ai proposé et n'ai jamais eu de soucis
J'utilise ce que je t'ai proposé et n'ai jamais eu de soucis
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: os.execute, curl et double quotes
J'ai trouvé 
Donc ça passe avec la fonction que tu m'as donné mais il faut déclarer la variable comme ceci:
Merci
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
Maintenant il va falloir que je trouve comment passer des températures (issues de variables) en tant qu'argument ...
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: os.execute, curl et double quotes
Code : Tout sélectionner
local txt = '"' .. uservariables['ma variable'].. '"' MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
mike913
- Messages : 159
- Inscription : 18 oct. 2014, 10:22
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: os.execute, curl et double quotes
Bonjour,
Essaye comme ceci:
Essaye comme ceci:
Code : Tout sélectionner
curl 'http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt=\"test\"'DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
Re: os.execute, curl et double quotes
Salut,mike913 a écrit :Bonjour,
Essaye comme ceci:
Code : Tout sélectionner
curl 'http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt=\"test\"'
Ç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
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:
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