J'en appel aux pros du LUA et du JSON. Pour faire simple, je cherche à faire parler Domoticz sur la base d'un script de jmleglise. Mon domoticz est sous windows et parle déjà à travers SARAH à l'aide de la commande : http://localhost:8888/?tts=blablabla
Jusqu'ici, pas de problème. Sauf que dans mon cas, le texte que j'ai à lui faire dire comporte des espaces et autre ponctuation et du coup, Domoticz me retourne un : Error: Error opening url: http://localhost:8888/?tts=Risque de pluie
Ma question est, dans le script ci-dessous, comment dois-je faire pour les espaces (et autres) soient encodés genre "%20" pour un espace ?
Merci de votre aide !
Code : Tout sélectionner
commandArray = {}
local timeNow= os.date("*t")
if otherdevices['Libre2'] == 'On' and
timeNow.hour >16
then
local sentence="Hello%20nous%20sommes%20le%20"..tonumber(os.date("%d")) -- Good morning, today we are the ..
local curl = 'C:\\curl\\bin\\curl.exe '
-- ############# TEMPERATURE & WEATHER FORECAST #################
sentence=sentence.."%20La%20température%20extérieure%20est%20de%20"..uservariables['Froid'].."%20degré" -- outdoor temperature
json = (loadfile "C:\\Program Files (x86)\\Domoticz\\scripts\\lua\\JSON.lua")()
local city = "Dijon"
local wuAPIkey = "xxx" -- Your Weather Underground API Key
local file=assert(io.popen(curl.. 'http://api.wunderground.com/api/'..wuAPIkey..'/forecast/lang:FR/q/France/'..city..'.json'))
local raw = file:read('*all')
file:close()
local jsonForecast = json:decode(raw)
-- prevision=jsonForecast.forecast.txt_forecast.forecastday[1].fcttext_metric -- complete prevision
prevision=jsonForecast.forecast.simpleforecast.forecastday[1].conditions -- small forecast
print ("<font color='#f3031d'>TESTTESTEST</font>")
commandArray['OpenURL']="http://localhost:8888/?tts="..prevision..""
end
return commandArray