Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
jackslayter
Messages : 1040 Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)
Message
par jackslayter » 01 août 2017, 15:12
salut, je veux changer le nom d'un device (custom sensor), je colle ce code json dans une barre d'adresse
Code : Tout sélectionner
http://192.168.1.20/json.htm?type=setused&idx=360&name=blablabla&switchtype=0&devoptions=1%3B%2520&used=true
ça marche
dans le lua,
Code : Tout sélectionner
variable=tostring("blabla")
os.execute('curl -s -i -H "Accept: application/json" "http://192.168.1.20/json.htm?type=setused&idx=360&name="'..variable..'"&switchtype=0&devoptions=1%3B%2520&used=true"')
ca ne marche pas
et si je mets
Code : Tout sélectionner
os.execute('curl -s -i -H "Accept: application/json" "http://192.168.1.20/json.htm?type=setused&idx=360&name=blabla&switchtype=0&devoptions=1%3B%2520&used=true"')
ça marche
si j’enlève le "tostring" j'ai une erreur de string.
avec cette commande c'est pareil
Code : Tout sélectionner
os.execute('curl -s -i -H "Accept: application/json" "http://192.168.1.20/json.htm?type=command¶m=renamedevice&idx=360&name="'..variable..'"')
une idée ? j'ai essayé avec des " et des '
merci
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661 Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)
Message
par vil1driver » 01 août 2017, 15:35
salut,
ahhh tu aimes ça les guillemets
blabla passé en chaîne ça donne "blabla" (ajout de guillemets..)
par la dessus tu y colles un tostring donc tu obtiens ""blabla""
et en plus de cela dans le code de l'url tu rajoutes encore des guillemets name="...
ça fait ptête beaucoup
essai juste cela pour voir
Code : Tout sélectionner
variable='blabla'
os.execute('curl -s -i -H "Accept: application/json" "http://192.168.1.20/json.htm?type=setused&idx=360&name='..variable..'&switchtype=0&devoptions=1%3B%2520&used=true"')
jackslayter
Messages : 1040 Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)
Message
par jackslayter » 01 août 2017, 15:55
non rien changé, c'est comme si on ne pouvait pas mettre une variable dans "name="
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661 Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)
Message
par vil1driver » 01 août 2017, 16:12
pourtant ça fonctionne ici
Code : Tout sélectionner
curl = '/usr/bin/curl -m 15 '
domoticzIP = '192.168.22.100' --'127.0.0.1'
domoticzPORT = '8080'
domoticzURL = 'http://'..domoticzIP..':'..domoticzPORT
domoticzUSER = '' -- nom d'utilisateur
domoticzPSWD = '' -- mot de pass
variable='blabla'
os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=setused&idx=473&name='..variable..'&switchtype=0&devoptions=1%3B%2520&used=true"')
juste ajouter un url_encode si tu souhaites pouvoir mettre des espaces dans le nom
jackslayter
Messages : 1040 Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)
Message
par jackslayter » 01 août 2017, 17:55
marche pas avec
Code : Tout sélectionner
os.execute('curl --silent -s -i -H "Accept: application/json" --data-urlencode "type=setused&idx=360&name='..variable..'&switchtype=0&devoptions=1%3B%2520&used=true" "http://192.168.1.20/json.htm"')
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661 Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)
Message
par vil1driver » 01 août 2017, 18:07
Laisses moi deviner...
Depuis le début tu indiques blabla mais ce n'est pas ce que tu fais ?
jackslayter
Messages : 1040 Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)
Message
par jackslayter » 01 août 2017, 18:10
si , je veux modifier le data "name=" en y mettant une variable pour la faire varier
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661 Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)
Message
par vil1driver » 01 août 2017, 18:31
Bah pourquoi ne pas juste reprendre mon exemple ?
jackslayter
Messages : 1040 Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)
Message
par jackslayter » 01 août 2017, 18:37
Je l'ai testé et cela n'a pas marché, vu que tu as parlé du URL encode et que effectivement il peut y avoir des espaces j'ai essayé cela aussi
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661 Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)
Message
par vil1driver » 01 août 2017, 19:47
Au cas ou...
Dans l'exemple j'ai laissé un idx perso...
Tu avais bien pensé à remettre 360 ?
(et bien sur l'ip..)