Page 1 sur 1

Bug script Lua &param ¶m

Publié : 08 avr. 2018, 17:47
par pmachat
Bonjour

Je ne sais pas pourquoi mais j'ai un bug dans un de mes scripts Lua pour passer des commandes JSON

Dans mon script, j'ai indiqué cela
local url = domoticz_url..'/json.htm?type=command&param=udevice&idx='..IDXcons..'&nvalue=0&svalue='..ConsVac

Au niveau du Log, je vois cela
192.168.0.xx:8080/json.htm?type=command¶m=udevice&idx=343&nvalue=0&svalue=14

le &param devient ¶m :cry:

J'utilise Notepad++ (UTF8 sans BOM) comme éditeur

Je n'ai pas trouvé pourquoi ?
Quelqu'un a une idée en sachant que ce script a bien fonctionné pendant un temps ?

D'avance merci

Re: Bug script Lua &param ¶m

Publié : 08 avr. 2018, 21:10
par Jeff

Re: Bug script Lua &param ¶m

Publié : 08 avr. 2018, 21:52
par vil1driver

Re: Bug script Lua &param ¶m

Publié : 08 avr. 2018, 22:01
par Jeff
vil1driver a écrit :Salut,

Préférence locale :mrgreen:

https://easydomoticz.com/forum/viewtopi ... 280#p35280
Tu connais vraiment ce forum par coeur ;)

Re: Bug script Lua &param ¶m

Publié : 09 avr. 2018, 14:20
par domcars0
Salut,

Normalement les url doivent être encodés (en html, ¶ s'écrit ¶) .
Exemple de fonction en lua qui encode les url:

Code : Tout sélectionner

local 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

Re: Bug script Lua &param ¶m

Publié : 09 avr. 2018, 21:47
par pmachat
Bonjour

Merci pour tous ces retours
Cela progresse de mon coté mais toujours un problème.

En utilisant la fonction encode, le problème de &param a disparu :)

Je retrouve bien dans les logs l'url: 192.168.0.xx:8080/json.htm?param=udevice&type=command&idx=349&nvalue=0&svalue=22

Cela fonctionne bien sur ma version Windows de Domoticz mais quand je transfère le script sur mon raspberry cela ne fonctionne plus :?
2018-04-09 21:35:45.315 Error: Error opening url: 192.168.0.xx:8080/json.htm?param=udevice&type=command&idx=349&nvalue=0&svalue=22

J'ai un bien un device avec IDX=349
D'ailleurs quand je fais un copier/coller dans mon navigateur internet de cette même ligne , j'ai bien le message
status:"Ok"
title:"Update device"
et le device est bien mis à jour

J'ai regardé au niveau de la config de mon raspberry, je suis bien en fr_FR UT8 pour les paramètres locaux

J'ai encore besoin d'aide ...

Re: Bug script Lua &param ¶m

Publié : 13 avr. 2018, 17:16
par pmachat
Bonjour
J'ai trouvé l'origine de mon second probleme :P

Sur ma version de Domoticz sur Raspberry, j'ai besoin de passer les parametres utilisateur et mot de passe pour que la commande OpenUrl fonctionne donc j'ai rajouté ces paramètres dans la ligne de commande

Code : Tout sélectionner

   local url = domoticz_url..'/json.htm?param=udevice&type=command&idx='..IDXcons..'&nvalue=0&svalue='..ConsJour..'&username='..username..'&password='..pass
   urlencode(url)
   commandArray[1]={['OpenURL']=url }
Attention le user et le mot de passe est crypté (base64). Je vous conseille la lecture du wiki Domoticz -API/JSON (chapitre Autorization)
https://www.domoticz.com/wiki/Domoticz_ ... e64_encode

En espérant que cela aide d'autres personnes et encore merci pour votre aide