Page 2 sur 3
Re: Script lua uservariables
Publié : 28 sept. 2017, 09:08
par shinji
cyberbob a écrit :Un truc que je ne comprend pas en lisant ces post,
J'ai une variable utilisateurs déclarée dans "réglages/plus d'options/variable utilisateur"
Et je la change de valeurs dans différent scipts Blockly avec un "set"
On ne peut donc pas faire la même chose dans un script LUA ?
Si cela fonctionne bien avec ça.
Idem avec un blocky mais mon problème c'est que lorsque tu changes une valeur dans tes USERVARIABLES normalement, si tu as un lua ou blocky "uservariable" celui-ci devrait être lancé a chaque changement de valeur dans tes USERVARIABLE. Comme un lua ou blocky "time" se lance toutes les minutes ou "device" se lance a chaque changement d'état d'un device.
Donc mon problème est que la valeur change bien mais ne lance pas les scripts lua "uservariables".
Cela marche bien en changeant la valeur avec une requête JSON mais mon problème est toujours la déclaration du user et password dans le requete JSON.
shinji a écrit :cool ça marche si j’enlève le user et mot de passe sur domoticz
Code : Tout sélectionner
commandArray['OpenURL'] ='http://192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'
Du coup ça c'est OK merci
Par contre je suis toujours bloqué avec le user et password si je le remet
Code : Tout sélectionner
http://<username:password@>domoticz-ip<:port>/json.htm?api-call
Code : Tout sélectionner
commandArray['OpenURL'] ='http://<bob:toto@>192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'
Error: Error opening url: http://192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON
la déclaration est bien identique à l'exemple pourtant <username:password@> => <bob:toto@>
merci encore ......

la déclaration est bien identique à l'exemple pourtant <username:password@> => <bob:toto@>
J'ai essayé sans les fleches, sans le @, sans les 2 points bref je ne vois pas comment faire.
merci encore ......

Re: Script lua uservariables
Publié : 28 sept. 2017, 09:33
par deennoo
Je me mêle de la discution :
Pourquoi vouloir mettre ton user et mot de pass si tu travailles en "interne" a ton reseau (local) ? Ok si tu devais mettre a jour un Domoticz a distance (hors de ton reseau de maison). Je ne comprends pas l'utilité de ta démarche.
Si ton mot de passe te bloque mais que tu veux le garder, il te suffit d'autoriser les connections local ici :

- reseau local.PNG (23.98 Kio) Consulté 8191 fois
sinon la bonne url c'est cela :
http://user:pass@ip:port/json/truc/machin les <> sont pour te dire attention ici c'est a toi de jouer
Quelle version de domoticz tu utilises stp ? (beta ? stable ? linux ? windows ?)
Pourquoi remettre le boutton xiaomi a Off (heritage du blocky ?) ? en LUA c'est inutile vu que ton script ne va ce déclencher que si le bouton change d’état pour la condition que tu lui donne, c'est Click, Double Click, etc etc.
En blocky le devicechanged n'existe pas, si il fallait traduire :

