Script lua uservariables

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message 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.

Code : Tout sélectionner

commandArray['Variable:Alarme'] = 'OFF' 

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&param=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&param=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 ...... :)
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Script lua uservariables

Message 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
reseau local.PNG (23.98 Kio) Consulté 8189 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
otherdevice blocky.PNG (3.69 Kio) Consulté 8184 fois
ce serait par :

Code : Tout sélectionner

otherdevices['Alarme'] == 'ON'


les prints doivent ce placer entre les () et tant qu'a faire apres un then

Enfin ta variable utilisateurs : de quelle type est elle ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message 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 8-)

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&param=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.
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Script lua uservariables

Message 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 8-)

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&param=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
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message 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.
cyberbob
Messages : 511
Inscription : 28 nov. 2016, 19:43
Localisation : Belgique

Re: Script lua uservariables

Message 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 ?
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz(Dio/Chacon) & 433.42MHz(RTS) / Script en LUA & Blocky
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message 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
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lua uservariables

Message par vil1driver »

C'est un vieux bug..

Il faut faire avec ;)

Je t'invite à en reparler chez domoticz.com
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
cyberbob
Messages : 511
Inscription : 28 nov. 2016, 19:43
Localisation : Belgique

Re: Script lua uservariables

Message 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 ?
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz(Dio/Chacon) & 433.42MHz(RTS) / Script en LUA & Blocky
shinji
Messages : 13
Inscription : 22 sept. 2017, 10:49

Re: Script lua uservariables

Message par shinji »

Oui c’est la version sur laquelle je suis, regarde en haut sur syno
Répondre