- otherdevice blocky.PNG (3.69 Kio) Consulté 8186 fois
ce serait par :
les prints doivent ce placer entre les () et tant qu'a faire apres un then
Enfin ta variable utilisateurs : de quelle type est elle ?
Re: Script lua uservariables
Publié : 28 sept. 2017, 14:26
par shinji
Bonjour deennoo,
Déjà merci pour ta réponse.
Donc dans l'ordre en essayant d'etre le plus clair possible. J'ai mis un user et pass car j'ai ouvert le port dans ma box car j'y accède à distance donc je veux que l'accès soit sécurisé.
Effectivement en mettant mon ip dans reseaux locaux plus de problème d'identification, c'est le but (pas d'identification) marqué entre paranthèse mais j'avais pas compris l'utilité. MERCIIIIII
J'ai testé l'adresse ci-dessous, j'avais mis "J'ai essayé sans les fleches, sans le @, sans les 2 points bref je ne vois pas comment faire" bref plein de combinaison mais ça marchait pas. Il le prend en compte dans l'adresse (voir l'erreur)
http://user:pass@ip:port/json/truc/machin
Code : Tout sélectionner
commandArray['OpenURL'] ='http://bob:toto@192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'
Error: Error opening url: http://bob:toto@192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON
Domoticz V3.8153 sur syno.
Le bouton a off dans le script c'est que j'aime bien que mon inter soit a "OFF" dans le dashboard.
Et ma variable est une chaîne mais ce n’était pas ça le problème puisque j'arrivais a faire changer la valeur. C'était juste le type lua uservariable qui n'était pas passé en revu lors d'un changement.
En tout cas merci beaucoup !!!!!!
Mais c'est quand même nul que ça ne lance pas les lua uservariable sans passer par la manip de la requête JSON.
Re: Script lua uservariables
Publié : 28 sept. 2017, 14:31
par deennoo
shinji a écrit :Bonjour deennoo,
Déjà merci pour ta réponse.
Donc dans l'ordre en essayant d'etre le plus clair possible. J'ai mis un user et pass car j'ai ouvert le port dans ma box car j'y accède à distance donc je veux que l'accès soit sécurisé.
Effectivement en mettant mon ip dans reseaux locaux plus de problème d'identification, c'est le but (pas d'identification) marqué entre paranthèse mais j'avais pas compris l'utilité. MERCIIIIII
J'ai testé l'adresse ci-dessous, j'avais mis "J'ai essayé sans les fleches, sans le @, sans les 2 points bref je ne vois pas comment faire" bref plein de combinaison mais ça marchait pas. Il le prend en compte dans l'adresse (voir l'erreur)
http://user:pass@ip:port/json/truc/machin
Code : Tout sélectionner
commandArray['OpenURL'] ='http://bob:toto@192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON'
Error: Error opening url: http://bob:toto@192.168.0.15:8084/json.htm?type=command¶m=updateuservariable&vname=Alarme&vtype=2&vvalue=ON
Domoticz V3.8153 sur syno.
Le bouton a off dans le script c'est que j'aime bien que mon inter soit a "OFF" dans le dashboard.
Et ma variable est une chaîne mais ce n’était pas ça le problème puisque j'arrivais a faire changer la valeur. C'était juste le type lua uservariable qui n'était pas passé en revu lors d'un changement.
En tout cas merci beaucoup !!!!!!
Mais c'est quand même nul que ça ne lance pas les lua uservariable sans passer par la manip de la requête JSON.
Chez moi cela fonctionne tres bien avec ce type de script :
Code : Tout sélectionner
commandArray = {}
beaconHome=0
for variableName, variableValue in pairs(uservariables) do
if string.sub(variableName,1,3)=="Nut" and variableValue ~= "AWAY" then
beaconHome=beaconHome+1
end
end
if otherdevices['Alarme'] == 'On' and beaconHome>=1 then -- switch Off Alarm because 1 beacon come back Home
table.insert (commandArray, { ['Group:alarme'] ='Off' } )
elseif otherdevices['Alarme'] == 'Off' and beaconHome==0 then -- switch On Alarm because all beacon are away
table.insert (commandArray, { ['Group:alarme'] ='On' } )
end
return commandArray
Biensur avec un script de type user variable
Re: Script lua uservariables
Publié : 28 sept. 2017, 14:53
par shinji
bizzarre du coup je comprend pas pourquoi ça ne fonctionne pas chez moi !
Moi j'ai un script device qui vient changer une user variable, sur appui sur le bouton (application simplifié pour l'instant car j'ai vu que ça marchait pas) et le script user variable n'est pas lancé sur changement de la valeur de cette user variable.
Re: Script lua uservariables
Publié : 28 sept. 2017, 18:41
par cyberbob
shinji a écrit :... j'ai un script device qui vient changer une user variable, sur appui sur le bouton (application simplifié pour l'instant car j'ai vu que ça marchait pas) et le script user variable n'est pas lancé sur changement de la valeur de cette user variable.
Comme indique Deennoo, le script user variable doit être exécuté a chaque changement de la variable, au-sinon je ne vois pas l’intérêt de ce type de script.
Au pire, au lieux de s'embêter avec Json, prend une capteur virtuel (on peut le rendre invisible avec $hidden pour ne pas qu'il apparaisse dans les interrupteur) qui va exécuté un script "device" et utiliser les user variable à l'intérieur des script ?
Re: Script lua uservariables
Publié : 29 sept. 2017, 11:54
par shinji
cyberbob a écrit :
Comme indique Deennoo, le script user variable doit être exécuté a chaque changement de la variable, au-sinon je ne vois pas l’intérêt de ce type de script.
Oui c'est justement ça que je critique car dans mon cas ça ne marchait pas

je viens bien changer une valeur mais le script uservariable n'était pas executé. Alors qu'avec la requête JSON il l'est.
cyberbob a écrit :
Au pire, au lieux de s'embêter avec Json, prend une capteur virtuel (on peut le rendre invisible avec $hidden pour ne pas qu'il apparaisse dans les interrupteur) qui va exécuté un script "device" et utiliser les user variable à l'intérieur des script ?
Pas bete le capteur virtuel, j'y avais pas pensé je testerais aussi. merci
Re: Script lua uservariables
Publié : 29 sept. 2017, 14:37
par vil1driver
C'est un vieux bug..
Il faut faire avec
Je t'invite à en reparler chez domoticz.com
Re: Script lua uservariables
Publié : 29 sept. 2017, 20:01
par cyberbob
vil1driver a écrit :C'est un vieux bug..
Je n'ai pas testé car pas encore eu besoin de lancer un script via une uservariable,
Mais ce bug est-il toujours dans la dernière version stable v3.8153 ? Je doute qu'un bug aussi important n'ai pas été corrigé depuis ?
Re: Script lua uservariables
Publié : 29 sept. 2017, 20:20
par shinji
Oui c’est la version sur laquelle je suis, regarde en haut sur syno